9c02d4cfea2feb63d2157c1805faed75a6e12604
[ccsdk/cds.git] /
1 /*\r
2  * Copyright © 2017-2018 AT&T Intellectual Property.\r
3  * Modifications Copyright © 2018 IBM.\r
4  *\r
5  * Licensed under the Apache License, Version 2.0 (the "License");\r
6  * you may not use this file except in compliance with the License.\r
7  * You may obtain a copy of the License at\r
8  *\r
9  *     http://www.apache.org/licenses/LICENSE-2.0\r
10  *\r
11  * Unless required by applicable law or agreed to in writing, software\r
12  * distributed under the License is distributed on an "AS IS" BASIS,\r
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
14  * See the License for the specific language governing permissions and\r
15  * limitations under the License.\r
16  */\r
17 \r
18 package org.onap.ccsdk.apps.controllerblueprints.service.rs;\r
19 \r
20 import org.apache.commons.collections.CollectionUtils;\r
21 import org.apache.commons.io.FileUtils;\r
22 import org.junit.Assert;\r
23 import org.junit.FixMethodOrder;\r
24 import org.junit.Test;\r
25 import org.junit.runner.RunWith;\r
26 import org.junit.runners.MethodSorters;\r
27 import org.onap.ccsdk.apps.controllerblueprints.TestApplication;\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.controller.ModelTypeController;\r
33 import org.onap.ccsdk.apps.controllerblueprints.service.domain.ConfigModelContent;\r
34 import org.onap.ccsdk.apps.controllerblueprints.service.model.AutoMapResponse;\r
35 import com.att.eelf.configuration.EELFLogger;\r
36 import com.att.eelf.configuration.EELFManager;\r
37 import org.springframework.beans.factory.annotation.Autowired;\r
38 import org.springframework.boot.test.context.SpringBootTest;\r
39 import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;\r
40 import org.springframework.test.context.ContextConfiguration;\r
41 import org.springframework.test.context.junit4.SpringRunner;\r
42 \r
43 import java.io.File;\r
44 import java.nio.charset.Charset;\r
45 import java.util.List;\r
46 \r
47 @Deprecated\r
48 @RunWith(SpringRunner.class)\r
49 @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, properties = {"blueprints.load.initial-data=true"})\r
50 @ContextConfiguration(classes = {TestApplication.class})\r
51 @FixMethodOrder(MethodSorters.NAME_ASCENDING)\r
52 public class ServiceTemplateRestTest {\r
53 \r
54     private static EELFLogger log = EELFManager.getInstance().getLogger(ServiceTemplateRestTest.class);\r
55     @Autowired\r
56     ModelTypeController modelTypeRest;\r
57 \r
58     @Autowired\r
59     private ServiceTemplateRest serviceTemplateRest;\r
60 \r
61     //@Test FIXME("Enable once Complete Enhancement Service Implemented")\r
62     public void test02EnrichServiceTemplate() throws Exception {\r
63         log.info("*********** test02EnrichServiceTemplate  ***********************");\r
64         String file = "src/test/resources/enhance/enhance-template.json";\r
65 \r
66         String serviceTemplateContent = FileUtils.readFileToString(new File(file), Charset.defaultCharset());\r
67 \r
68         ServiceTemplate serviceTemplate = JacksonUtils.readValue(serviceTemplateContent, ServiceTemplate.class);\r
69 \r
70         serviceTemplate = serviceTemplateRest.enrichServiceTemplate(serviceTemplate);\r
71 \r
72         String enhancedFile = "src/test/resources/enhance/enhanced-template.json";\r
73 \r
74         FileUtils.write(new File(enhancedFile),\r
75                 JacksonUtils.getJson(serviceTemplate, true), Charset.defaultCharset());\r
76 \r
77         Assert.assertNotNull("Failed to get Enriched Blueprints, Return object is Null", serviceTemplate);\r
78         Assert.assertNotNull("Failed to get Enriched Blueprints Data Type, Return object is Null",\r
79                 serviceTemplate.getDataTypes());\r
80         Assert.assertNotNull("Failed to get Enriched Blueprints Node Type, Return object is Null",\r
81                 serviceTemplate.getNodeTypes());\r
82         log.trace("Enriched Service Template :\n" + JacksonUtils.getJson(serviceTemplate, true));\r
83     }\r
84 \r
85     //@Test FIXME("Enable once Complete Enhancement Service Implemented")\r
86     public void test03ValidateServiceTemplate() throws Exception {\r
87         log.info("*********** test03ValidateServiceTemplate  *******************************************");\r
88         String enhancedFile = "src/test/resources/enhance/enhanced-template.json";\r
89         String serviceTemplateContent = FileUtils.readFileToString(new File(enhancedFile), Charset.defaultCharset());\r
90 \r
91         ServiceTemplate serviceTemplate =\r
92                 JacksonUtils.readValue(serviceTemplateContent, ServiceTemplate.class);\r
93 \r
94         serviceTemplate = serviceTemplateRest.validateServiceTemplate(serviceTemplate);\r
95 \r
96         Assert.assertNotNull("Failed to validate Service Template, Return object is Null", serviceTemplate);\r
97         Assert.assertNotNull("Failed to get Service Template Data Type, Return object is Null",\r
98                 serviceTemplate.getDataTypes());\r
99         Assert.assertNotNull("Failed to get Service Template Node Type, Return object is Null",\r
100                 serviceTemplate.getNodeTypes());\r
101 \r
102         log.trace("Validated Service Template :\n" + JacksonUtils.getJson(serviceTemplate, true));\r
103 \r
104     }\r
105 \r
106 \r
107     @Test\r
108     public void test04GenerateResourceAssignments() throws Exception {\r
109         log.info("*********** test04GenerateResourceAssignments  *******************************************");\r
110         ConfigModelContent baseConfigConfigModelContent = new ConfigModelContent();\r
111         String baseConfigContent = FileUtils.readFileToString(new File("load/blueprints/vrr-test/Templates/base-config-template.vtl")\r
112                 , Charset.defaultCharset());\r
113         baseConfigConfigModelContent.setName("base-config-template");\r
114         baseConfigConfigModelContent.setContentType(ConfigModelConstant.MODEL_CONTENT_TYPE_TEMPLATE);\r
115         baseConfigConfigModelContent.setContent(baseConfigContent);\r
116 \r
117         List<ResourceAssignment> resourceAssignments =\r
118                 serviceTemplateRest.generateResourceAssignments(baseConfigConfigModelContent);\r
119 \r
120         Assert.assertNotNull("Failed to get ResourceAssignments, Return object is Null", resourceAssignments);\r
121         Assert.assertTrue("Failed to get ResourceAssignments count", resourceAssignments.size() > 0);\r
122 \r
123         log.trace("Validated Service Template :\n" + JacksonUtils.getJson(resourceAssignments, true));\r
124 \r
125 \r
126     }\r
127 \r
128     //@Test\r
129     public void test05AutoMap() throws Exception {\r
130         log.info("*********** test05AutoMap  *******************************************");\r
131 \r
132         String resourceAssignmentContent = FileUtils.readFileToString(\r
133                 new File("src/test/resources/resourcedictionary/automap.json"), Charset.defaultCharset());\r
134         List<ResourceAssignment> batchResourceAssignment =\r
135                 JacksonUtils.getListFromJson(resourceAssignmentContent, ResourceAssignment.class);\r
136         AutoMapResponse autoMapResponse = serviceTemplateRest.autoMap(batchResourceAssignment);\r
137 \r
138         Assert.assertNotNull("Failed to get ResourceAssignments, Return object is Null",\r
139                 autoMapResponse.getResourceAssignments());\r
140         Assert.assertNotNull("Failed to get Data Dictionary from ResourceAssignments",\r
141                 autoMapResponse.getDataDictionaries());\r
142         Assert.assertTrue("Failed to get ResourceAssignments count",\r
143                 CollectionUtils.isNotEmpty(autoMapResponse.getDataDictionaries()));\r
144 \r
145         List<ResourceAssignment> autoMappedResourceAssignment = autoMapResponse.getResourceAssignments();\r
146         autoMappedResourceAssignment.forEach(resourceAssignment -> {\r
147             if ("sample-db-source".equals(resourceAssignment.getName())) {\r
148                 Assert.assertEquals("Failed to assign default first source", "db",\r
149                         resourceAssignment.getDictionarySource());\r
150             }\r
151         });\r
152 \r
153     }\r
154 \r
155 \r
156 }\r