2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2018 TechMahindra
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=========================================================
20 package org.onap.so.bpmn.core.domain;
22 import static com.shazam.shazamcrest.MatcherAssert.assertThat;
23 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertFalse;
26 import static org.junit.Assert.assertTrue;
28 import java.io.IOException;
29 import java.nio.file.Files;
30 import java.nio.file.Paths;
31 import java.util.ArrayList;
32 import java.util.Arrays;
34 import org.junit.Before;
35 import org.junit.Test;
37 import com.fasterxml.jackson.core.JsonProcessingException;
39 public class ServiceDecompositionTest {
40 private static final String RESOURCE_PATH = "src/test/resources/json-examples/";
42 VnfResource vnfResource;
43 NetworkResource networkResource;
44 AllottedResource allottedResource;
45 ConfigResource configResource;
48 public void before() {
49 vnfResource = new VnfResource();
50 vnfResource.setResourceId("vnfResourceId");
51 vnfResource.setModules(new ArrayList<>());
53 networkResource = new NetworkResource();
54 networkResource.setResourceId("networkResourceId");
56 allottedResource = new AllottedResource();
57 allottedResource.setResourceId("allottedResourceId");
59 configResource = new ConfigResource();
60 configResource.setResourceId("configResourceId");
64 public void serviceDecompositionTest() throws JsonProcessingException, IOException {
65 // covering methods not covered by openpojo test
66 String catalogRestOutput = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "ServiceDecomposition.json")));
68 ServiceDecomposition serviceDecomp = new ServiceDecomposition(catalogRestOutput);
69 serviceDecomp.addVnfResource(vnfResource);
70 serviceDecomp.addNetworkResource(networkResource);
71 serviceDecomp.addAllottedResource(allottedResource);
72 serviceDecomp.addConfigResource(configResource);
74 assertThat(serviceDecomp.getServiceResource(vnfResource.getResourceId()), sameBeanAs(vnfResource));
75 assertThat(serviceDecomp.getServiceResource(networkResource.getResourceId()), sameBeanAs(networkResource));
76 assertThat(serviceDecomp.getServiceResource(allottedResource.getResourceId()), sameBeanAs(allottedResource));
77 assertThat(serviceDecomp.getServiceResource(configResource.getResourceId()), sameBeanAs(configResource));
79 VnfResource vnfResourceReplace = new VnfResource();
80 vnfResourceReplace.setResourceId(vnfResource.getResourceId());
81 vnfResourceReplace.setResourceInstanceName("vnfResourceReplaceInstanceName");
83 assertTrue(serviceDecomp.replaceResource(vnfResourceReplace));
84 assertTrue(serviceDecomp.getVnfResources().contains(vnfResourceReplace));
86 assertTrue(serviceDecomp.deleteResource(vnfResourceReplace));
87 assertFalse(serviceDecomp.deleteResource(vnfResourceReplace));
88 assertFalse(serviceDecomp.deleteResource(new VnfResource()));
92 public void serviceDecompositionJsonTest() throws IOException {
93 String catalogRestOutput = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "ServiceDecomposition.json")));
94 String expectedCatalogRestOutput = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "ServiceDecompositionExpected.json")));
95 String vnfResourceJson = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "VnfResource.json")));
96 String networkResourceJson = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "NetworkResource.json")));
97 String allottedResourceJson = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "AllottedResource.json")));
98 String configResourceJson = new String(Files.readAllBytes(Paths.get(RESOURCE_PATH + "ConfigResource.json")));
100 ServiceDecomposition serviceDecomp = new ServiceDecomposition(catalogRestOutput, "serviceInstanceId");
101 serviceDecomp.addResource(vnfResource);
102 serviceDecomp.addResource(networkResource);
103 serviceDecomp.addResource(allottedResource);
104 serviceDecomp.addResource(configResource);
106 assertThat(serviceDecomp.getServiceResource(vnfResource.getResourceId()), sameBeanAs(vnfResource));
107 assertThat(serviceDecomp.getServiceResource(networkResource.getResourceId()), sameBeanAs(networkResource));
108 assertThat(serviceDecomp.getServiceResource(allottedResource.getResourceId()), sameBeanAs(allottedResource));
109 assertThat(serviceDecomp.getServiceResource(configResource.getResourceId()), sameBeanAs(configResource));
111 serviceDecomp = new ServiceDecomposition(catalogRestOutput, "serviceInstanceId");
112 serviceDecomp.addVnfResource(vnfResourceJson);
113 serviceDecomp.addNetworkResource(networkResourceJson);
114 serviceDecomp.addAllottedResource(allottedResourceJson);
115 serviceDecomp.addConfigResource(configResourceJson);
117 ServiceDecomposition expectedServiceDecomp = new ServiceDecomposition(expectedCatalogRestOutput, "serviceInstanceId");
119 assertThat(serviceDecomp, sameBeanAs(expectedServiceDecomp));
120 assertEquals(serviceDecomp.listToJson(Arrays.asList(networkResource)) + serviceDecomp.listToJson(Arrays.asList(vnfResource)) +
121 serviceDecomp.listToJson(Arrays.asList(allottedResource)) + serviceDecomp.listToJson(Arrays.asList(configResource)),
122 serviceDecomp.getServiceResourcesJsonString());