2 * Copyright © 2017-2018 AT&T Intellectual Property.
\r
4 * Licensed under the Apache License, Version 2.0 (the "License");
\r
5 * you may not use this file except in compliance with the License.
\r
6 * You may obtain a copy of the License at
\r
8 * http://www.apache.org/licenses/LICENSE-2.0
\r
10 * Unless required by applicable law or agreed to in writing, software
\r
11 * distributed under the License is distributed on an "AS IS" BASIS,
\r
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
\r
13 * See the License for the specific language governing permissions and
\r
14 * limitations under the License.
\r
17 package org.onap.ccsdk.apps.controllerblueprints.service.rs;
\r
19 import org.apache.commons.collections.CollectionUtils;
\r
20 import org.apache.commons.io.FileUtils;
\r
21 import org.junit.Assert;
\r
22 import org.junit.FixMethodOrder;
\r
23 import org.junit.Test;
\r
24 import org.junit.runner.RunWith;
\r
25 import org.junit.runners.MethodSorters;
\r
26 import org.onap.ccsdk.apps.controllerblueprints.TestApplication;
\r
27 import org.onap.ccsdk.apps.controllerblueprints.TestConfiguration;
\r
28 import org.onap.ccsdk.apps.controllerblueprints.core.ConfigModelConstant;
\r
29 import org.onap.ccsdk.apps.controllerblueprints.core.data.ServiceTemplate;
\r
30 import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils;
\r
31 import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceAssignment;
\r
32 import org.onap.ccsdk.apps.controllerblueprints.service.domain.ConfigModelContent;
\r
33 import org.onap.ccsdk.apps.controllerblueprints.service.model.AutoMapResponse;
\r
34 import org.slf4j.Logger;
\r
35 import org.slf4j.LoggerFactory;
\r
36 import org.springframework.beans.factory.annotation.Autowired;
\r
37 import org.springframework.boot.test.context.SpringBootTest;
\r
38 import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
\r
39 import org.springframework.test.context.ContextConfiguration;
\r
40 import org.springframework.test.context.junit4.SpringRunner;
\r
42 import java.io.File;
\r
43 import java.nio.charset.Charset;
\r
44 import java.util.List;
\r
47 @RunWith(SpringRunner.class)
\r
48 @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
\r
49 @ContextConfiguration(classes = {TestApplication.class, TestConfiguration.class})
\r
50 @FixMethodOrder(MethodSorters.NAME_ASCENDING)
\r
51 public class ServiceTemplateRestTest {
\r
53 private static Logger log = LoggerFactory.getLogger(ServiceTemplateRestTest.class);
\r
55 ModelTypeRest modelTypeRest;
\r
58 private ServiceTemplateRest serviceTemplateRest;
\r
61 public void test02EnrichServiceTemplate() throws Exception {
\r
62 log.info("*********** test02EnrichServiceTemplate ***********************");
\r
63 String file = "src/test/resources/enhance/enhance-template.json";
\r
65 String serviceTemplateContent = FileUtils.readFileToString(new File(file), Charset.defaultCharset());
\r
67 ServiceTemplate serviceTemplate = JacksonUtils.readValue(serviceTemplateContent, ServiceTemplate.class);
\r
69 serviceTemplate = serviceTemplateRest.enrichServiceTemplate(serviceTemplate);
\r
71 String enhancedFile = "src/test/resources/enhance/enhanced-template.json";
\r
73 FileUtils.write(new File(enhancedFile),
\r
74 JacksonUtils.getJson(serviceTemplate, true), Charset.defaultCharset());
\r
76 Assert.assertNotNull("Failed to get Enriched Blueprints, Return object is Null", serviceTemplate);
\r
77 Assert.assertNotNull("Failed to get Enriched Blueprints Data Type, Return object is Null",
\r
78 serviceTemplate.getDataTypes());
\r
79 Assert.assertNotNull("Failed to get Enriched Blueprints Node Type, Return object is Null",
\r
80 serviceTemplate.getNodeTypes());
\r
81 log.trace("Enriched Service Template :\n" + JacksonUtils.getJson(serviceTemplate, true));
\r
85 public void test03ValidateServiceTemplate() throws Exception {
\r
86 log.info("*********** test03ValidateServiceTemplate *******************************************");
\r
87 String enhancedFile = "src/test/resources/enhance/enhanced-template.json";
\r
88 String serviceTemplateContent = FileUtils.readFileToString(new File(enhancedFile), Charset.defaultCharset());
\r
90 ServiceTemplate serviceTemplate =
\r
91 JacksonUtils.readValue(serviceTemplateContent, ServiceTemplate.class);
\r
93 serviceTemplate = serviceTemplateRest.validateServiceTemplate(serviceTemplate);
\r
95 Assert.assertNotNull("Failed to validate Service Template, Return object is Null", serviceTemplate);
\r
96 Assert.assertNotNull("Failed to get Service Template Data Type, Return object is Null",
\r
97 serviceTemplate.getDataTypes());
\r
98 Assert.assertNotNull("Failed to get Service Template Node Type, Return object is Null",
\r
99 serviceTemplate.getNodeTypes());
\r
101 log.trace("Validated Service Template :\n" + JacksonUtils.getJson(serviceTemplate, true));
\r
107 public void test04GenerateResourceAssignments() throws Exception {
\r
108 log.info("*********** test04GenerateResourceAssignments *******************************************");
\r
109 ConfigModelContent baseConfigConfigModelContent = new ConfigModelContent();
\r
110 String baseConfigContent = FileUtils.readFileToString(new File("load/blueprints/vrr-test/Templates/base-config-template.vtl")
\r
111 , Charset.defaultCharset());
\r
112 baseConfigConfigModelContent.setName("base-config-template");
\r
113 baseConfigConfigModelContent.setContentType(ConfigModelConstant.MODEL_CONTENT_TYPE_TEMPLATE);
\r
114 baseConfigConfigModelContent.setContent(baseConfigContent);
\r
116 List<ResourceAssignment> resourceAssignments =
\r
117 serviceTemplateRest.generateResourceAssignments(baseConfigConfigModelContent);
\r
119 Assert.assertNotNull("Failed to get ResourceAssignments, Return object is Null", resourceAssignments);
\r
120 Assert.assertTrue("Failed to get ResourceAssignments count", resourceAssignments.size() > 0);
\r
122 log.trace("Validated Service Template :\n" + JacksonUtils.getJson(resourceAssignments, true));
\r
128 public void test05AutoMap() throws Exception {
\r
129 log.info("*********** test05AutoMap *******************************************");
\r
131 String resourceassignmentContent = FileUtils.readFileToString(
\r
132 new File("src/test/resources/resourcedictionary/automap.json"), Charset.defaultCharset());
\r
133 List<ResourceAssignment> batchResourceAssignment =
\r
134 JacksonUtils.getListFromJson(resourceassignmentContent, ResourceAssignment.class);
\r
135 AutoMapResponse autoMapResponse = serviceTemplateRest.autoMap(batchResourceAssignment);
\r
137 Assert.assertNotNull("Failed to get ResourceAssignments, Return object is Null",
\r
138 autoMapResponse.getResourceAssignments());
\r
139 Assert.assertNotNull("Failed to get Data Dictionary from ResourceAssignments",
\r
140 autoMapResponse.getDataDictionaries());
\r
141 Assert.assertTrue("Failed to get ResourceAssignments count",
\r
142 CollectionUtils.isNotEmpty(autoMapResponse.getDataDictionaries()));
\r
144 List<ResourceAssignment> autoMappedResourceAssignment = autoMapResponse.getResourceAssignments();
\r
145 autoMappedResourceAssignment.forEach(resourceAssignment -> {
\r
146 if ("bundle-id".equals(resourceAssignment.getName())) {
\r
147 Assert.assertEquals("Failed to assign default first source", "db",
\r
148 resourceAssignment.getDictionarySource());
\r