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 org.junit.Before;
20 import org.junit.Test;
21 import org.openecomp.sdc.translator.services.heattotosca.impl.resourcetranslation.BaseResourceTranslationTest;
23 import java.io.IOException;
24 import java.util.ArrayList;
25 import java.util.HashMap;
26 import java.util.List;
29 import static org.junit.Assert.*;
30 import static org.openecomp.sdc.translator.services.heattotosca.impl.functiontranslation.FunctionTranslator.getFunctionTranslateTo;
32 public class FunctionTranslationGetParamImplTest extends BaseResourceTranslationTest {
36 public void setUp() throws IOException {
37 // do not delete this function. it prevents the superclass setup from running
41 public void testStringGetParamFuncValue() {
42 FunctionTranslationGetParamImpl translationImpl = new FunctionTranslationGetParamImpl();
43 String functionValue = "parameter1";
45 FunctionTranslator functionTranslator = new FunctionTranslator(getFunctionTranslateTo(null, null, "dummy", null,
46 null), null, functionValue, null);
47 Object translatedFunc = translationImpl.translateFunction(functionTranslator);
49 assertTrue(translatedFunc instanceof Map);
50 assertNotNull(((Map) translatedFunc).get("get_input"));
51 assertEquals(functionValue, ((Map) translatedFunc).get("get_input"));
56 public void testListGetParamFuncValue() {
57 FunctionTranslationGetParamImpl translationImpl = new FunctionTranslationGetParamImpl();
58 List<Object> functionValue = new ArrayList<>();
59 functionValue.add("parameter1");
61 functionValue.add("key1");
63 FunctionTranslator functionTranslator = new FunctionTranslator(getFunctionTranslateTo(null, null, "dummy", null,
64 null), null, functionValue, null);
65 Object translatedFunc = translationImpl.translateFunction(functionTranslator);
67 assertTrue(translatedFunc instanceof Map);
68 assertNotNull(((Map) translatedFunc).get("get_input"));
69 Object translatedFunValue = ((Map) translatedFunc).get("get_input");
70 assertTrue(translatedFunValue instanceof List);
72 assertEquals(functionValue.get(0), ((List) translatedFunValue).get(0));
73 assertEquals(functionValue.get(1), ((List) translatedFunValue).get(1));
74 assertEquals(functionValue.get(2), ((List) translatedFunValue).get(2));
79 public void testMapGetParamFuncValue() {
80 // input heat function expression
81 //{get_param: [parameter1, {get_param:indexParam}, key1]}
82 // output translated function expression
83 //{get_input: [parameter1, {get_input:indexParam}, key1]}
85 FunctionTranslationGetParamImpl translationImpl = new FunctionTranslationGetParamImpl();
86 List<Object> functionValue = new ArrayList<>();
87 functionValue.add("parameter1");
88 Map<String, String> innerParamMap = new HashMap<>();
89 innerParamMap.put("get_param", "indexParam");
90 functionValue.add(innerParamMap);
91 functionValue.add("key1");
93 FunctionTranslator functionTranslator = new FunctionTranslator(getFunctionTranslateTo(null, null, "dummy", null,
94 null), null, functionValue, null);
95 Object translatedFunc = translationImpl.translateFunction(functionTranslator);
97 assertTrue(translatedFunc instanceof Map);
98 assertNotNull(((Map) translatedFunc).get("get_input"));
99 Object translatedFunValue = ((Map) translatedFunc).get("get_input");
100 assertTrue(translatedFunValue instanceof List);
101 assertEquals(functionValue.get(0), ((List) translatedFunValue).get(0));
102 assertEquals(functionValue.get(2), ((List) translatedFunValue).get(2));
103 assertTrue(((List) translatedFunValue).get(1) instanceof Map);
104 if (((List) translatedFunValue).get(1) instanceof Map) {
105 assertEquals(innerParamMap.get("get_param"), ((Map) ((List) translatedFunValue).get(1))
112 public void testMapWithMapGetParamFuncValue() {
113 // input heat function expression
114 //{get_param: [parameter1, {get_param:[parameter2, {get_param:indexParam}]}, key1]}
115 // output translated function expression
116 //{get_input: [parameter1, {get_input:[parameter2, {get_input:indexParam}]}, key1]}
118 FunctionTranslationGetParamImpl translationImpl = new FunctionTranslationGetParamImpl();
119 List<Object> functionValue = new ArrayList<>();
120 functionValue.add("parameter1");
121 Map<String, Object> firstInnerParamMap = new HashMap<>();
122 Map<String, String> secondInnerParamMap = new HashMap<>();
123 secondInnerParamMap.put("get_param", "indexParam");
124 List<Object> innerfunction = new ArrayList<>();
125 innerfunction.add("parameter2");
126 innerfunction.add(secondInnerParamMap);
127 firstInnerParamMap.put("get_param", innerfunction);
128 functionValue.add(firstInnerParamMap);
129 functionValue.add("key1");
131 FunctionTranslator functionTranslator = new FunctionTranslator(getFunctionTranslateTo(null, null, "dummy", null,
132 null), null, functionValue, null);
133 Object translatedFunc = translationImpl.translateFunction(functionTranslator);
135 assertTrue(translatedFunc instanceof Map);
136 assertNotNull(((Map) translatedFunc).get("get_input"));
137 Object translatedFunValue = ((Map) translatedFunc).get("get_input");
138 assertTrue(translatedFunValue instanceof List);
139 assertEquals(functionValue.get(0), ((List) translatedFunValue).get(0));
140 assertEquals(functionValue.get(2), ((List) translatedFunValue).get(2));
141 assertTrue(((List) translatedFunValue).get(1) instanceof Map);
142 if (((List) translatedFunValue).get(1) instanceof Map) {
143 assertTrue(((Map) ((List) translatedFunValue).get(1)).get("get_input") instanceof List);
144 List innerTranslatedFunction = (List) ((Map) ((List) translatedFunValue).get(1)).get("get_input");
145 assertEquals(innerfunction.get(0), innerTranslatedFunction.get(0));
146 assertTrue(innerTranslatedFunction.get(1) instanceof Map);
147 assertEquals(secondInnerParamMap.get("get_param"), ((Map) innerTranslatedFunction.get(1)).get("get_input"));
152 public void testInnerNotSupportedFuncGetParamFuncValue() {
153 // input heat function expression
154 //{get_param: [parameter1, {str_replace: {template:$AAkgiru, AA:{get_param:prameter2}}}, key1]}
155 // output translated function expression
156 //{get_input: [parameter1, {str_replace: {template:$AAkgiru, AA:{get_input:parameter2}}}, key1]}
158 FunctionTranslationGetParamImpl translationImpl = new FunctionTranslationGetParamImpl();
159 List<Object> functionValue = new ArrayList<>();
160 functionValue.add("parameter1");
162 Map<String, Object> templateMap = new HashMap<>();
163 templateMap.put("template", "$AAkgiru");
165 Map<String, Object> strReplaceFuncMap = new HashMap<>();
166 Map<String, Object> getParamMapInner = new HashMap<>();
167 getParamMapInner.put("get_param", "parameter2");
168 templateMap.put("AA", getParamMapInner);
170 Map<String, Object> innerParamValue = new HashMap<>();
171 innerParamValue.putAll(templateMap);
172 innerParamValue.putAll(strReplaceFuncMap);
174 strReplaceFuncMap.put("str_replace", innerParamValue);
175 functionValue.add(strReplaceFuncMap);
177 functionValue.add("key1");
179 FunctionTranslator functionTranslator = new FunctionTranslator(getFunctionTranslateTo(null, null, "dummy", null,
180 null), null, functionValue, null);
181 Object translatedFunc = translationImpl.translateFunction(functionTranslator);
183 assertTrue(translatedFunc instanceof Map);
184 assertNotNull(((Map) translatedFunc).get("get_input"));
185 Object translatedFunValue = ((Map) translatedFunc).get("get_input");
186 assertTrue(translatedFunValue instanceof List);
187 assertEquals(functionValue.get(0), ((List) translatedFunValue).get(0));
188 assertEquals(functionValue.get(2), ((List) translatedFunValue).get(2));
189 assertTrue(((List) translatedFunValue).get(1) instanceof Map);
190 if (((List) translatedFunValue).get(1) instanceof Map) {
191 assertEquals(strReplaceFuncMap.get("get_param"),
192 ((Map) ((List) translatedFunValue).get(1))
195 assertTrue(((List) translatedFunValue).get(1) instanceof Map);
196 if (((List) translatedFunValue).get(1) instanceof Map) {
197 assertTrue(((Map) ((List) translatedFunValue).get(1)).get("str_replace") instanceof Map);
198 Map strReplacefunctionValue = (Map) ((Map) ((List) translatedFunValue).get(1)).get("str_replace");
199 assertEquals(templateMap.get("template"), strReplacefunctionValue.get("template"));
200 assertTrue(strReplacefunctionValue.get("AA") instanceof Map);
201 if (strReplacefunctionValue.get("AA") instanceof Map) {
202 assertEquals(getParamMapInner.get("get_param"), ((Map) strReplacefunctionValue.get
203 ("AA")).get("get_input"));
209 public void testTranslateHeatPseudoParamUsedFromMainHeat() throws Exception {
211 "/mock/services/heattotosca/heatPseudoParameters/usedFromMainHeat/inputfiles";
213 "/mock/services/heattotosca/heatPseudoParameters/usedFromMainHeat/expectedoutputfiles";
214 initTranslatorAndTranslate();
219 public void testTranslateHeatPseudoParamUsedFromNestedHeat() throws Exception {
221 "/mock/services/heattotosca/heatPseudoParameters/usedFromNestedHeat/inputfiles";
223 "/mock/services/heattotosca/heatPseudoParameters/usedFromNestedHeat/expectedoutputfiles";
224 initTranslatorAndTranslate();