summaryrefslogtreecommitdiffstats
path: root/common-be/src/test
diff options
context:
space:
mode:
authorandre.schmid <andre.schmid@est.tech>2022-08-10 14:50:08 +0100
committerVasyl Razinkov <vasyl.razinkov@est.tech>2022-09-08 18:24:44 +0000
commit92b18f188105d5ba4b2c469cdfaedc7d2953d593 (patch)
treedf7c7562faa99a76b0e6b5bc079de8d514b35006 /common-be/src/test
parentc0c2637f201f488a74cb1916f05eece0cc207e9d (diff)
Support TOSCA functions in Node Filters
Adds support to use tosca functions as value in the node property filters and substitution filters Change-Id: Id242691cc9ddd233245b58f052b9f0e2c7bbd66b Issue-ID: SDC-4128 Signed-off-by: André Schmid <andre.schmid@est.tech>
Diffstat (limited to 'common-be/src/test')
-rw-r--r--common-be/src/test/java/org/openecomp/sdc/be/datatypes/elements/PropertyFilterConstraintDataDefinitionJsonDeserializerTest.java101
-rw-r--r--common-be/src/test/java/org/openecomp/sdc/be/datatypes/enums/FilterValueTypeTest.java75
-rw-r--r--common-be/src/test/java/org/openecomp/sdc/be/utils/PropertyFilterConstraintDataDefinitionHelperTest.java196
-rw-r--r--common-be/src/test/resources/nodeFilter/constraints/concat.yaml8
-rw-r--r--common-be/src/test/resources/nodeFilter/constraints/legacy-get_attribute-from-instance.yaml6
-rw-r--r--common-be/src/test/resources/nodeFilter/constraints/legacy-get_attribute-from-self.yaml6
-rw-r--r--common-be/src/test/resources/nodeFilter/constraints/legacy-get_input-subProperty.yaml6
-rw-r--r--common-be/src/test/resources/nodeFilter/constraints/legacy-get_input.yaml4
-rw-r--r--common-be/src/test/resources/nodeFilter/constraints/legacy-get_property-from-instance.yaml6
-rw-r--r--common-be/src/test/resources/nodeFilter/constraints/legacy-get_property-from-self.yaml6
-rw-r--r--common-be/src/test/resources/nodeFilter/constraints/legacy-static.yaml5
-rw-r--r--common-be/src/test/resources/propertyFilterConstraintDataDefinitionDeserializer/filter-constraint-get-input.json16
-rw-r--r--common-be/src/test/resources/propertyFilterConstraintDataDefinitionDeserializer/filter-constraint-legacy.txt1
-rw-r--r--common-be/src/test/resources/propertyFilterConstraintDataDefinitionDeserializer/filter-constraint-static.json8
14 files changed, 444 insertions, 0 deletions
diff --git a/common-be/src/test/java/org/openecomp/sdc/be/datatypes/elements/PropertyFilterConstraintDataDefinitionJsonDeserializerTest.java b/common-be/src/test/java/org/openecomp/sdc/be/datatypes/elements/PropertyFilterConstraintDataDefinitionJsonDeserializerTest.java
new file mode 100644
index 0000000000..d40c8f4862
--- /dev/null
+++ b/common-be/src/test/java/org/openecomp/sdc/be/datatypes/elements/PropertyFilterConstraintDataDefinitionJsonDeserializerTest.java
@@ -0,0 +1,101 @@
+/*
+ * -
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2022 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.datatypes.elements;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.List;
+import org.junit.jupiter.api.Test;
+import org.openecomp.sdc.be.datatypes.enums.ConstraintType;
+import org.openecomp.sdc.be.datatypes.enums.FilterValueType;
+import org.openecomp.sdc.be.datatypes.enums.PropertyFilterTargetType;
+import org.openecomp.sdc.be.datatypes.enums.PropertySource;
+import org.openecomp.sdc.be.datatypes.tosca.ToscaGetFunctionType;
+
+class PropertyFilterConstraintDataDefinitionJsonDeserializerTest {
+ private static final Path TEST_RESOURCES_PATH = Path.of("src/test/resources/propertyFilterConstraintDataDefinitionDeserializer");
+
+ @Test
+ void testStaticPropertyFilter() throws IOException {
+ //given
+ final String propertyFilterAsString = Files.readString(TEST_RESOURCES_PATH.resolve("filter-constraint-static.json"));
+ //when
+ final PropertyFilterConstraintDataDefinition actualPropertyFilterConstraint = parseToscaFunction(propertyFilterAsString);
+ //then
+ assertEquals(FilterValueType.STATIC, actualPropertyFilterConstraint.getValueType());
+ assertEquals(ConstraintType.EQUAL, actualPropertyFilterConstraint.getOperator());
+ assertEquals(PropertyFilterTargetType.CAPABILITY, actualPropertyFilterConstraint.getTargetType());
+ assertEquals("aCapability", actualPropertyFilterConstraint.getCapabilityName());
+ assertEquals("aProperty", actualPropertyFilterConstraint.getPropertyName());
+ assertEquals("aStaticValue", actualPropertyFilterConstraint.getValue());
+ }
+
+ @Test
+ void testGetInputToscaFunction() throws IOException {
+ //given
+ final String toscaGetInputFunction = Files.readString(TEST_RESOURCES_PATH.resolve("filter-constraint-get-input.json"));
+ //when
+ final PropertyFilterConstraintDataDefinition actualPropertyFilterConstraint = parseToscaFunction(toscaGetInputFunction);
+ //then
+ assertEquals(FilterValueType.GET_INPUT, actualPropertyFilterConstraint.getValueType());
+ assertEquals(ConstraintType.GREATER_THAN, actualPropertyFilterConstraint.getOperator());
+ assertEquals(PropertyFilterTargetType.PROPERTY, actualPropertyFilterConstraint.getTargetType());
+ assertNull(actualPropertyFilterConstraint.getCapabilityName());
+ assertEquals("aProperty", actualPropertyFilterConstraint.getPropertyName());
+ assertTrue(actualPropertyFilterConstraint.getValue() instanceof ToscaGetFunctionDataDefinition);
+ final ToscaGetFunctionDataDefinition toscaGetFunction = (ToscaGetFunctionDataDefinition) actualPropertyFilterConstraint.getValue();
+ assertEquals(ToscaFunctionType.GET_INPUT, toscaGetFunction.getType());
+ assertEquals(ToscaGetFunctionType.GET_INPUT, toscaGetFunction.getFunctionType());
+ assertEquals("aPropertyId", toscaGetFunction.getPropertyUniqueId());
+ assertEquals("aProperty", toscaGetFunction.getPropertyName());
+ assertEquals(PropertySource.SELF, toscaGetFunction.getPropertySource());
+ assertEquals("aServiceId", toscaGetFunction.getSourceUniqueId());
+ assertEquals("aService", toscaGetFunction.getSourceName());
+ assertEquals(List.of("input", "subProperty"), toscaGetFunction.getPropertyPathFromSource());
+ }
+
+ @Test
+ void testLegacyPropertyFilter() throws IOException {
+ //given
+ final String legacyPropertyFilter = Files.readString(TEST_RESOURCES_PATH.resolve("filter-constraint-legacy.txt"));
+ //when
+ final PropertyFilterConstraintDataDefinition actualPropertyFilterConstraint = parseToscaFunction(legacyPropertyFilter);
+ //then
+ assertEquals(FilterValueType.STATIC, actualPropertyFilterConstraint.getValueType());
+ assertEquals(ConstraintType.EQUAL, actualPropertyFilterConstraint.getOperator());
+ assertEquals(PropertyFilterTargetType.PROPERTY, actualPropertyFilterConstraint.getTargetType());
+ assertNull(actualPropertyFilterConstraint.getCapabilityName());
+ assertEquals("propertyName", actualPropertyFilterConstraint.getPropertyName());
+ assertEquals("aValue", actualPropertyFilterConstraint.getValue());
+ }
+
+ private PropertyFilterConstraintDataDefinition parseToscaFunction(final String propertyFilterConstraintAsJson) throws JsonProcessingException {
+ return new ObjectMapper().readValue(propertyFilterConstraintAsJson, PropertyFilterConstraintDataDefinition.class);
+ }
+} \ No newline at end of file
diff --git a/common-be/src/test/java/org/openecomp/sdc/be/datatypes/enums/FilterValueTypeTest.java b/common-be/src/test/java/org/openecomp/sdc/be/datatypes/enums/FilterValueTypeTest.java
new file mode 100644
index 0000000000..73df545468
--- /dev/null
+++ b/common-be/src/test/java/org/openecomp/sdc/be/datatypes/enums/FilterValueTypeTest.java
@@ -0,0 +1,75 @@
+/*
+ * -
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2022 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.datatypes.enums;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.Optional;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.Arguments;
+import org.junit.jupiter.params.provider.MethodSource;
+
+class FilterValueTypeTest {
+
+ @Test
+ void findByEmptyNameTest() {
+ assertTrue(FilterValueType.findByName(null).isEmpty());
+ assertTrue(FilterValueType.findByName("").isEmpty());
+ }
+
+ @Test
+ void findByNameNotFoundTest() {
+ assertTrue(FilterValueType.findByName("thisNameDoesNotExist").isEmpty());
+ }
+
+ @ParameterizedTest(name = "{index}: {0} should be {1}")
+ @MethodSource("getValueTypeForFindByName")
+ void test(final String nameToFind, final FilterValueType filterValueType) {
+ final Optional<FilterValueType> actualFilterValueType = FilterValueType.findByName(nameToFind);
+ assertTrue(actualFilterValueType.isPresent());
+ assertEquals(actualFilterValueType.get(), filterValueType);
+ }
+
+ private static Stream<Arguments> getValueTypeForFindByName() {
+ final Stream<Arguments> allFilterValueTypeNameArguments = Arrays.stream(FilterValueType.values())
+ .map(filterValueType -> Arguments.of(filterValueType.getName(), filterValueType));
+ final Stream<Arguments> allFilterValueTypeNameIgnoreCaseArguments = Arrays.stream(FilterValueType.values())
+ .map(filterValueType -> Arguments.of(filterValueType.getName().toUpperCase(), filterValueType));
+
+ final Stream<Arguments> legacyArguments = Stream.of(
+ Arguments.of(FilterValueType.GET_INPUT.getLegacyName(), FilterValueType.GET_INPUT),
+ Arguments.of(FilterValueType.GET_INPUT.getLegacyName().toUpperCase(), FilterValueType.GET_INPUT),
+ Arguments.of(FilterValueType.GET_PROPERTY.getLegacyName(), FilterValueType.GET_PROPERTY),
+ Arguments.of(FilterValueType.GET_PROPERTY.getLegacyName().toUpperCase(), FilterValueType.GET_PROPERTY)
+ );
+
+ return Stream.of(allFilterValueTypeNameIgnoreCaseArguments, allFilterValueTypeNameArguments, legacyArguments)
+ .reduce(Stream::concat)
+ .orElseGet(Stream::empty);
+ }
+
+} \ No newline at end of file
diff --git a/common-be/src/test/java/org/openecomp/sdc/be/utils/PropertyFilterConstraintDataDefinitionHelperTest.java b/common-be/src/test/java/org/openecomp/sdc/be/utils/PropertyFilterConstraintDataDefinitionHelperTest.java
new file mode 100644
index 0000000000..86548fa1d5
--- /dev/null
+++ b/common-be/src/test/java/org/openecomp/sdc/be/utils/PropertyFilterConstraintDataDefinitionHelperTest.java
@@ -0,0 +1,196 @@
+/*
+ * -
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2022 Nordix Foundation.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.sdc.be.utils;
+
+import static org.junit.jupiter.api.Assertions.*;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import org.junit.jupiter.api.Test;
+import org.openecomp.sdc.be.datatypes.elements.PropertyFilterConstraintDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.ToscaConcatFunction;
+import org.openecomp.sdc.be.datatypes.elements.ToscaFunctionType;
+import org.openecomp.sdc.be.datatypes.elements.ToscaGetFunctionDataDefinition;
+import org.openecomp.sdc.be.datatypes.enums.ConstraintType;
+import org.openecomp.sdc.be.datatypes.enums.FilterValueType;
+import org.openecomp.sdc.be.datatypes.enums.PropertySource;
+import org.openecomp.sdc.be.datatypes.tosca.ToscaGetFunctionType;
+
+class PropertyFilterConstraintDataDefinitionHelperTest {
+
+ private static final Path RESOURCE_PATH = Path.of("src", "test", "resources", "nodeFilter", "constraints");
+
+ @Test
+ void convertLegacyConstraintGetInputTest() throws IOException {
+ final var propertyFilterConstraint =
+ PropertyFilterConstraintDataDefinitionHelper.convertLegacyConstraint(readConstraintFile("legacy-get_input.yaml"));
+ assertPropertyFilterConstraint(propertyFilterConstraint, "flavour_id", null, ConstraintType.GREATER_OR_EQUAL, FilterValueType.GET_INPUT);
+ assertTrue(propertyFilterConstraint.getValue() instanceof ToscaGetFunctionDataDefinition);
+ final var toscaGetFunction = (ToscaGetFunctionDataDefinition) propertyFilterConstraint.getValue();
+ assertToscaGetFunction(toscaGetFunction, ToscaFunctionType.GET_INPUT, ToscaGetFunctionType.GET_INPUT, PropertySource.SELF,
+ List.of("inputName"), "inputName", null);
+ }
+
+ @Test
+ void convertLegacyConstraintGetInputSubPathTest() throws IOException {
+ final PropertyFilterConstraintDataDefinition propertyFilterConstraint =
+ PropertyFilterConstraintDataDefinitionHelper.convertLegacyConstraint(readConstraintFile("legacy-get_input-subProperty.yaml"));
+ assertPropertyFilterConstraint(propertyFilterConstraint, "flavour_id", null, ConstraintType.EQUAL, FilterValueType.GET_INPUT);
+ assertTrue(propertyFilterConstraint.getValue() instanceof ToscaGetFunctionDataDefinition);
+ final var toscaGetFunction = (ToscaGetFunctionDataDefinition) propertyFilterConstraint.getValue();
+ assertToscaGetFunction(toscaGetFunction, ToscaFunctionType.GET_INPUT, ToscaGetFunctionType.GET_INPUT, PropertySource.SELF,
+ List.of("inputName", "inputSubProperty", "inputSubSubProperty"), "inputSubSubProperty", null);
+ }
+
+ @Test
+ void convertLegacyConstraintGetPropertyFromInstanceTest() throws IOException {
+ final PropertyFilterConstraintDataDefinition propertyFilterConstraint =
+ PropertyFilterConstraintDataDefinitionHelper.convertLegacyConstraint(readConstraintFile("legacy-get_property-from-instance.yaml"));
+ assertPropertyFilterConstraint(propertyFilterConstraint, "flavour_id", null, ConstraintType.EQUAL, FilterValueType.GET_PROPERTY);
+ assertTrue(propertyFilterConstraint.getValue() instanceof ToscaGetFunctionDataDefinition);
+ final var toscaGetFunction = (ToscaGetFunctionDataDefinition) propertyFilterConstraint.getValue();
+ assertToscaGetFunction(toscaGetFunction, ToscaFunctionType.GET_PROPERTY, ToscaGetFunctionType.GET_PROPERTY, PropertySource.INSTANCE,
+ List.of("property", "subProperty"), "subProperty", "Instance Name");
+ }
+
+ @Test
+ void convertLegacyConstraintGetAttributeFromInstanceTest() throws IOException {
+ final PropertyFilterConstraintDataDefinition propertyFilterConstraint =
+ PropertyFilterConstraintDataDefinitionHelper.convertLegacyConstraint(readConstraintFile("legacy-get_attribute-from-instance.yaml"));
+ assertPropertyFilterConstraint(propertyFilterConstraint, "flavour_id", null, ConstraintType.EQUAL, FilterValueType.GET_ATTRIBUTE);
+ assertTrue(propertyFilterConstraint.getValue() instanceof ToscaGetFunctionDataDefinition);
+ final var toscaGetFunction = (ToscaGetFunctionDataDefinition) propertyFilterConstraint.getValue();
+ assertToscaGetFunction(toscaGetFunction, ToscaFunctionType.GET_ATTRIBUTE, ToscaGetFunctionType.GET_ATTRIBUTE, PropertySource.INSTANCE,
+ List.of("property", "subProperty"), "subProperty", "Instance Name");
+ }
+
+
+ @Test
+ void convertLegacyConstraintGetPropertyFromSelfTest() throws IOException {
+ final PropertyFilterConstraintDataDefinition propertyFilterConstraint =
+ PropertyFilterConstraintDataDefinitionHelper.convertLegacyConstraint(readConstraintFile("legacy-get_property-from-self.yaml"));
+ assertPropertyFilterConstraint(propertyFilterConstraint, "flavour_id", null, ConstraintType.EQUAL, FilterValueType.GET_PROPERTY);
+ assertTrue(propertyFilterConstraint.getValue() instanceof ToscaGetFunctionDataDefinition);
+ final var toscaGetFunction = (ToscaGetFunctionDataDefinition) propertyFilterConstraint.getValue();
+ assertToscaGetFunction(toscaGetFunction, ToscaFunctionType.GET_PROPERTY, ToscaGetFunctionType.GET_PROPERTY, PropertySource.SELF,
+ List.of("property", "subProperty"), "subProperty", null);
+ }
+
+ @Test
+ void convertLegacyConstraintGetAttributeFromSelfTest() throws IOException {
+ final PropertyFilterConstraintDataDefinition propertyFilterConstraint =
+ PropertyFilterConstraintDataDefinitionHelper.convertLegacyConstraint(readConstraintFile("legacy-get_attribute-from-self.yaml"));
+ assertPropertyFilterConstraint(propertyFilterConstraint, "flavour_id", null, ConstraintType.EQUAL, FilterValueType.GET_ATTRIBUTE);
+ assertTrue(propertyFilterConstraint.getValue() instanceof ToscaGetFunctionDataDefinition);
+ final var toscaGetFunction = (ToscaGetFunctionDataDefinition) propertyFilterConstraint.getValue();
+ assertToscaGetFunction(toscaGetFunction, ToscaFunctionType.GET_ATTRIBUTE, ToscaGetFunctionType.GET_ATTRIBUTE, PropertySource.SELF,
+ List.of("property", "subProperty"), "subProperty", null);
+ }
+
+ @Test
+ void convertLegacyConstraintStaticTest() throws IOException {
+ final PropertyFilterConstraintDataDefinition propertyFilterConstraint =
+ PropertyFilterConstraintDataDefinitionHelper.convertLegacyConstraint(readConstraintFile("legacy-static.yaml"));
+ assertPropertyFilterConstraint(propertyFilterConstraint, "vnf_profile", null, ConstraintType.EQUAL, FilterValueType.STATIC);
+ assertTrue(propertyFilterConstraint.getValue() instanceof Map);
+ final Map<String, Object> value = (Map<String, Object>) propertyFilterConstraint.getValue();
+ assertEquals("1", value.get("instantiation_level"));
+ assertEquals(1, value.get("max_number_of_instances"));
+ assertEquals(1, value.get("min_number_of_instances"));
+ }
+
+ @Test
+ void convertLegacyConstraintConcatTest() throws IOException {
+ final PropertyFilterConstraintDataDefinition propertyFilterConstraint =
+ PropertyFilterConstraintDataDefinitionHelper.convertLegacyConstraint(readConstraintFile("concat.yaml"));
+ assertPropertyFilterConstraint(propertyFilterConstraint, "descriptor_id", null, ConstraintType.EQUAL, FilterValueType.CONCAT);
+ assertTrue(propertyFilterConstraint.getValue() instanceof ToscaConcatFunction);
+ final ToscaConcatFunction toscaConcatFunction = (ToscaConcatFunction) propertyFilterConstraint.getValue();
+ assertEquals(3, toscaConcatFunction.getParameters().size());
+ assertEquals(ToscaFunctionType.STRING, toscaConcatFunction.getParameters().get(0).getType());
+ assertEquals("aString", toscaConcatFunction.getParameters().get(0).getValue());
+ assertEquals(ToscaFunctionType.GET_INPUT, toscaConcatFunction.getParameters().get(1).getType());
+ assertEquals(ToscaFunctionType.STRING, toscaConcatFunction.getParameters().get(2).getType());
+ assertEquals("anotherString", toscaConcatFunction.getParameters().get(2).getValue());
+ }
+
+ private static void assertPropertyFilterConstraint(final PropertyFilterConstraintDataDefinition propertyFilterConstraint,
+ final String propertyName, final String capabilityName, final ConstraintType constraintType,
+ final FilterValueType filterValueType) {
+ assertEquals(propertyName, propertyFilterConstraint.getPropertyName());
+ assertEquals(capabilityName, propertyFilterConstraint.getCapabilityName());
+ assertEquals(constraintType, propertyFilterConstraint.getOperator());
+ assertEquals(filterValueType, propertyFilterConstraint.getValueType());
+ }
+
+ private void assertToscaGetFunction(final ToscaGetFunctionDataDefinition actualToscaGetFunction,
+ final ToscaFunctionType expectedToscaFunctionType, final ToscaGetFunctionType expectedToscaFunctionGetType,
+ final PropertySource expectedPropertySource, final List<String> expectedPropertyPathFromSource,
+ final String expectedPropertyName, final String expectedSourceName) {
+ assertEquals(expectedToscaFunctionType, actualToscaGetFunction.getType());
+ assertEquals(expectedToscaFunctionGetType, actualToscaGetFunction.getFunctionType());
+ assertEquals(expectedPropertySource, actualToscaGetFunction.getPropertySource());
+ assertEquals(expectedPropertyPathFromSource, actualToscaGetFunction.getPropertyPathFromSource());
+ assertEquals(expectedPropertyName, actualToscaGetFunction.getPropertyName());
+ assertEquals(expectedSourceName, actualToscaGetFunction.getSourceName());
+ assertNull(actualToscaGetFunction.getPropertyUniqueId());
+ assertNull(actualToscaGetFunction.getSourceUniqueId());
+ }
+
+ @Test
+ void convertFromToscaFunctionTypeTest() {
+ Optional<FilterValueType> filterValueType =
+ PropertyFilterConstraintDataDefinitionHelper.convertFromToscaFunctionType(ToscaFunctionType.GET_PROPERTY);
+ assertTrue(filterValueType.isPresent());
+ assertEquals(FilterValueType.GET_PROPERTY, filterValueType.get());
+
+ filterValueType =
+ PropertyFilterConstraintDataDefinitionHelper.convertFromToscaFunctionType(ToscaFunctionType.GET_INPUT);
+ assertTrue(filterValueType.isPresent());
+ assertEquals(FilterValueType.GET_INPUT, filterValueType.get());
+
+ filterValueType =
+ PropertyFilterConstraintDataDefinitionHelper.convertFromToscaFunctionType(ToscaFunctionType.GET_ATTRIBUTE);
+ assertTrue(filterValueType.isPresent());
+ assertEquals(FilterValueType.GET_ATTRIBUTE, filterValueType.get());
+
+ filterValueType =
+ PropertyFilterConstraintDataDefinitionHelper.convertFromToscaFunctionType(ToscaFunctionType.YAML);
+ assertTrue(filterValueType.isPresent());
+ assertEquals(FilterValueType.YAML, filterValueType.get());
+
+ filterValueType =
+ PropertyFilterConstraintDataDefinitionHelper.convertFromToscaFunctionType(ToscaFunctionType.CONCAT);
+ assertTrue(filterValueType.isPresent());
+ assertEquals(FilterValueType.CONCAT, filterValueType.get());
+
+ assertTrue(PropertyFilterConstraintDataDefinitionHelper.convertFromToscaFunctionType(ToscaFunctionType.STRING).isEmpty());
+ }
+
+ private String readConstraintFile(final String fileName) throws IOException {
+ return Files.readString(RESOURCE_PATH.resolve(fileName));
+ }
+} \ No newline at end of file
diff --git a/common-be/src/test/resources/nodeFilter/constraints/concat.yaml b/common-be/src/test/resources/nodeFilter/constraints/concat.yaml
new file mode 100644
index 0000000000..28f6aadec7
--- /dev/null
+++ b/common-be/src/test/resources/nodeFilter/constraints/concat.yaml
@@ -0,0 +1,8 @@
+descriptor_id:
+ equal:
+ concat:
+ - aString
+ - get_input:
+ - vnfProfileInput
+ - instantiation_level
+ - anotherString \ No newline at end of file
diff --git a/common-be/src/test/resources/nodeFilter/constraints/legacy-get_attribute-from-instance.yaml b/common-be/src/test/resources/nodeFilter/constraints/legacy-get_attribute-from-instance.yaml
new file mode 100644
index 0000000000..039c4aeacc
--- /dev/null
+++ b/common-be/src/test/resources/nodeFilter/constraints/legacy-get_attribute-from-instance.yaml
@@ -0,0 +1,6 @@
+flavour_id:
+ equal:
+ get_attribute:
+ - Instance Name
+ - property
+ - subProperty \ No newline at end of file
diff --git a/common-be/src/test/resources/nodeFilter/constraints/legacy-get_attribute-from-self.yaml b/common-be/src/test/resources/nodeFilter/constraints/legacy-get_attribute-from-self.yaml
new file mode 100644
index 0000000000..3afd65d19f
--- /dev/null
+++ b/common-be/src/test/resources/nodeFilter/constraints/legacy-get_attribute-from-self.yaml
@@ -0,0 +1,6 @@
+flavour_id:
+ equal:
+ get_attribute:
+ - SELF
+ - property
+ - subProperty \ No newline at end of file
diff --git a/common-be/src/test/resources/nodeFilter/constraints/legacy-get_input-subProperty.yaml b/common-be/src/test/resources/nodeFilter/constraints/legacy-get_input-subProperty.yaml
new file mode 100644
index 0000000000..ba9bc3ac74
--- /dev/null
+++ b/common-be/src/test/resources/nodeFilter/constraints/legacy-get_input-subProperty.yaml
@@ -0,0 +1,6 @@
+flavour_id:
+ equal:
+ get_input:
+ - inputName
+ - inputSubProperty
+ - inputSubSubProperty \ No newline at end of file
diff --git a/common-be/src/test/resources/nodeFilter/constraints/legacy-get_input.yaml b/common-be/src/test/resources/nodeFilter/constraints/legacy-get_input.yaml
new file mode 100644
index 0000000000..4b17734e86
--- /dev/null
+++ b/common-be/src/test/resources/nodeFilter/constraints/legacy-get_input.yaml
@@ -0,0 +1,4 @@
+flavour_id:
+ greater_or_equal:
+ get_input:
+ - inputName \ No newline at end of file
diff --git a/common-be/src/test/resources/nodeFilter/constraints/legacy-get_property-from-instance.yaml b/common-be/src/test/resources/nodeFilter/constraints/legacy-get_property-from-instance.yaml
new file mode 100644
index 0000000000..67772d1666
--- /dev/null
+++ b/common-be/src/test/resources/nodeFilter/constraints/legacy-get_property-from-instance.yaml
@@ -0,0 +1,6 @@
+flavour_id:
+ equal:
+ get_property:
+ - Instance Name
+ - property
+ - subProperty \ No newline at end of file
diff --git a/common-be/src/test/resources/nodeFilter/constraints/legacy-get_property-from-self.yaml b/common-be/src/test/resources/nodeFilter/constraints/legacy-get_property-from-self.yaml
new file mode 100644
index 0000000000..89c78d1a3b
--- /dev/null
+++ b/common-be/src/test/resources/nodeFilter/constraints/legacy-get_property-from-self.yaml
@@ -0,0 +1,6 @@
+flavour_id:
+ equal:
+ get_property:
+ - SELF
+ - property
+ - subProperty \ No newline at end of file
diff --git a/common-be/src/test/resources/nodeFilter/constraints/legacy-static.yaml b/common-be/src/test/resources/nodeFilter/constraints/legacy-static.yaml
new file mode 100644
index 0000000000..783316fff7
--- /dev/null
+++ b/common-be/src/test/resources/nodeFilter/constraints/legacy-static.yaml
@@ -0,0 +1,5 @@
+vnf_profile:
+ equal:
+ instantiation_level: '1'
+ max_number_of_instances: 1
+ min_number_of_instances: 1 \ No newline at end of file
diff --git a/common-be/src/test/resources/propertyFilterConstraintDataDefinitionDeserializer/filter-constraint-get-input.json b/common-be/src/test/resources/propertyFilterConstraintDataDefinitionDeserializer/filter-constraint-get-input.json
new file mode 100644
index 0000000000..3ceee51804
--- /dev/null
+++ b/common-be/src/test/resources/propertyFilterConstraintDataDefinitionDeserializer/filter-constraint-get-input.json
@@ -0,0 +1,16 @@
+{
+ "propertyName": "aProperty",
+ "targetType": "PROPERTY",
+ "operator": "GREATER_THAN",
+ "valueType": "GET_INPUT",
+ "value": {
+ "type": "GET_INPUT",
+ "functionType": "GET_INPUT",
+ "propertyName": "aProperty",
+ "propertyUniqueId": "aPropertyId",
+ "propertySource": "SELF",
+ "sourceName": "aService",
+ "sourceUniqueId": "aServiceId",
+ "propertyPathFromSource": ["input", "subProperty"]
+ }
+} \ No newline at end of file
diff --git a/common-be/src/test/resources/propertyFilterConstraintDataDefinitionDeserializer/filter-constraint-legacy.txt b/common-be/src/test/resources/propertyFilterConstraintDataDefinitionDeserializer/filter-constraint-legacy.txt
new file mode 100644
index 0000000000..925c878d5f
--- /dev/null
+++ b/common-be/src/test/resources/propertyFilterConstraintDataDefinitionDeserializer/filter-constraint-legacy.txt
@@ -0,0 +1 @@
+"{ \"propertyName\": { \"equal\": \"aValue\" } }" \ No newline at end of file
diff --git a/common-be/src/test/resources/propertyFilterConstraintDataDefinitionDeserializer/filter-constraint-static.json b/common-be/src/test/resources/propertyFilterConstraintDataDefinitionDeserializer/filter-constraint-static.json
new file mode 100644
index 0000000000..4faee8ab1a
--- /dev/null
+++ b/common-be/src/test/resources/propertyFilterConstraintDataDefinitionDeserializer/filter-constraint-static.json
@@ -0,0 +1,8 @@
+{
+ "propertyName": "aProperty",
+ "capabilityName": "aCapability",
+ "targetType": "CAPABILITY",
+ "operator": "EQUAL",
+ "valueType": "STATIC",
+ "value": "aStaticValue"
+} \ No newline at end of file