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.RelatedInstanceList;
35 import org.onap.so.serviceinstancebeans.ServiceInstancesRequest;
36 import com.fasterxml.jackson.databind.ObjectMapper;
38 public class RelatedInstancesValidationTest extends BaseTest {
40 RelatedInstancesValidation validation = new RelatedInstancesValidation();
43 public ExpectedException thrown = ExpectedException.none();
45 public ValidationInformation setupValidationInformation(String path) throws IOException {
46 String jsonInput = new String(Files.readAllBytes(Paths.get(path)));
47 ObjectMapper mapper = new ObjectMapper();
48 ServiceInstancesRequest sir = mapper.readValue(jsonInput, ServiceInstancesRequest.class);
49 ValidationInformation info = new ValidationInformation(sir, null, Action.createInstance, 7, false,
50 sir.getRequestDetails().getRequestParameters());
52 info.setRequestScope("service");
53 sir.setServiceInstanceId("0fd90c0c-0e3a-46e2-abb5-4c4820d5985b");
54 sir.getRequestDetails().getModelInfo().setModelCustomizationName("name");
56 info.setRequestInfo(sir.getRequestDetails().getRequestInfo());
61 public void testCreateVnfNetworkInstanceGroup() throws IOException, ValidationException {
62 String requestJson = new String(Files.readAllBytes(
63 Paths.get("src/test/resources/MsoRequestTest/RelatedInstances/v7CreateVnfNetworkInstanceGroup.json")));
64 ObjectMapper mapper = new ObjectMapper();
65 ServiceInstancesRequest sir = mapper.readValue(requestJson, ServiceInstancesRequest.class);
66 ValidationInformation info = new ValidationInformation(sir, new HashMap<String, String>(),
67 Action.createInstance, 6, false, sir.getRequestDetails().getRequestParameters());
68 info.setRequestScope("vnf");
69 sir.setServiceInstanceId("0fd90c0c-0e3a-46e2-abb5-4c4820d5985b");
70 sir.getRequestDetails().getModelInfo().setModelCustomizationName("name");
71 RelatedInstancesValidation validation = new RelatedInstancesValidation();
72 validation.validate(info);
74 assertEquals(info.getVnfType(), "Test/name");
78 public void testCreateSIVpnBonding() throws IOException, ValidationException {
79 String requestJson = new String(Files.readAllBytes(
80 Paths.get("src/test/resources/MsoRequestTest/RelatedInstances/ServiceInstanceVpnBondingService.json")));
81 ObjectMapper mapper = new ObjectMapper();
82 ServiceInstancesRequest sir = mapper.readValue(requestJson, ServiceInstancesRequest.class);
83 ValidationInformation info = new ValidationInformation(sir, new HashMap<String, String>(),
84 Action.createInstance, 7, false, sir.getRequestDetails().getRequestParameters());
85 info.setRequestScope("service");
86 sir.setServiceInstanceId("0fd90c0c-0e3a-46e2-abb5-4c4820d5985b");
87 sir.getRequestDetails().getModelInfo().setModelCustomizationName("name");
88 RelatedInstancesValidation validation = new RelatedInstancesValidation();
89 validation.validate(info);
90 RelatedInstanceList[] instanceList = sir.getRequestDetails().getRelatedInstanceList();
92 assertEquals(info.getRequestScope(), "service");
93 assertEquals(instanceList[0].getRelatedInstance().getModelInfo().getModelType().toString(), "vpnBinding");
94 assertEquals(instanceList[1].getRelatedInstance().getModelInfo().getModelType().toString(), "network");
98 public void validateModelTypeExceptionTest() throws IOException, ValidationException {
99 thrown.expect(ValidationException.class);
100 thrown.expectMessage("No valid modelType in relatedInstance is specified");
102 setupValidationInformation("src/test/resources/Validation/VpnBondingValidation/NoModelType.json"));
106 public void validateInstanceNameVpnBindingExceptionTest() throws IOException, ValidationException {
107 thrown.expect(ValidationException.class);
108 thrown.expectMessage("No valid instanceName in relatedInstance for vpnBinding modelType is specified");
109 validation.validate(setupValidationInformation(
110 "src/test/resources/Validation/VpnBondingValidation/NoInstanceNameVpnBinding.json"));
114 public void validateInstanceNameNetworkExceptionTest() throws IOException, ValidationException {
115 thrown.expect(ValidationException.class);
116 thrown.expectMessage("No valid instanceName in relatedInstance for network modelType is specified");
117 validation.validate(setupValidationInformation(
118 "src/test/resources/Validation/VpnBondingValidation/NoInstanceNameNetwork.json"));
122 public void validateInstanceIdExceptionTest() throws IOException, ValidationException {
123 thrown.expect(ValidationException.class);
124 thrown.expectMessage("No valid instanceId in relatedInstance is specified");
126 setupValidationInformation("src/test/resources/Validation/VpnBondingValidation/NoInstanceId.json"));
130 public void validatemodelInvariantIdExceptionTest() throws IOException, ValidationException {
131 thrown.expect(ValidationException.class);
132 thrown.expectMessage("No valid modelInvariantId in relatedInstance is specified");
133 validation.validate(setupValidationInformation(
134 "src/test/resources/Validation/VpnBondingValidation/NoModelInvariantId.json"));