2 * ============LICENSE_START======================================================= ONAP : SO
3 * ================================================================================ Copyright (C) 2018 TechMahindra
4 * ================================================================================ Licensed under the Apache License,
5 * Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
11 * an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
12 * specific language governing permissions and limitations under the License.
13 * ============LICENSE_END=========================================================
15 package org.onap.so.bpmn.core.domain;
17 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
18 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
19 import static org.junit.Assert.assertEquals;
20 import static org.junit.Assert.assertFalse;
21 import static org.junit.Assert.assertTrue;
22 import java.io.IOException;
23 import java.nio.file.Files;
24 import java.nio.file.Paths;
25 import java.util.ArrayList;
26 import java.util.Arrays;
27 import org.junit.Before;
28 import org.junit.Test;
29 import com.fasterxml.jackson.core.JsonProcessingException;
31 public class ServiceDecompositionTest {
32 private static final String RESOURCE_PATH = "src/test/resources/json-examples/";
34 VnfResource vnfResource;
35 NetworkResource networkResource;
36 AllottedResource allottedResource;
37 ConfigResource configResource;
40 public void before() {
41 vnfResource = new VnfResource();
42 vnfResource.setResourceId("vnfResourceId");
43 vnfResource.setModules(new ArrayList<>());
45 networkResource = new NetworkResource();
46 networkResource.setResourceId("networkResourceId");
48 allottedResource = new AllottedResource();
49 allottedResource.setResourceId("allottedResourceId");
51 configResource = new ConfigResource();
52 configResource.setResourceId("configResourceId");
56 public void serviceDecompositionTest() throws JsonProcessingException, IOException {
57 // covering methods not covered by openpojo test
58 String catalogRestOutput =
59 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "ServiceDecomposition.json")));
61 ServiceDecomposition serviceDecomp = new ServiceDecomposition(catalogRestOutput);
62 serviceDecomp.addVnfResource(vnfResource);
63 serviceDecomp.addNetworkResource(networkResource);
64 serviceDecomp.addAllottedResource(allottedResource);
65 serviceDecomp.addConfigResource(configResource);
67 assertThat(serviceDecomp.getServiceResource(vnfResource.getResourceId()), sameBeanAs(vnfResource));
68 assertThat(serviceDecomp.getServiceResource(networkResource.getResourceId()), sameBeanAs(networkResource));
69 assertThat(serviceDecomp.getServiceResource(allottedResource.getResourceId()), sameBeanAs(allottedResource));
70 assertThat(serviceDecomp.getServiceResource(configResource.getResourceId()), sameBeanAs(configResource));
72 VnfResource vnfResourceReplace = new VnfResource();
73 vnfResourceReplace.setResourceId(vnfResource.getResourceId());
74 vnfResourceReplace.setResourceInstanceName("vnfResourceReplaceInstanceName");
76 assertTrue(serviceDecomp.replaceResource(vnfResourceReplace));
77 assertTrue(serviceDecomp.getVnfResources().contains(vnfResourceReplace));
79 assertTrue(serviceDecomp.deleteResource(vnfResourceReplace));
80 assertFalse(serviceDecomp.deleteResource(vnfResourceReplace));
81 assertFalse(serviceDecomp.deleteResource(new VnfResource()));
85 public void serviceDecompositionJsonTest() throws IOException {
86 String catalogRestOutput =
87 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "ServiceDecomposition.json")));
88 String expectedCatalogRestOutput =
89 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "ServiceDecompositionExpected.json")));
90 String vnfResourceJson = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "VnfResource.json")));
91 String networkResourceJson = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "NetworkResource.json")));
92 String allottedResourceJson =
93 new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "AllottedResource.json")));
94 String configResourceJson = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "ConfigResource.json")));
96 ServiceDecomposition serviceDecomp = new ServiceDecomposition(catalogRestOutput, "serviceInstanceId");
97 serviceDecomp.addResource(vnfResource);
98 serviceDecomp.addResource(networkResource);
99 serviceDecomp.addResource(allottedResource);
100 serviceDecomp.addResource(configResource);
102 System.out.println(serviceDecomp.toJsonString());
104 assertThat(serviceDecomp.getServiceResource(vnfResource.getResourceId()), sameBeanAs(vnfResource));
105 assertThat(serviceDecomp.getServiceResource(networkResource.getResourceId()), sameBeanAs(networkResource));
106 assertThat(serviceDecomp.getServiceResource(allottedResource.getResourceId()), sameBeanAs(allottedResource));
107 assertThat(serviceDecomp.getServiceResource(configResource.getResourceId()), sameBeanAs(configResource));
109 serviceDecomp = new ServiceDecomposition(catalogRestOutput, "serviceInstanceId");
110 serviceDecomp.addVnfResource(vnfResourceJson);
111 serviceDecomp.addNetworkResource(networkResourceJson);
112 serviceDecomp.addAllottedResource(allottedResourceJson);
113 serviceDecomp.addConfigResource(configResourceJson);
115 ServiceDecomposition expectedServiceDecomp =
116 new ServiceDecomposition(expectedCatalogRestOutput, "serviceInstanceId");
118 assertThat(serviceDecomp, sameBeanAs(expectedServiceDecomp));
120 serviceDecomp.listToJson(Arrays.asList(networkResource))
121 + serviceDecomp.listToJson(Arrays.asList(vnfResource))
122 + serviceDecomp.listToJson(Arrays.asList(allottedResource))
123 + serviceDecomp.listToJson(Arrays.asList(configResource)),
124 serviceDecomp.getServiceResourcesJsonString());