X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=catalog-be%2Fsrc%2Ftest%2Fjava%2Forg%2Fopenecomp%2Fsdc%2Fbe%2Ftosca%2FInterfacesOperationsConverterTest.java;h=dfe4107b86a69991feb7978ced8d0516bb89e16a;hb=629837b3f7a282c74604987fd531ff4523f98a0c;hp=5158ae79450232fdd72d878be6e5980e950367f8;hpb=bfd727385b9c55d079a5c213b425e88b88a67b7f;p=sdc.git diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/InterfacesOperationsConverterTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/InterfacesOperationsConverterTest.java index 5158ae7945..dfe4107b86 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/InterfacesOperationsConverterTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/tosca/InterfacesOperationsConverterTest.java @@ -24,6 +24,7 @@ import static org.junit.jupiter.api.Assertions.assertFalse; import static org.junit.jupiter.api.Assertions.assertNotNull; import static org.junit.jupiter.api.Assertions.assertNull; import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.openecomp.sdc.be.components.utils.InterfaceOperationUtils.createMappedOutputDefaultValue; import static org.openecomp.sdc.be.tosca.InterfacesOperationsConverter.SELF; import com.fasterxml.jackson.databind.DeserializationFeature; @@ -41,15 +42,20 @@ import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.openecomp.sdc.be.DummyConfigurationManager; +import org.openecomp.sdc.be.datatypes.elements.ActivityDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ArtifactDataDefinition; import org.openecomp.sdc.be.datatypes.elements.InputDataDefinition; import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition; +import org.openecomp.sdc.be.datatypes.elements.MilestoneDataDefinition; import org.openecomp.sdc.be.datatypes.elements.OperationDataDefinition; import org.openecomp.sdc.be.datatypes.elements.OperationInputDefinition; import org.openecomp.sdc.be.datatypes.elements.OperationOutputDefinition; import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; import org.openecomp.sdc.be.datatypes.elements.SchemaDefinition; +import org.openecomp.sdc.be.datatypes.elements.ToscaFunctionType; +import org.openecomp.sdc.be.datatypes.enums.ActivityTypeEnum; import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; +import org.openecomp.sdc.be.datatypes.enums.MilestoneTypeEnum; import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.DataTypeDefinition; import org.openecomp.sdc.be.model.InputDefinition; @@ -96,7 +102,7 @@ class InterfacesOperationsConverterTest { component.getComponentMetadataDefinition().getMetadataDataDefinition().setSystemName("NodeTypeName"); InterfaceDefinition addedInterface = new InterfaceDefinition(); addedInterface.setType("Local"); - addOperationsToInterface(component, addedInterface, 5, 3, true, false, false); + addOperationsToInterface(component, addedInterface, 5, 3, true, false, false, false); final String interfaceType = "normalizedComponentName-interface"; component.setInterfaces(new HashMap<>()); component.getInterfaces().put(interfaceType, addedInterface); @@ -119,7 +125,7 @@ class InterfacesOperationsConverterTest { component.getComponentMetadataDefinition().getMetadataDataDefinition().setSystemName("NodeTypeName"); InterfaceDefinition addedInterface = new InterfaceDefinition(); addedInterface.setType("Local"); - addOperationsToInterface(component, addedInterface, 5, 3, true, false, false); + addOperationsToInterface(component, addedInterface, 5, 3, true, false, false, false); final String interfaceType = "normalizedServiceComponentName-interface"; component.setInterfaces(new HashMap<>()); component.getInterfaces().put(interfaceType, addedInterface); @@ -140,7 +146,7 @@ class InterfacesOperationsConverterTest { InterfaceDefinition addedInterface = new InterfaceDefinition(); addedInterface.setType("com.some.resource.or.other.resourceName"); - addOperationsToInterface(component, addedInterface, 3, 2, true, false, false); + addOperationsToInterface(component, addedInterface, 3, 2, true, false, false, false); final String interfaceType = "normalizedComponentName-interface"; component.setInterfaces(new HashMap<>()); component.getInterfaces().put(interfaceType, addedInterface); @@ -163,7 +169,7 @@ class InterfacesOperationsConverterTest { component.setNormalizedName("normalizedServiceComponentName"); InterfaceDefinition addedInterface = new InterfaceDefinition(); addedInterface.setType("com.some.service.or.other.serviceName"); - addOperationsToInterface(component, addedInterface, 3, 2, true, false, false); + addOperationsToInterface(component, addedInterface, 3, 2, true, false, false, false); final String interfaceType = "normalizedServiceComponentName-interface"; component.setInterfaces(new HashMap<>()); component.getInterfaces().put(interfaceType, addedInterface); @@ -187,7 +193,7 @@ class InterfacesOperationsConverterTest { InterfaceDefinition addedInterface = new InterfaceDefinition(); addedInterface.setToscaResourceName("com.some.resource.or.other.resourceName"); addedInterface.setType("com.some.resource.or.other.resourceName"); - addOperationsToInterface(component, addedInterface, 3, 2, true, false, false); + addOperationsToInterface(component, addedInterface, 3, 2, true, false, false, false); final String interfaceType = "normalizedComponentName-interface"; component.setInterfaces(new HashMap<>()); component.getInterfaces().put(interfaceType, addedInterface); @@ -208,7 +214,7 @@ class InterfacesOperationsConverterTest { component.setNormalizedName("normalizedComponentName"); InterfaceDefinition addedInterface = new InterfaceDefinition(); addedInterface.setType("com.some.resource.or.other.resourceNameNoInputs"); - addOperationsToInterface(component, addedInterface, 3, 3, false, false, false); + addOperationsToInterface(component, addedInterface, 3, 3, false, false, false, false); final String interfaceType = "normalizedComponentName-interface"; component.setInterfaces(new HashMap<>()); component.getInterfaces().put(interfaceType, addedInterface); @@ -232,14 +238,17 @@ class InterfacesOperationsConverterTest { component.setNormalizedName("normalizedComponentName"); InterfaceDefinition addedInterface = new InterfaceDefinition(); addedInterface.setType(addedInterfaceType); - addOperationsToInterface(component, addedInterface, 2, 2, true, true, false); + addOperationsToInterface(component, addedInterface, 2, 2, true, true, false, false); addedInterface.getOperationsMap().values().stream() .filter(operationInputDefinition -> operationInputDefinition.getName().equalsIgnoreCase( "name_for_op_0")) .forEach(operation -> operation.getInputs().getListToscaDataDefinition().stream() .filter(operationInputDefinition -> operationInputDefinition.getName().contains("integer")) - .forEach(operationInputDefinition -> operationInputDefinition.setInputId(addedInterfaceType + - ".name_for_op_1.output_integer_1"))); + .forEach(operationInputDefinition -> { + operationInputDefinition.setInputId(addedInterfaceType + ".name_for_op_1.output_integer_1"); + operationInputDefinition.setToscaDefaultValue( + new Gson().toJson(createMappedOutputDefaultValue(SELF, operationInputDefinition.getInputId()))); + })); component.setInterfaces(new HashMap<>()); component.getInterfaces().put(addedInterfaceType, addedInterface); ToscaNodeType nodeType = new ToscaNodeType(); @@ -263,7 +272,7 @@ class InterfacesOperationsConverterTest { InterfaceDefinition addedInterface = new InterfaceDefinition(); addedInterface.setType(addedInterfaceType); addedInterface.setToscaResourceName("com.some.resource.or.other.resourceName"); - addOperationsToInterface(component, addedInterface, 2, 2, true, true, false); + addOperationsToInterface(component, addedInterface, 2, 2, true, true, false, false); addedInterface.getOperationsMap().values().stream() .filter(operationInputDefinition -> operationInputDefinition.getName().equalsIgnoreCase( "name_for_op_0")) @@ -276,7 +285,7 @@ class InterfacesOperationsConverterTest { InterfaceDefinition secondInterface = new InterfaceDefinition(); secondInterface.setType(secondInterfaceType); secondInterface.setToscaResourceName("com.some.resource.or.other.resourceName"); - addOperationsToInterface(component, secondInterface, 2, 2, true, true, false); + addOperationsToInterface(component, secondInterface, 2, 2, true, true, false, false); secondInterface.getOperationsMap().values().stream() .filter(operationInputDefinition -> operationInputDefinition.getName().equalsIgnoreCase( "name_for_op_0")) @@ -391,8 +400,8 @@ class InterfacesOperationsConverterTest { assertTrue(expectedListOfStringPropValue.contains("value3")); } - private void addOperationsToInterface(Component component, InterfaceDefinition addedInterface, int numOfOps, - int numOfInputsPerOp, boolean hasInputs, boolean hasOutputs, boolean addAComplexType) { + private void addOperationsToInterface(Component component, InterfaceDefinition addedInterface, int numOfOps, int numOfInputsPerOp, + boolean hasInputs, boolean hasOutputs, boolean addAComplexType, boolean hasMilestones) { addedInterface.setOperations(new HashMap<>()); for (int i = 0; i < numOfOps; i++) { @@ -402,6 +411,9 @@ class InterfacesOperationsConverterTest { final ArtifactDataDefinition implementation = new ArtifactDataDefinition(); implementation.setArtifactName(i + "_createBPMN.bpmn"); operation.setImplementation(implementation); + if (hasMilestones) { + operation.setMilestones(createMilestones()); + } if (hasInputs) { operation.setInputs(createInputs(component, numOfInputsPerOp, addAComplexType)); } @@ -413,6 +425,19 @@ class InterfacesOperationsConverterTest { } } + private Map createMilestones() { + Map toscaMilestones = new HashMap<>(); + ActivityDataDefinition activity = new ActivityDataDefinition(); + activity.setType(ActivityTypeEnum.DELEGATE.getValue()); + activity.setWorkflow("workflow1"); + ListDataDefinition activities = new ListDataDefinition<>(); + activities.add(activity); + MilestoneDataDefinition milestone = new MilestoneDataDefinition(); + milestone.setActivities(activities); + toscaMilestones.put(MilestoneTypeEnum.ON_ENTRY.getValue(), milestone); + return toscaMilestones; + } + private InputDataDefinition createInput(final String type, final String description, final Boolean isRequired, final String defaultValue) { final PropertyDataDefinition propertyDataDefinition = new PropertyDataDefinition(); @@ -550,7 +575,7 @@ class InterfacesOperationsConverterTest { InterfaceDefinition addedInterface = new InterfaceDefinition(); addedInterface.setToscaResourceName("com.some.resource.or.other.resourceName"); addedInterface.setType("com.some.resource.or.other.resourceName"); - addOperationsToInterface(component, addedInterface, 3, 2, true, false, true); + addOperationsToInterface(component, addedInterface, 3, 2, true, false, true, false); final String interfaceType = "normalizedComponentName-interface"; component.setInterfaces(new HashMap<>()); component.getInterfaces().put(interfaceType, addedInterface); @@ -572,11 +597,49 @@ class InterfacesOperationsConverterTest { Map complexInput = (Map) operation0Inputs.get("input_Complex_2"); assertTrue(complexInput.containsKey("stringProp")); Map complexInputStringProp = (Map) complexInput.get("stringProp"); - assertTrue(complexInputStringProp.containsKey("get_attribute")); - List complexInputStringPropToscaFunction = (List) complexInputStringProp.get("get_attribute"); - assertEquals(2, complexInputStringPropToscaFunction.size()); - assertEquals("SELF", complexInputStringPropToscaFunction.get(0)); - assertEquals("designer", complexInputStringPropToscaFunction.get(1)); + assertTrue(complexInputStringProp.containsKey("type")); + assertTrue(ToscaFunctionType.findType((String) complexInputStringProp.get("type")).isPresent()); + assertTrue(complexInputStringProp.containsKey("propertyName")); + assertEquals("designer", complexInputStringProp.get("propertyName")); + assertTrue(complexInputStringProp.containsKey("propertySource")); + assertEquals("SELF", complexInputStringProp.get("propertySource")); + } + + @Test + void testGetInterfaceAsMapWithMilestones() { + Component component = new Resource(); + component.setNormalizedName("normalizedComponentName"); + InterfaceDefinition addedInterface = new InterfaceDefinition(); + addedInterface.setToscaResourceName("com.some.resource.or.other.resourceName"); + addedInterface.setType("com.some.resource.or.other.resourceName"); + addOperationsToInterface(component, addedInterface, 2, 0, false, false, false, true); + final String interfaceType = "normalizedComponentName-interface"; + component.setInterfaces(new HashMap<>()); + component.getInterfaces().put(interfaceType, addedInterface); + final var interfacesMap = interfacesOperationsConverter.getInterfacesMap(component, null, component.getInterfaces(), dataTypes, false); + assertNotNull(interfacesMap); + assertEquals(1, interfacesMap.size()); + assertTrue(interfacesMap.containsKey("resourceName")); + Object resourceName = interfacesMap.get("resourceName"); + assertNotNull(resourceName); + assertTrue(resourceName instanceof Map); + assertEquals(3, ((Map) resourceName).size()); + Map resource = (Map) resourceName; + assertTrue(resource.containsKey("name_for_op_0")); + Map operation0 = (Map) resource.get("name_for_op_0"); + assertTrue(operation0.containsKey("milestones")); + Map operation0Milestones = (Map) operation0.get("milestones"); + assertTrue(operation0Milestones.containsKey(MilestoneTypeEnum.ON_ENTRY.getValue())); + Map milestone = (Map) operation0Milestones.get(MilestoneTypeEnum.ON_ENTRY.getValue()); + assertTrue(milestone.containsKey("activities")); + List> activities = (List>) milestone.get("activities"); + assertEquals(1, activities.size()); + Map activity = activities.get(0); + assertEquals(1, activities.size()); + assertTrue(activity.containsKey("delegate")); + Map activityVariables = (Map) activity.get("delegate"); + assertTrue(activityVariables.containsKey("workflow")); + assertEquals("workflow1", activityVariables.get("workflow")); } private void addComplexTypeToDataTypes() {