cabc778b8f6b68dba55f9f409fc3c9f262fd1d9a
[clamp.git] / src / test / java / org / onap / clamp / loop / LoopTemplatesServiceItCase.java
1 /*-\r
2  * ============LICENSE_START=======================================================\r
3  * ONAP CLAMP\r
4  * ================================================================================\r
5  * Copyright (C) 2020 AT&T Intellectual Property. All rights\r
6  *                             reserved.\r
7  * ================================================================================\r
8  * Licensed under the Apache License, Version 2.0 (the "License");\r
9  * you may not use this file except in compliance with the License.\r
10  * You may obtain a copy of the License at\r
11  *\r
12  * http://www.apache.org/licenses/LICENSE-2.0\r
13  *\r
14  * Unless required by applicable law or agreed to in writing, software\r
15  * distributed under the License is distributed on an "AS IS" BASIS,\r
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
17  * See the License for the specific language governing permissions and\r
18  * limitations under the License.\r
19  * ============LICENSE_END============================================\r
20  * ===================================================================\r
21  *\r
22  */\r
23 \r
24 package org.onap.clamp.loop;\r
25 \r
26 import static org.assertj.core.api.Assertions.assertThat;\r
27 import static org.junit.Assert.assertNotNull;\r
28 import static org.junit.Assert.assertNull;\r
29 import static org.junit.jupiter.api.Assertions.assertEquals;\r
30 \r
31 import java.util.List;\r
32 import java.util.SortedSet;\r
33 import javax.transaction.Transactional;\r
34 import org.junit.Test;\r
35 import org.junit.runner.RunWith;\r
36 import org.onap.clamp.clds.Application;\r
37 import org.onap.clamp.loop.template.LoopElementModel;\r
38 import org.onap.clamp.loop.template.LoopTemplate;\r
39 import org.onap.clamp.loop.template.LoopTemplateLoopElementModel;\r
40 import org.onap.clamp.loop.template.LoopTemplatesService;\r
41 import org.onap.clamp.loop.template.LoopType;\r
42 import org.onap.clamp.loop.template.PolicyModel;\r
43 import org.springframework.beans.factory.annotation.Autowired;\r
44 import org.springframework.boot.test.context.SpringBootTest;\r
45 import org.springframework.test.context.junit4.SpringRunner;\r
46 \r
47 @RunWith(SpringRunner.class)\r
48 @SpringBootTest(classes = Application.class)\r
49 public class LoopTemplatesServiceItCase {\r
50 \r
51     @Autowired\r
52     LoopTemplatesService loopTemplatesService;\r
53 \r
54     private static final String POLICY_MODEL_TYPE_1 = "org.onap.test";\r
55     private static final String VERSION = "1.0.0";\r
56 \r
57     private LoopElementModel getLoopElementModel(String yaml, String name, String loopElementType,\r
58         String createdBy, PolicyModel policyModel) {\r
59         LoopElementModel model = new LoopElementModel(name, loopElementType, yaml);\r
60         model.setBlueprint("");\r
61         model.setDcaeBlueprintId("");\r
62         model.addPolicyModel(policyModel);\r
63         return model;\r
64     }\r
65 \r
66     private PolicyModel getPolicyModel(String policyType, String policyModelTosca, String version,\r
67         String policyAcronym, String createdBy) {\r
68         return new PolicyModel(policyType, policyModelTosca, version, policyAcronym);\r
69     }\r
70 \r
71     private LoopTemplate getLoopTemplate(String name, String blueprint, String svgRepresentation,\r
72         String createdBy, Integer maxInstancesAllowed) {\r
73         LoopTemplate template =\r
74             new LoopTemplate(name, blueprint, svgRepresentation, maxInstancesAllowed, null);\r
75         template.addLoopElementModel(getLoopElementModel("yaml", "microService1", "MicroService",\r
76             createdBy, getPolicyModel(POLICY_MODEL_TYPE_1, "yaml", VERSION, "MS1", createdBy)));\r
77         template.setAllowedLoopType(LoopType.OPEN);\r
78         return template;\r
79     }\r
80 \r
81     @Test\r
82     @Transactional\r
83     public void shouldSaveOrUpdateLoopTemplate() {\r
84         LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "svg", "xyz", -1);\r
85         LoopTemplate actualLoopTemplate =\r
86             loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);\r
87 \r
88         assertNotNull(actualLoopTemplate);\r
89         assertThat(loopTemplate.getName()).isEqualTo("TemplateName");\r
90         assertThat(loopTemplate.getAllowedLoopType()).isEqualTo(LoopType.OPEN);\r
91     }\r
92 \r
93     @Test\r
94     @Transactional\r
95     public void shouldReturnAllLoopemplates() {\r
96         LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "svg", "xyz", -1);\r
97         loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);\r
98         List<LoopTemplate> loopTemplateList = loopTemplatesService.getAllLoopTemplates();\r
99 \r
100         assertNotNull(loopTemplateList);\r
101     }\r
102 \r
103     @Test\r
104     @Transactional\r
105     public void shouldReturnLoopemplateNames() {\r
106         LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "svg", "xyz", -1);\r
107         loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);\r
108         List<String> loopTemplateNames = loopTemplatesService.getLoopTemplateNames();\r
109 \r
110         assertNotNull(loopTemplateNames);\r
111         assertEquals("TemplateName", loopTemplateNames.get(0));\r
112     }\r
113 \r
114     @Test\r
115     @Transactional\r
116     public void shouldReturnLoopemplate() {\r
117         LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "svg", "xyz", -1);\r
118         loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);\r
119         LoopTemplate actualLoopTemplate = loopTemplatesService.getLoopTemplate("TemplateName");\r
120 \r
121         assertNotNull(actualLoopTemplate);\r
122         assertThat(loopTemplate).isEqualTo(actualLoopTemplate);\r
123         assertThat(loopTemplate.getName()).isEqualTo(actualLoopTemplate.getName());\r
124         assertThat(loopTemplate.getMaximumInstancesAllowed())\r
125             .isEqualTo(actualLoopTemplate.getMaximumInstancesAllowed());\r
126         SortedSet<LoopTemplateLoopElementModel> loopElementModelsUsed =\r
127             loopTemplate.getLoopElementModelsUsed();\r
128         LoopTemplateLoopElementModel loopTemplateLoopElementModel = loopElementModelsUsed.first();\r
129         assertThat(loopTemplateLoopElementModel.getLoopElementModel().getName())\r
130             .isEqualTo("microService1");\r
131         assertThat(loopTemplateLoopElementModel.getLoopTemplate().getName())\r
132             .isEqualTo("TemplateName");\r
133         assertNull(actualLoopTemplate.getBlueprint());\r
134         assertNull(actualLoopTemplate.getModelService());\r
135     }\r
136 \r
137     @Test\r
138     @Transactional\r
139     public void shouldReturnLoopemplateSvg() {\r
140         LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "svg", "xyz", -1);\r
141         loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);\r
142         String svgRepresentation = loopTemplatesService.getSvgRepresentation("TemplateName");\r
143 \r
144         assertNotNull(svgRepresentation);\r
145         assertThat(svgRepresentation).isEqualTo(loopTemplate.getSvgRepresentation());\r
146     }\r
147 \r
148     @Test\r
149     @Transactional\r
150     public void shouldDeleteLoopemplate() {\r
151         LoopTemplate loopTemplate = getLoopTemplate("TemplateName", null, "svg", "xyz", -1);\r
152         loopTemplatesService.saveOrUpdateLoopTemplate(loopTemplate);\r
153         loopTemplatesService.deleteLoopTemplate("TemplateName");\r
154         LoopTemplate actualLoopTemplate = loopTemplatesService.getLoopTemplate("TemplateName");\r
155         assertNull(actualLoopTemplate);\r
156     }\r
157 \r
158 }\r