Controller Blueprints MS
[ccsdk/cds.git] / ms / controllerblueprints / modules / service / src / test / java / org / onap / ccsdk / apps / controllerblueprints / service / rs / ServiceTemplateRestTest.java
1 /*\r
2  * Copyright © 2017-2018 AT&T Intellectual Property.\r
3  *\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
7  *\r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  *\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
15  */\r
16 \r
17 package org.onap.ccsdk.apps.controllerblueprints.service.rs;\r
18 \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
41 \r
42 import java.io.File;\r
43 import java.nio.charset.Charset;\r
44 import java.util.List;\r
45 \r
46 \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
52 \r
53     private static Logger log = LoggerFactory.getLogger(ServiceTemplateRestTest.class);\r
54     @Autowired\r
55     ModelTypeRest modelTypeRest;\r
56 \r
57     @Autowired\r
58     private ServiceTemplateRest serviceTemplateRest;\r
59 \r
60     @Test\r
61     public void test02EnrichServiceTemplate() throws Exception {\r
62         log.info("*********** test02EnrichServiceTemplate  ***********************");\r
63         String file = "src/test/resources/enhance/enhance-template.json";\r
64 \r
65         String serviceTemplateContent = FileUtils.readFileToString(new File(file), Charset.defaultCharset());\r
66 \r
67         ServiceTemplate serviceTemplate = JacksonUtils.readValue(serviceTemplateContent, ServiceTemplate.class);\r
68 \r
69         serviceTemplate = serviceTemplateRest.enrichServiceTemplate(serviceTemplate);\r
70 \r
71         String enhancedFile = "src/test/resources/enhance/enhanced-template.json";\r
72 \r
73         FileUtils.write(new File(enhancedFile),\r
74                 JacksonUtils.getJson(serviceTemplate, true), Charset.defaultCharset());\r
75 \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
82     }\r
83 \r
84     @Test\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
89 \r
90         ServiceTemplate serviceTemplate =\r
91                 JacksonUtils.readValue(serviceTemplateContent, ServiceTemplate.class);\r
92 \r
93         serviceTemplate = serviceTemplateRest.validateServiceTemplate(serviceTemplate);\r
94 \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
100 \r
101         log.trace("Validated Service Template :\n" + JacksonUtils.getJson(serviceTemplate, true));\r
102 \r
103     }\r
104 \r
105 \r
106     @Test\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
115 \r
116         List<ResourceAssignment> resourceAssignments =\r
117                 serviceTemplateRest.generateResourceAssignments(baseConfigConfigModelContent);\r
118 \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
121 \r
122         log.trace("Validated Service Template :\n" + JacksonUtils.getJson(resourceAssignments, true));\r
123 \r
124 \r
125     }\r
126 \r
127     @Test\r
128     public void test05AutoMap() throws Exception {\r
129         log.info("*********** test05AutoMap  *******************************************");\r
130 \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
136 \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
143 \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
149             }\r
150         });\r
151 \r
152     }\r
153 \r
154 \r
155 }\r