217eb8f06493c17336f42c64f88b9aff91b00635
[ccsdk/cds.git] /
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.core.ConfigModelConstant;\r
28 import org.onap.ccsdk.apps.controllerblueprints.core.data.ServiceTemplate;\r
29 import org.onap.ccsdk.apps.controllerblueprints.core.utils.JacksonUtils;\r
30 import org.onap.ccsdk.apps.controllerblueprints.resource.dict.ResourceAssignment;\r
31 import org.onap.ccsdk.apps.controllerblueprints.service.domain.ConfigModelContent;\r
32 import org.onap.ccsdk.apps.controllerblueprints.service.model.AutoMapResponse;\r
33 import com.att.eelf.configuration.EELFLogger;\r
34 import com.att.eelf.configuration.EELFManager;\r
35 import org.springframework.beans.factory.annotation.Autowired;\r
36 import org.springframework.boot.test.context.SpringBootTest;\r
37 import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;\r
38 import org.springframework.test.context.ContextConfiguration;\r
39 import org.springframework.test.context.junit4.SpringRunner;\r
40 \r
41 import java.io.File;\r
42 import java.nio.charset.Charset;\r
43 import java.util.List;\r
44 \r
45 \r
46 @RunWith(SpringRunner.class)\r
47 @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)\r
48 @ContextConfiguration(classes = {TestApplication.class})\r
49 @FixMethodOrder(MethodSorters.NAME_ASCENDING)\r
50 public class ServiceTemplateRestTest {\r
51 \r
52     private static EELFLogger log = EELFManager.getInstance().getLogger(ServiceTemplateRestTest.class);\r
53     @Autowired\r
54     ModelTypeRest modelTypeRest;\r
55 \r
56     @Autowired\r
57     private ServiceTemplateRest serviceTemplateRest;\r
58 \r
59     @Test\r
60     public void test02EnrichServiceTemplate() throws Exception {\r
61         log.info("*********** test02EnrichServiceTemplate  ***********************");\r
62         String file = "src/test/resources/enhance/enhance-template.json";\r
63 \r
64         String serviceTemplateContent = FileUtils.readFileToString(new File(file), Charset.defaultCharset());\r
65 \r
66         ServiceTemplate serviceTemplate = JacksonUtils.readValue(serviceTemplateContent, ServiceTemplate.class);\r
67 \r
68         serviceTemplate = serviceTemplateRest.enrichServiceTemplate(serviceTemplate);\r
69 \r
70         String enhancedFile = "src/test/resources/enhance/enhanced-template.json";\r
71 \r
72         FileUtils.write(new File(enhancedFile),\r
73                 JacksonUtils.getJson(serviceTemplate, true), Charset.defaultCharset());\r
74 \r
75         Assert.assertNotNull("Failed to get Enriched Blueprints, Return object is Null", serviceTemplate);\r
76         Assert.assertNotNull("Failed to get Enriched Blueprints Data Type, Return object is Null",\r
77                 serviceTemplate.getDataTypes());\r
78         Assert.assertNotNull("Failed to get Enriched Blueprints Node Type, Return object is Null",\r
79                 serviceTemplate.getNodeTypes());\r
80         log.trace("Enriched Service Template :\n" + JacksonUtils.getJson(serviceTemplate, true));\r
81     }\r
82 \r
83     @Test\r
84     public void test03ValidateServiceTemplate() throws Exception {\r
85         log.info("*********** test03ValidateServiceTemplate  *******************************************");\r
86         String enhancedFile = "src/test/resources/enhance/enhanced-template.json";\r
87         String serviceTemplateContent = FileUtils.readFileToString(new File(enhancedFile), Charset.defaultCharset());\r
88 \r
89         ServiceTemplate serviceTemplate =\r
90                 JacksonUtils.readValue(serviceTemplateContent, ServiceTemplate.class);\r
91 \r
92         serviceTemplate = serviceTemplateRest.validateServiceTemplate(serviceTemplate);\r
93 \r
94         Assert.assertNotNull("Failed to validate Service Template, Return object is Null", serviceTemplate);\r
95         Assert.assertNotNull("Failed to get Service Template Data Type, Return object is Null",\r
96                 serviceTemplate.getDataTypes());\r
97         Assert.assertNotNull("Failed to get Service Template Node Type, Return object is Null",\r
98                 serviceTemplate.getNodeTypes());\r
99 \r
100         log.trace("Validated Service Template :\n" + JacksonUtils.getJson(serviceTemplate, true));\r
101 \r
102     }\r
103 \r
104 \r
105     @Test\r
106     public void test04GenerateResourceAssignments() throws Exception {\r
107         log.info("*********** test04GenerateResourceAssignments  *******************************************");\r
108         ConfigModelContent baseConfigConfigModelContent = new ConfigModelContent();\r
109         String baseConfigContent = FileUtils.readFileToString(new File("load/blueprints/vrr-test/Templates/base-config-template.vtl")\r
110                 , Charset.defaultCharset());\r
111         baseConfigConfigModelContent.setName("base-config-template");\r
112         baseConfigConfigModelContent.setContentType(ConfigModelConstant.MODEL_CONTENT_TYPE_TEMPLATE);\r
113         baseConfigConfigModelContent.setContent(baseConfigContent);\r
114 \r
115         List<ResourceAssignment> resourceAssignments =\r
116                 serviceTemplateRest.generateResourceAssignments(baseConfigConfigModelContent);\r
117 \r
118         Assert.assertNotNull("Failed to get ResourceAssignments, Return object is Null", resourceAssignments);\r
119         Assert.assertTrue("Failed to get ResourceAssignments count", resourceAssignments.size() > 0);\r
120 \r
121         log.trace("Validated Service Template :\n" + JacksonUtils.getJson(resourceAssignments, true));\r
122 \r
123 \r
124     }\r
125 \r
126     @Test\r
127     public void test05AutoMap() throws Exception {\r
128         log.info("*********** test05AutoMap  *******************************************");\r
129 \r
130         String resourceassignmentContent = FileUtils.readFileToString(\r
131                 new File("src/test/resources/resourcedictionary/automap.json"), Charset.defaultCharset());\r
132         List<ResourceAssignment> batchResourceAssignment =\r
133                 JacksonUtils.getListFromJson(resourceassignmentContent, ResourceAssignment.class);\r
134         AutoMapResponse autoMapResponse = serviceTemplateRest.autoMap(batchResourceAssignment);\r
135 \r
136         Assert.assertNotNull("Failed to get ResourceAssignments, Return object is Null",\r
137                 autoMapResponse.getResourceAssignments());\r
138         Assert.assertNotNull("Failed to get Data Dictionary from ResourceAssignments",\r
139                 autoMapResponse.getDataDictionaries());\r
140         Assert.assertTrue("Failed to get ResourceAssignments count",\r
141                 CollectionUtils.isNotEmpty(autoMapResponse.getDataDictionaries()));\r
142 \r
143         List<ResourceAssignment> autoMappedResourceAssignment = autoMapResponse.getResourceAssignments();\r
144         autoMappedResourceAssignment.forEach(resourceAssignment -> {\r
145             if ("bundle-id".equals(resourceAssignment.getName())) {\r
146                 Assert.assertEquals("Failed to assign default first source", "db",\r
147                         resourceAssignment.getDictionarySource());\r
148             }\r
149         });\r
150 \r
151     }\r
152 \r
153 \r
154 }\r