2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
21 package org.onap.so.apihandlerinfra.validation;
23 import static org.junit.Assert.assertEquals;
24 import java.io.IOException;
25 import java.nio.file.Files;
26 import java.nio.file.Paths;
27 import java.util.HashMap;
28 import org.junit.Rule;
29 import org.junit.Test;
30 import org.junit.rules.ExpectedException;
31 import org.onap.so.apihandlerinfra.Action;
32 import org.onap.so.apihandlerinfra.BaseTest;
33 import org.onap.so.exceptions.ValidationException;
34 import org.onap.so.serviceinstancebeans.InstanceDirection;
35 import org.onap.so.serviceinstancebeans.RelatedInstanceList;
36 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
37 import com.fasterxml.jackson.databind.ObjectMapper;
39 public class RelatedInstancesValidationTest extends BaseTest {
41 RelatedInstancesValidation validation = new RelatedInstancesValidation();
44 public ExpectedException thrown = ExpectedException.none();
46 public ValidationInformation setupValidationInformation(String path) throws IOException {
47 String jsonInput = new String(Files.readAllBytes(Paths.get(path)));
48 ObjectMapper mapper = new ObjectMapper();
49 ServiceInstancesRequest sir = mapper.readValue(jsonInput, ServiceInstancesRequest.class);
50 ValidationInformation info = new ValidationInformation(sir, null, Action.createInstance, 7, false,
51 sir.getRequestDetails().getRequestParameters());
53 info.setRequestScope("service");
54 sir.setServiceInstanceId("0fd90c0c-0e3a-46e2-abb5-4c4820d5985b");
55 sir.getRequestDetails().getModelInfo().setModelCustomizationName("name");
57 info.setRequestInfo(sir.getRequestDetails().getRequestInfo());
62 public void testCreateVnfNetworkInstanceGroup() throws IOException, ValidationException {
63 String requestJson = new String(Files.readAllBytes(
64 Paths.get("src/test/resources/MsoRequestTest/RelatedInstances/v7CreateVnfNetworkInstanceGroup.json")));
65 ObjectMapper mapper = new ObjectMapper();
66 ServiceInstancesRequest sir = mapper.readValue(requestJson, ServiceInstancesRequest.class);
67 ValidationInformation info = new ValidationInformation(sir, new HashMap<String, String>(),
68 Action.createInstance, 6, false, sir.getRequestDetails().getRequestParameters());
69 info.setRequestScope("vnf");
70 sir.setServiceInstanceId("0fd90c0c-0e3a-46e2-abb5-4c4820d5985b");
71 sir.getRequestDetails().getModelInfo().setModelCustomizationName("name");
72 RelatedInstancesValidation validation = new RelatedInstancesValidation();
73 validation.validate(info);
75 assertEquals(info.getVnfType(), "Test/name");
79 public void testCreateSIVpnBonding() throws IOException, ValidationException {
80 String requestJson = new String(Files.readAllBytes(
81 Paths.get("src/test/resources/MsoRequestTest/RelatedInstances/ServiceInstanceVpnBondingService.json")));
82 ObjectMapper mapper = new ObjectMapper();
83 ServiceInstancesRequest sir = mapper.readValue(requestJson, ServiceInstancesRequest.class);
84 ValidationInformation info = new ValidationInformation(sir, new HashMap<String, String>(),
85 Action.createInstance, 7, false, sir.getRequestDetails().getRequestParameters());
86 info.setRequestScope("service");
87 sir.setServiceInstanceId("0fd90c0c-0e3a-46e2-abb5-4c4820d5985b");
88 sir.getRequestDetails().getModelInfo().setModelCustomizationName("name");
89 RelatedInstancesValidation validation = new RelatedInstancesValidation();
90 validation.validate(info);
91 RelatedInstanceList[] instanceList = sir.getRequestDetails().getRelatedInstanceList();
93 assertEquals(info.getRequestScope(), "service");
94 assertEquals(instanceList[0].getRelatedInstance().getModelInfo().getModelType().toString(), "vpnBinding");
95 assertEquals(instanceList[1].getRelatedInstance().getModelInfo().getModelType().toString(), "network");
99 public void validateModelTypeExceptionTest() throws IOException, ValidationException {
100 thrown.expect(ValidationException.class);
101 thrown.expectMessage("No valid modelType in relatedInstance is specified");
103 setupValidationInformation("src/test/resources/Validation/VpnBondingValidation/NoModelType.json"));
107 public void validateInstanceNameVpnBindingExceptionTest() throws IOException, ValidationException {
108 thrown.expect(ValidationException.class);
109 thrown.expectMessage("No valid instanceName in relatedInstance for vpnBinding modelType is specified");
110 validation.validate(setupValidationInformation(
111 "src/test/resources/Validation/VpnBondingValidation/NoInstanceNameVpnBinding.json"));
115 public void validateInstanceNameNetworkExceptionTest() throws IOException, ValidationException {
116 thrown.expect(ValidationException.class);
117 thrown.expectMessage("No valid instanceName in relatedInstance for network modelType is specified");
118 validation.validate(setupValidationInformation(
119 "src/test/resources/Validation/VpnBondingValidation/NoInstanceNameNetwork.json"));
123 public void validateInstanceIdExceptionTest() throws IOException, ValidationException {
124 thrown.expect(ValidationException.class);
125 thrown.expectMessage("No valid instanceId in relatedInstance is specified");
127 setupValidationInformation("src/test/resources/Validation/VpnBondingValidation/NoInstanceId.json"));
131 public void validatemodelInvariantIdExceptionTest() throws IOException, ValidationException {
132 thrown.expect(ValidationException.class);
133 thrown.expectMessage("No valid modelInvariantId in relatedInstance is specified");
134 validation.validate(setupValidationInformation(
135 "src/test/resources/Validation/VpnBondingValidation/NoModelInvariantId.json"));
139 public void validateRelatedInstanceInstanceIdTest() throws IOException, ValidationException {
140 validation.validate(setupValidationInformation(
141 "src/test/resources/Validation/UserParamsValidation/RelatedInstanceInstanceId.json"));
145 public void validateRelatedInstanceInstanceIdExceptionTest() throws IOException, ValidationException {
146 thrown.expect(ValidationException.class);
147 thrown.expectMessage("serviceInstanceId matching the serviceInstanceId in request URI");
148 ValidationInformation info = setupValidationInformation(
149 "src/test/resources/Validation/UserParamsValidation/RelatedInstanceInstanceId.json");
150 RelatedInstanceList[] instanceList = info.sir.getRequestDetails().getRelatedInstanceList();
151 instanceList[0].getRelatedInstance().setInstanceDirection(InstanceDirection.fromValue("destination"));
152 validation.validate(info);