2 * Copyright © 2016-2018 European Support Limited
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package org.openecomp.sdc.translator.services.heattotosca.impl.functiontranslation;
19 import static org.junit.Assert.assertEquals;
20 import static org.junit.Assert.assertNotNull;
21 import static org.junit.Assert.assertTrue;
22 import static org.openecomp.sdc.translator.services.heattotosca.impl.functiontranslation.FunctionTranslator.getFunctionTranslateTo;
24 import java.io.IOException;
25 import java.util.ArrayList;
26 import java.util.HashMap;
27 import java.util.List;
30 import org.junit.Before;
31 import org.junit.Test;
32 import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
34 public class FunctionTranslationGetParamImplTest extends BaseResourceTranslationTest {
38 public void setUp() throws IOException {
39 // do not delete this function. it prevents the superclass setup from running
43 public void testStringGetParamFuncValue() {
44 FunctionTranslationGetParamImpl translationImpl = new FunctionTranslationGetParamImpl();
45 String functionValue = "parameter1";
47 FunctionTranslator functionTranslator = new FunctionTranslator(getFunctionTranslateTo(null, null, "dummy", null,
48 null), null, functionValue, null);
49 Object translatedFunc = translationImpl.translateFunction(functionTranslator);
51 assertTrue(translatedFunc instanceof Map);
52 assertNotNull(((Map) translatedFunc).get("get_input"));
53 assertEquals(functionValue, ((Map) translatedFunc).get("get_input"));
58 public void testListGetParamFuncValue() {
59 FunctionTranslationGetParamImpl translationImpl = new FunctionTranslationGetParamImpl();
60 List<Object> functionValue = new ArrayList<>();
61 functionValue.add("parameter1");
63 functionValue.add("key1");
65 FunctionTranslator functionTranslator = new FunctionTranslator(getFunctionTranslateTo(null, null, "dummy", null,
66 null), null, functionValue, null);
67 Object translatedFunc = translationImpl.translateFunction(functionTranslator);
69 assertTrue(translatedFunc instanceof Map);
70 assertNotNull(((Map) translatedFunc).get("get_input"));
71 Object translatedFunValue = ((Map) translatedFunc).get("get_input");
72 assertTrue(translatedFunValue instanceof List);
74 assertEquals(functionValue.get(0), ((List) translatedFunValue).get(0));
75 assertEquals(functionValue.get(1), ((List) translatedFunValue).get(1));
76 assertEquals(functionValue.get(2), ((List) translatedFunValue).get(2));
81 public void testMapGetParamFuncValue() {
82 // input heat function expression
83 //{get_param: [parameter1, {get_param:indexParam}, key1]}
84 // output translated function expression
85 //{get_input: [parameter1, {get_input:indexParam}, key1]}
87 FunctionTranslationGetParamImpl translationImpl = new FunctionTranslationGetParamImpl();
88 List<Object> functionValue = new ArrayList<>();
89 functionValue.add("parameter1");
90 Map<String, String> innerParamMap = new HashMap<>();
91 innerParamMap.put("get_param", "indexParam");
92 functionValue.add(innerParamMap);
93 functionValue.add("key1");
95 FunctionTranslator functionTranslator = new FunctionTranslator(getFunctionTranslateTo(null, null, "dummy", null,
96 null), null, functionValue, null);
97 Object translatedFunc = translationImpl.translateFunction(functionTranslator);
99 assertTrue(translatedFunc instanceof Map);
100 assertNotNull(((Map) translatedFunc).get("get_input"));
101 Object translatedFunValue = ((Map) translatedFunc).get("get_input");
102 assertTrue(translatedFunValue instanceof List);
103 assertEquals(functionValue.get(0), ((List) translatedFunValue).get(0));
104 assertEquals(functionValue.get(2), ((List) translatedFunValue).get(2));
105 assertTrue(((List) translatedFunValue).get(1) instanceof Map);
106 if (((List) translatedFunValue).get(1) instanceof Map) {
107 assertEquals(innerParamMap.get("get_param"), ((Map) ((List) translatedFunValue).get(1))
114 public void testMapWithMapGetParamFuncValue() {
115 // input heat function expression
116 //{get_param: [parameter1, {get_param:[parameter2, {get_param:indexParam}]}, key1]}
117 // output translated function expression
118 //{get_input: [parameter1, {get_input:[parameter2, {get_input:indexParam}]}, key1]}
120 FunctionTranslationGetParamImpl translationImpl = new FunctionTranslationGetParamImpl();
121 List<Object> functionValue = new ArrayList<>();
122 functionValue.add("parameter1");
123 Map<String, Object> firstInnerParamMap = new HashMap<>();
124 Map<String, String> secondInnerParamMap = new HashMap<>();
125 secondInnerParamMap.put("get_param", "indexParam");
126 List<Object> innerfunction = new ArrayList<>();
127 innerfunction.add("parameter2");
128 innerfunction.add(secondInnerParamMap);
129 firstInnerParamMap.put("get_param", innerfunction);
130 functionValue.add(firstInnerParamMap);
131 functionValue.add("key1");
133 FunctionTranslator functionTranslator = new FunctionTranslator(getFunctionTranslateTo(null, null, "dummy", null,
134 null), null, functionValue, null);
135 Object translatedFunc = translationImpl.translateFunction(functionTranslator);
137 assertTrue(translatedFunc instanceof Map);
138 assertNotNull(((Map) translatedFunc).get("get_input"));
139 Object translatedFunValue = ((Map) translatedFunc).get("get_input");
140 assertTrue(translatedFunValue instanceof List);
141 assertEquals(functionValue.get(0), ((List) translatedFunValue).get(0));
142 assertEquals(functionValue.get(2), ((List) translatedFunValue).get(2));
143 assertTrue(((List) translatedFunValue).get(1) instanceof Map);
144 if (((List) translatedFunValue).get(1) instanceof Map) {
145 assertTrue(((Map) ((List) translatedFunValue).get(1)).get("get_input") instanceof List);
146 List innerTranslatedFunction = (List) ((Map) ((List) translatedFunValue).get(1)).get("get_input");
147 assertEquals(innerfunction.get(0), innerTranslatedFunction.get(0));
148 assertTrue(innerTranslatedFunction.get(1) instanceof Map);
149 assertEquals(secondInnerParamMap.get("get_param"), ((Map) innerTranslatedFunction.get(1)).get("get_input"));
154 public void testInnerNotSupportedFuncGetParamFuncValue() {
155 // input heat function expression
156 //{get_param: [parameter1, {str_replace: {template:$AAkgiru, AA:{get_param:prameter2}}}, key1]}
157 // output translated function expression
158 //{get_input: [parameter1, {str_replace: {template:$AAkgiru, AA:{get_input:parameter2}}}, key1]}
160 FunctionTranslationGetParamImpl translationImpl = new FunctionTranslationGetParamImpl();
161 List<Object> functionValue = new ArrayList<>();
162 functionValue.add("parameter1");
164 Map<String, Object> templateMap = new HashMap<>();
165 templateMap.put("template", "$AAkgiru");
167 Map<String, Object> strReplaceFuncMap = new HashMap<>();
168 Map<String, Object> getParamMapInner = new HashMap<>();
169 getParamMapInner.put("get_param", "parameter2");
170 templateMap.put("AA", getParamMapInner);
172 Map<String, Object> innerParamValue = new HashMap<>();
173 innerParamValue.putAll(templateMap);
174 innerParamValue.putAll(strReplaceFuncMap);
176 strReplaceFuncMap.put("str_replace", innerParamValue);
177 functionValue.add(strReplaceFuncMap);
179 functionValue.add("key1");
181 FunctionTranslator functionTranslator = new FunctionTranslator(getFunctionTranslateTo(null, null, "dummy", null,
182 null), null, functionValue, null);
183 Object translatedFunc = translationImpl.translateFunction(functionTranslator);
185 assertTrue(translatedFunc instanceof Map);
186 assertNotNull(((Map) translatedFunc).get("get_input"));
187 Object translatedFunValue = ((Map) translatedFunc).get("get_input");
188 assertTrue(translatedFunValue instanceof List);
189 assertEquals(functionValue.get(0), ((List) translatedFunValue).get(0));
190 assertEquals(functionValue.get(2), ((List) translatedFunValue).get(2));
191 assertTrue(((List) translatedFunValue).get(1) instanceof Map);
192 if (((List) translatedFunValue).get(1) instanceof Map) {
193 assertEquals(strReplaceFuncMap.get("get_param"),
194 ((Map) ((List) translatedFunValue).get(1))
197 assertTrue(((List) translatedFunValue).get(1) instanceof Map);
198 if (((List) translatedFunValue).get(1) instanceof Map) {
199 assertTrue(((Map) ((List) translatedFunValue).get(1)).get("str_replace") instanceof Map);
200 Map strReplacefunctionValue = (Map) ((Map) ((List) translatedFunValue).get(1)).get("str_replace");
201 assertEquals(templateMap.get("template"), strReplacefunctionValue.get("template"));
202 assertTrue(strReplacefunctionValue.get("AA") instanceof Map);
203 if (strReplacefunctionValue.get("AA") instanceof Map) {
204 assertEquals(getParamMapInner.get("get_param"), ((Map) strReplacefunctionValue.get
205 ("AA")).get("get_input"));
211 public void testTranslateHeatPseudoParamUsedFromMainHeat() throws Exception {
213 "/mock/services/heattotosca/heatPseudoParameters/usedFromMainHeat/inputfiles";
215 "/mock/services/heattotosca/heatPseudoParameters/usedFromMainHeat/expectedoutputfiles";
216 initTranslatorAndTranslate();
221 public void testTranslateHeatPseudoParamUsedFromNestedHeat() throws Exception {
223 "/mock/services/heattotosca/heatPseudoParameters/usedFromNestedHeat/inputfiles";
225 "/mock/services/heattotosca/heatPseudoParameters/usedFromNestedHeat/expectedoutputfiles";
226 initTranslatorAndTranslate();