Rework tosca converter
[clamp.git] / src / test / java / org / onap / clamp / clds / tosca / update / TemplateManagementTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP CLAMP
4  * ================================================================================
5  * Copyright (C) 2020 AT&T Intellectual Property. All rights
6  *                             reserved.
7  * ================================================================================
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  * ============LICENSE_END============================================
20  * ===================================================================
21  *
22  */
23
24 package org.onap.clamp.clds.tosca.update;
25
26 import java.io.IOException;
27 import java.util.ArrayList;
28 import java.util.Arrays;
29 import junit.framework.TestCase;
30 import org.onap.clamp.clds.util.ResourceFileUtil;
31
32 public class TemplateManagementTest extends TestCase {
33
34     /**
35      * Test the launch translation wit operational policies.
36      *
37      * @throws IOException               In case of failure
38      * @throws UnknownComponentException In case of failure
39      */
40     public void testLaunchTranslationTca() throws IOException, UnknownComponentException {
41         TemplateManagement templateManagement =
42                 new TemplateManagement(
43                         ResourceFileUtil.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap"
44                                 + ".policies.monitoring.cdap.tca.hi.lo.app/versions/1.0.0?"
45                                 + "connectionTimeToLive=5000/.file"), ResourceFileUtil.getResourceAsString(
46                         "clds/tosca_update/defaultToscaTypes.yaml"),
47                         ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
48         assertNull(templateManagement.getParseToJson());
49         String componentName = "onap.policies.monitoring.cdap.tca.hi.lo.app";
50         templateManagement.launchTranslation(componentName);
51         assertNotNull(templateManagement.getParseToJson());
52     }
53
54     /**
55      * Test the launch translation wit operational policies.
56      *
57      * @throws IOException               In case of failure
58      * @throws UnknownComponentException In case of failure
59      */
60     public void testLaunchTranslationFrequencyLimiter() throws IOException, UnknownComponentException {
61         TemplateManagement templateManagement =
62                 new TemplateManagement(
63                         ResourceFileUtil.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap"
64                                 + ".policies.controlloop.guard.common.FrequencyLimiter/versions/1.0.0?"
65                                 + "connectionTimeToLive=5000/.file"), ResourceFileUtil.getResourceAsString(
66                         "clds/tosca_update/defaultToscaTypes.yaml"),
67                         ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
68         assertNull(templateManagement.getParseToJson());
69         String componentName = "onap.policies.controlloop.guard.common.FrequencyLimiter";
70         templateManagement.launchTranslation(componentName);
71         assertNotNull(templateManagement.getParseToJson());
72     }
73
74     /**
75      * Test the launch translation wit operational policies.
76      *
77      * @throws IOException               In case of failure
78      * @throws UnknownComponentException In case of failure
79      */
80     public void testLaunchTranslationApex() throws IOException, UnknownComponentException {
81         TemplateManagement templateManagement =
82                 new TemplateManagement(
83                         ResourceFileUtil.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap"
84                                 + ".policies.controlloop.operational.common.Apex/versions/1.0.0?"
85                                 + "connectionTimeToLive=5000/.file"), ResourceFileUtil.getResourceAsString(
86                         "clds/tosca_update/defaultToscaTypes.yaml"),
87                         ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
88         assertNull(templateManagement.getParseToJson());
89         String componentName = "onap.policies.controlloop.operational.common.Apex";
90         templateManagement.launchTranslation(componentName);
91         assertNotNull(templateManagement.getParseToJson());
92     }
93
94     /**
95      * Test the launch translation wit operational policies.
96      *
97      * @throws IOException               In case of failure
98      * @throws UnknownComponentException In case of failure
99      */
100     public void testLaunchTranslationDrools() throws IOException, UnknownComponentException {
101         TemplateManagement templateManagement =
102                 new TemplateManagement(
103                         ResourceFileUtil.getResourceAsString("http-cache/example/policy/api/v1/policytypes/onap"
104                                 + ".policies.controlloop.operational.common.Drools/versions/1.0.0?"
105                                 + "connectionTimeToLive=5000/.file"), ResourceFileUtil.getResourceAsString(
106                         "clds/tosca_update/defaultToscaTypes.yaml"),
107                         ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
108         assertNull(templateManagement.getParseToJson());
109         String componentName = "onap.policies.controlloop.operational.common.Drools";
110         templateManagement.launchTranslation(componentName);
111         assertNotNull(templateManagement.getParseToJson());
112     }
113
114     /**
115      * Test the launch translation.
116      *
117      * @throws IOException               In case of failure
118      * @throws UnknownComponentException In case of failure
119      */
120     public void testLaunchTranslation() throws IOException, UnknownComponentException {
121         TemplateManagement templateManagement =
122                 new TemplateManagement(
123                         ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
124                         ResourceFileUtil.getResourceAsString("clds/tosca_update/defaultToscaTypes.yaml"),
125                         ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
126         assertNull(templateManagement.getParseToJson());
127         String componentName = "onap.policies.controlloop.operational.common.Drools";
128         templateManagement.launchTranslation(componentName);
129         assertNotNull(templateManagement.getParseToJson());
130     }
131
132     /**
133      * Test addTemplate.
134      *
135      * @throws IOException In case of failure
136      */
137     public void testAddTemplate() throws IOException {
138         TemplateManagement templateManagement =
139                 new TemplateManagement(
140                         ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
141                         ResourceFileUtil.getResourceAsString("clds/tosca_update/defaultToscaTypes.yaml"),
142                         ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
143         int count = templateManagement.getTemplates().size();
144         ArrayList<String> templateFields =
145                 new ArrayList<>(Arrays.asList("type", "description", "required", "metadata", "constraints"));
146         templateManagement.addTemplate("test", templateFields);
147         assertNotSame(count, templateManagement.getTemplates().size());
148     }
149
150     /**
151      * test Remove template.
152      *
153      * @throws IOException In case of failure
154      */
155     public void testRemoveTemplate() throws IOException {
156         TemplateManagement templateManagement =
157                 new TemplateManagement(
158                         ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
159                         ResourceFileUtil.getResourceAsString("clds/tosca_update/defaultToscaTypes.yaml"),
160                         ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
161         int count = templateManagement.getTemplates().size();
162         templateManagement.removeTemplate("string");
163         assertNotSame(count, templateManagement.getTemplates().size());
164     }
165
166     /**
167      * Test update template.
168      *
169      * @throws IOException In case of failure
170      */
171     public void testUpdateTemplate() throws IOException {
172         TemplateManagement templateManagement =
173                 new TemplateManagement(
174                         ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
175                         ResourceFileUtil.getResourceAsString("clds/tosca_update/defaultToscaTypes.yaml"),
176                         ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
177         int count = templateManagement.getTemplates().get("integer").getFields().size();
178         templateManagement.updateTemplate("integer", "type", false);
179         assertNotSame(count, templateManagement.getTemplates().get("integer").getFields().size());
180     }
181
182     /**
183      * Test has template.
184      *
185      * @throws IOException In case of failure
186      */
187     public void testHasTemplate() throws IOException {
188         TemplateManagement templateManagement =
189                 new TemplateManagement(
190                         ResourceFileUtil.getResourceAsString("tosca/new-converter/sampleOperationalPolicies.yaml"),
191                         ResourceFileUtil.getResourceAsString("clds/tosca_update/defaultToscaTypes.yaml"),
192                         ResourceFileUtil.getResourceAsString("clds/tosca_update/templates.properties"));
193         boolean has = true;
194         ArrayList<String> templateFieldsString =
195                 new ArrayList<>(Arrays.asList("type", "description", "required", "metadata", "constraints"));
196         Template templateTest = new Template("String", templateFieldsString);
197         has = templateManagement.hasTemplate(templateTest);
198         assertEquals(false, has);
199     }
200
201 }