summaryrefslogtreecommitdiffstats
path: root/common-be/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'common-be/src/test')
-rw-r--r--common-be/src/test/java/org/openecomp/sdc/be/datatypes/elements/ToscaFunctionJsonDeserializerTest.java50
-rw-r--r--common-be/src/test/resources/toscaFunctionJsonDeserializer/customFunction.json45
2 files changed, 95 insertions, 0 deletions
diff --git a/common-be/src/test/java/org/openecomp/sdc/be/datatypes/elements/ToscaFunctionJsonDeserializerTest.java b/common-be/src/test/java/org/openecomp/sdc/be/datatypes/elements/ToscaFunctionJsonDeserializerTest.java
index b17a3dc3a3..d7c2e7c65e 100644
--- a/common-be/src/test/java/org/openecomp/sdc/be/datatypes/elements/ToscaFunctionJsonDeserializerTest.java
+++ b/common-be/src/test/java/org/openecomp/sdc/be/datatypes/elements/ToscaFunctionJsonDeserializerTest.java
@@ -139,6 +139,56 @@ class ToscaFunctionJsonDeserializerTest {
assertDoesNotThrow(() -> new Yaml().load(toscaFunction.getValue()));
}
+ @Test
+ void testCustomToscaFunction() throws IOException {
+ //given
+ final String toscaCustomFunction = Files.readString(TEST_RESOURCES_PATH.resolve("customFunction.json"));
+ //when
+ final ToscaFunction toscaFunction = parseToscaFunction(toscaCustomFunction);
+ //then
+ assertTrue(toscaFunction instanceof ToscaCustomFunction);
+ final Object yamlObject = new Yaml().load(toscaFunction.getValue());
+ assertTrue(yamlObject instanceof Map);
+ final Map<String, Object> yamlMap = (Map<String, Object>) yamlObject;
+ final Object customFunctionObj = yamlMap.get("$" + ((ToscaCustomFunction) toscaFunction).getName());
+ assertNotNull(customFunctionObj);
+ assertTrue(customFunctionObj instanceof List);
+ final List<Object> customFunctionParameters = (List<Object>) customFunctionObj;
+ assertEquals(3, customFunctionParameters.size(), "Expecting three parameters");
+ assertEquals("string1", customFunctionParameters.get(0));
+
+ assertTrue(customFunctionParameters.get(1) instanceof Map);
+ final Map<String, Object> parameter1Map = (Map<String, Object>) customFunctionParameters.get(1);
+ assertNotNull(parameter1Map.get(ToscaFunctionType.GET_ATTRIBUTE.getName()));
+ assertTrue(parameter1Map.get(ToscaFunctionType.GET_ATTRIBUTE.getName()) instanceof List);
+ List<String> getAttributeParameters = (List<String>) parameter1Map.get(ToscaFunctionType.GET_ATTRIBUTE.getName());
+ assertEquals(2, getAttributeParameters.size(), "Expecting two parameters in the get_attribute function");
+ assertEquals("SELF", getAttributeParameters.get(0));
+ assertEquals("descriptor_id", getAttributeParameters.get(1));
+
+ assertTrue(customFunctionParameters.get(2) instanceof Map);
+ final Map<String, Object> parameter2Map = (Map<String, Object>) customFunctionParameters.get(2);
+ Object customFunctionObj2 = parameter2Map.get(parameter2Map.keySet().stream().iterator().next());
+ assertNotNull(customFunctionObj2);
+ assertTrue(customFunctionObj2 instanceof List);
+ List<Object> customParameters = (List<Object>) customFunctionObj2;
+ assertEquals(2, customParameters.size(), "Expecting two parameters in the sub custom function");
+ assertTrue(customParameters.get(0) instanceof Map);
+ final Map<String, Object> concatFunctionValueMap = (Map<String, Object>) customParameters.get(0);
+ assertNotNull(concatFunctionValueMap.get(ToscaFunctionType.CONCAT.getName()));
+ assertTrue(concatFunctionValueMap.get(ToscaFunctionType.CONCAT.getName()) instanceof List);
+ List<Object> concatParameters = (List<Object>) concatFunctionValueMap.get(ToscaFunctionType.CONCAT.getName());
+ assertEquals(2, concatParameters.size(), "Expecting two parameters in the sub concat function");
+ assertEquals("string2", concatParameters.get(0));
+ assertTrue(concatParameters.get(1) instanceof Map);
+ Map<String, Object> yamlFunctionValueMap = (Map<String, Object>) concatParameters.get(1);
+ assertTrue(yamlFunctionValueMap.get("myList") instanceof List);
+ assertTrue(yamlFunctionValueMap.get("get_something") instanceof List);
+ assertTrue(yamlFunctionValueMap.get("string") instanceof String);
+
+ assertEquals("string3", customParameters.get(1));
+ }
+
private ToscaFunction parseToscaFunction(final String toscaFunctionJson) throws JsonProcessingException {
return new ObjectMapper().readValue(toscaFunctionJson, ToscaFunction.class);
}
diff --git a/common-be/src/test/resources/toscaFunctionJsonDeserializer/customFunction.json b/common-be/src/test/resources/toscaFunctionJsonDeserializer/customFunction.json
new file mode 100644
index 0000000000..0042975e29
--- /dev/null
+++ b/common-be/src/test/resources/toscaFunctionJsonDeserializer/customFunction.json
@@ -0,0 +1,45 @@
+{
+ "type": "CUSTOM",
+ "name": "first_custom_function_name",
+ "parameters": [
+ {
+ "type": "STRING",
+ "value": "string1"
+ },
+ {
+ "type": "GET_ATTRIBUTE",
+ "propertyUniqueId": "36897651-f5e5-4603-8064-b60c771a3c37.descriptor_id",
+ "propertyName": "descriptor_id",
+ "propertySource": "SELF",
+ "sourceUniqueId": "36897651-f5e5-4603-8064-b60c771a3c37",
+ "sourceName": "testService",
+ "functionType": "GET_ATTRIBUTE",
+ "propertyPathFromSource": [
+ "descriptor_id"
+ ]
+ },
+ {
+ "type": "CUSTOM",
+ "name": "second_custom_function_name",
+ "parameters": [
+ {
+ "type": "CONCAT",
+ "parameters": [
+ {
+ "type": "STRING",
+ "value": "string2"
+ },
+ {
+ "type": "YAML",
+ "value": "myList: [1, two, three three]\nget_something: [SELF, something]\nstring: this is my string\n"
+ }
+ ]
+ },
+ {
+ "type": "STRING",
+ "value": "string3"
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file