diff options
Diffstat (limited to 'ui-ci/src/main/java/org/openecomp/sdc/ci/tests/verificator/ToscaValidation.java')
-rw-r--r-- | ui-ci/src/main/java/org/openecomp/sdc/ci/tests/verificator/ToscaValidation.java | 1004 |
1 files changed, 498 insertions, 506 deletions
diff --git a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/verificator/ToscaValidation.java b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/verificator/ToscaValidation.java index 4151360ba6..f6262d5131 100644 --- a/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/verificator/ToscaValidation.java +++ b/ui-ci/src/main/java/org/openecomp/sdc/ci/tests/verificator/ToscaValidation.java @@ -7,9 +7,9 @@ * 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. @@ -29,7 +29,12 @@ import org.onap.sdc.toscaparser.api.elements.Metadata; import org.onap.sdc.toscaparser.api.parameters.Input; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.ci.tests.execute.setup.SetupCDTest; -import org.openecomp.sdc.ci.tests.tosca.datatypes.*; +import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaDefinition; +import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaGroupPropertyDefinition; +import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaGroupsTopologyTemplateDefinition; +import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaInputsTopologyTemplateDefinition; +import org.openecomp.sdc.ci.tests.tosca.datatypes.ToscaServiceGroupsMetadataDefinition; +import org.openecomp.sdc.ci.tests.tosca.datatypes.VfModuleDefinition; import java.lang.reflect.Field; import java.util.HashMap; @@ -39,174 +44,177 @@ import java.util.Map; public class ToscaValidation { - - /** - * @param expectedToscaDefinition - expected toscaDefinition object - * @param actualToscaDefinition - actual toscaDefinition object - * @return true if all validation success else return error map - */ - public static Either<Boolean, Map<String, Object>> resourceToscaMetadataValidator(ToscaDefinition expectedToscaDefinition, ToscaDefinition actualToscaDefinition){ - - SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate resource TOSCA metadata..."); - Map<String, String> expectedMetadata = expectedToscaDefinition.getMetadata(); - Map<String, String> actualMetadata = actualToscaDefinition.getMetadata(); - Either<Boolean, Map<String, Object>> resourceToscaMetadataValidator = compareStringMapData(expectedMetadata, actualMetadata); - if(resourceToscaMetadataValidator.isLeft()){ - SetupCDTest.getExtendTest().log(Status.INFO, "Resource TOSCA metadata verification success"); - }else{ - SetupCDTest.getExtendTest().log(Status.ERROR, "Resource TOSCA metadata verification failed" + resourceToscaMetadataValidator.right().value()); - } - return resourceToscaMetadataValidator; - } - - public static Boolean resourceToscaNodeTemplateMetadataValidator(Map<String, Map<String, String>> expectedMetadata, ToscaDefinition actualToscaDefinition){ - boolean isTestFailed = true; - for(String nodeTemplateName : expectedMetadata.keySet()){ - Either<Boolean,Map<String,Object>> serviceToscaMetadataValidator = componentToscaNodeTemplateMetadataValidator(expectedMetadata.get(nodeTemplateName), actualToscaDefinition, nodeTemplateName, ComponentTypeEnum.RESOURCE, nodeTemplateName); - if(!serviceToscaMetadataValidator.left().value()){ - isTestFailed = false; - } - } - return isTestFailed; - } - - public static Either<Boolean, Map<String, Object>> vfModuleJsonFileValidator(Map<String, VfModuleDefinition> expectedVfModulesDefinitionObject, Map<String, VfModuleDefinition> actualVfModulesDefinitionObject){ - SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate vf module json file..."); - Either<Boolean,Map<String,Object>> vfModuleFileValidator = compareObjectMapData(expectedVfModulesDefinitionObject, actualVfModulesDefinitionObject); - if(vfModuleFileValidator.isLeft()){ - SetupCDTest.getExtendTest().log(Status.INFO, "Vf module json file verification success"); - }else{ - SetupCDTest.getExtendTest().log(Status.ERROR, "Vf module json file verification failed" + vfModuleFileValidator.right().value().toString()); - } - return vfModuleFileValidator; - } - - public static Either<Boolean, Map<String, Object>> serviceToscaMetadataValidator(Map<String, String> expectedMetadata, ToscaDefinition actualToscaDefinition){ - - SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate service TOSCA metadata..."); - Map<String, String> actualMetadata = actualToscaDefinition.getMetadata(); - Either<Boolean,Map<String,Object>> serviceToscaMetadataValidator = compareStringMapData(expectedMetadata, actualMetadata); - if(serviceToscaMetadataValidator.isLeft()){ - SetupCDTest.getExtendTest().log(Status.INFO, "Service TOSCA metadata verification success"); - }else{ - SetupCDTest.getExtendTest().log(Status.ERROR, "Service TOSCA metadata verification failed" + serviceToscaMetadataValidator.right().value().toString()); - } - return serviceToscaMetadataValidator; - } - - public static Either<Boolean, Map<String, Object>> serviceToscaGroupMetadataValidator(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedServiceGroup, ToscaDefinition actualToscaDefinition){ - - SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate service TOSCA group metadata..."); - Map<String, ToscaGroupsTopologyTemplateDefinition> actualServiceGroups = actualToscaDefinition.getTopology_template().getGroups(); - Either<Boolean,Map<String,Object>> serviceToscaGroupMetadataValidator = compareServiceGroupMetadata(expectedServiceGroup, actualServiceGroups); - if(serviceToscaGroupMetadataValidator.isLeft()){ - SetupCDTest.getExtendTest().log(Status.INFO, "Service TOSCA group metadata verification success"); - }else{ - SetupCDTest.getExtendTest().log(Status.ERROR, "Service TOSCA group metadata verification failed" + serviceToscaGroupMetadataValidator.right().value().toString()); - } - return serviceToscaGroupMetadataValidator; - } - - public static Either<Boolean,Map<String,Object>> compareServiceGroupMetadata(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedServiceGroup, Map<String, ToscaGroupsTopologyTemplateDefinition> actualServiceGroups) { + + private ToscaValidation() { + } + + /** + * @param expectedToscaDefinition - expected toscaDefinition object + * @param actualToscaDefinition - actual toscaDefinition object + * @return true if all validation success else return error map + */ + public static Either<Boolean, Map<String, Object>> resourceToscaMetadataValidator(ToscaDefinition expectedToscaDefinition, ToscaDefinition actualToscaDefinition) { + + SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate resource TOSCA metadata..."); + Map<String, String> expectedMetadata = expectedToscaDefinition.getMetadata(); + Map<String, String> actualMetadata = actualToscaDefinition.getMetadata(); + Either<Boolean, Map<String, Object>> resourceToscaMetadataValidator = compareStringMapData(expectedMetadata, actualMetadata); + if (resourceToscaMetadataValidator.isLeft()) { + SetupCDTest.getExtendTest().log(Status.INFO, "Resource TOSCA metadata verification success"); + } else { + SetupCDTest.getExtendTest().log(Status.ERROR, "Resource TOSCA metadata verification failed" + resourceToscaMetadataValidator.right().value()); + } + return resourceToscaMetadataValidator; + } + + public static Boolean resourceToscaNodeTemplateMetadataValidator(Map<String, Map<String, String>> expectedMetadata, ToscaDefinition actualToscaDefinition) { + boolean isTestFailed = true; + for (String nodeTemplateName : expectedMetadata.keySet()) { + Either<Boolean, Map<String, Object>> serviceToscaMetadataValidator = componentToscaNodeTemplateMetadataValidator(expectedMetadata.get(nodeTemplateName), actualToscaDefinition, nodeTemplateName, ComponentTypeEnum.RESOURCE, nodeTemplateName); + if (!serviceToscaMetadataValidator.left().value()) { + isTestFailed = false; + } + } + return isTestFailed; + } + + public static Either<Boolean, Map<String, Object>> vfModuleJsonFileValidator(Map<String, VfModuleDefinition> expectedVfModulesDefinitionObject, Map<String, VfModuleDefinition> actualVfModulesDefinitionObject) { + SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate vf module json file..."); + Either<Boolean, Map<String, Object>> vfModuleFileValidator = compareObjectMapData(expectedVfModulesDefinitionObject, actualVfModulesDefinitionObject); + if (vfModuleFileValidator.isLeft()) { + SetupCDTest.getExtendTest().log(Status.INFO, "Vf module json file verification success"); + } else { + SetupCDTest.getExtendTest().log(Status.ERROR, "Vf module json file verification failed" + vfModuleFileValidator.right().value().toString()); + } + return vfModuleFileValidator; + } + + public static Either<Boolean, Map<String, Object>> serviceToscaMetadataValidator(Map<String, String> expectedMetadata, ToscaDefinition actualToscaDefinition) { + + SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate service TOSCA metadata..."); + Map<String, String> actualMetadata = actualToscaDefinition.getMetadata(); + Either<Boolean, Map<String, Object>> serviceToscaMetadataValidator = compareStringMapData(expectedMetadata, actualMetadata); + if (serviceToscaMetadataValidator.isLeft()) { + SetupCDTest.getExtendTest().log(Status.INFO, "Service TOSCA metadata verification success"); + } else { + SetupCDTest.getExtendTest().log(Status.ERROR, "Service TOSCA metadata verification failed" + serviceToscaMetadataValidator.right().value().toString()); + } + return serviceToscaMetadataValidator; + } + + public static Either<Boolean, Map<String, Object>> serviceToscaGroupMetadataValidator(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedServiceGroup, ToscaDefinition actualToscaDefinition) { + + SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate service TOSCA group metadata..."); + Map<String, ToscaGroupsTopologyTemplateDefinition> actualServiceGroups = actualToscaDefinition.getTopology_template().getGroups(); + Either<Boolean, Map<String, Object>> serviceToscaGroupMetadataValidator = compareServiceGroupMetadata(expectedServiceGroup, actualServiceGroups); + if (serviceToscaGroupMetadataValidator.isLeft()) { + SetupCDTest.getExtendTest().log(Status.INFO, "Service TOSCA group metadata verification success"); + } else { + SetupCDTest.getExtendTest().log(Status.ERROR, "Service TOSCA group metadata verification failed" + serviceToscaGroupMetadataValidator.right().value().toString()); + } + return serviceToscaGroupMetadataValidator; + } + + private static Either<Boolean, Map<String, Object>> compareServiceGroupMetadata(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedServiceGroup, Map<String, ToscaGroupsTopologyTemplateDefinition> actualServiceGroups) { Map<String, Object> errorMap = new HashMap<>(); - for (String groupName : expectedServiceGroup.keySet()){ - if (actualServiceGroups.get(groupName) == null ){ + for (String groupName : expectedServiceGroup.keySet()) { + if (actualServiceGroups.get(groupName) == null) { errorMap.put("group/module [" + groupName + "]", " does not exist in TOSCA main yaml"); - }else{ + } else { compareServiceGroupData(expectedServiceGroup.get(groupName), actualServiceGroups.get(groupName), groupName, errorMap); } } - if(!errorMap.isEmpty()){ + if (!errorMap.isEmpty()) { return Either.right(errorMap); } return Either.left(true); } - public static Either<Boolean, Map<String, Object>> compareServiceGroupData(ToscaServiceGroupsMetadataDefinition expectedServiceGroupMetadata, ToscaServiceGroupsMetadataDefinition actualServiceGroupMetadata, String groupName, Map<String, Object> errorMap) { + private static Either<Boolean, Map<String, Object>> compareServiceGroupData(ToscaServiceGroupsMetadataDefinition expectedServiceGroupMetadata, ToscaServiceGroupsMetadataDefinition actualServiceGroupMetadata, String groupName, Map<String, Object> errorMap) { Field[] declaredFields = expectedServiceGroupMetadata.getClass().getSuperclass().getFields(); - for (Field field : declaredFields){ - if(!field.getName().equals("serialVersionUID")) { - try { - String expectedValue = (String) field.get(expectedServiceGroupMetadata); - String actualValue = (String) field.get(actualServiceGroupMetadata); - comparingServiceGroupMetadata(groupName, errorMap, field, expectedValue, actualValue); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } - } - - if(!errorMap.isEmpty()){ + for (Field field : declaredFields) { + if (!field.getName().equals("serialVersionUID")) { + try { + String expectedValue = (String) field.get(expectedServiceGroupMetadata); + String actualValue = (String) field.get(actualServiceGroupMetadata); + comparingServiceGroupMetadata(groupName, errorMap, field, expectedValue, actualValue); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + + if (!errorMap.isEmpty()) { return Either.right(errorMap); } return Either.left(true); } -// ###########################UsingParser############################ -public static Either<Boolean, Map<String, Object>> serviceToscaGroupMetadataValidatorUsingParser(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedServiceGroup, List<Group> actualServiceGroups){ + // ###########################UsingParser############################ + public static Either<Boolean, Map<String, Object>> serviceToscaGroupMetadataValidatorUsingParser(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedServiceGroup, List<Group> actualServiceGroups) { - SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate service TOSCA group metadata..."); - Either<Boolean,Map<String,Object>> serviceToscaGroupMetadataValidator = compareServiceGroupMetadataUsingParser(expectedServiceGroup, actualServiceGroups); - if(serviceToscaGroupMetadataValidator.isLeft()){ - SetupCDTest.getExtendTest().log(Status.INFO, "Service TOSCA group metadata verification vs. tosca parser success"); - }else{ - SetupCDTest.getExtendTest().log(Status.ERROR, "Service TOSCA group metadata verification vs. tosca parser failed" + serviceToscaGroupMetadataValidator.right().value().toString()); - } - return serviceToscaGroupMetadataValidator; -} + SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate service TOSCA group metadata..."); + Either<Boolean, Map<String, Object>> serviceToscaGroupMetadataValidator = compareServiceGroupMetadataUsingParser(expectedServiceGroup, actualServiceGroups); + if (serviceToscaGroupMetadataValidator.isLeft()) { + SetupCDTest.getExtendTest().log(Status.INFO, "Service TOSCA group metadata verification vs. tosca parser success"); + } else { + SetupCDTest.getExtendTest().log(Status.ERROR, "Service TOSCA group metadata verification vs. tosca parser failed" + serviceToscaGroupMetadataValidator.right().value().toString()); + } + return serviceToscaGroupMetadataValidator; + } + + private static Either<Boolean, Map<String, Object>> compareServiceGroupMetadataUsingParser(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedServiceGroup, List<Group> actualServiceGroups) { + + Map<String, Object> errorMap = new HashMap<>(); + for (String groupName : expectedServiceGroup.keySet()) { + Group actualGroup = getServiceToscaParserGroupFromObject(groupName, actualServiceGroups); + if (actualGroup == null) { + errorMap.put("group/module [" + groupName + "]", " does not exist in TOSCA main yaml"); + } else { + compareServiceGroupDataUsingParser(expectedServiceGroup.get(groupName), actualGroup.getMetadata(), groupName, errorMap); + } + } + if (!errorMap.isEmpty()) { + return Either.right(errorMap); + } + return Either.left(true); + } + + private static Group getServiceToscaParserGroupFromObject(String groupName, List<Group> actualServiceGroups) { + for (Group group : actualServiceGroups) { + if (group.getName().equals(groupName)) { + return group; + } + } + return null; + } + + private static Either<Boolean, Map<String, Object>> compareServiceGroupDataUsingParser(ToscaServiceGroupsMetadataDefinition expectedServiceGroupMetadata, Metadata actualServiceGroupMetadata, String groupName, Map<String, Object> errorMap) { + + Field[] declaredFields = expectedServiceGroupMetadata.getClass().getSuperclass().getFields(); + for (Field field : declaredFields) { + if (!field.getName().equals("serialVersionUID")) { + try { + String expectedValue = (String) field.get(expectedServiceGroupMetadata); + String actualValue = actualServiceGroupMetadata.getValue(field.getName()); + comparingServiceGroupMetadata(groupName, errorMap, field, expectedValue, actualValue); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + + if (!errorMap.isEmpty()) { + return Either.right(errorMap); + } + return Either.left(true); + } - public static Either<Boolean,Map<String,Object>> compareServiceGroupMetadataUsingParser(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedServiceGroup, List<Group> actualServiceGroups) { - - Map<String, Object> errorMap = new HashMap<>(); - for (String groupName : expectedServiceGroup.keySet()){ - Group actualGroup = getServiceToscaParserGroupFromObject(groupName, actualServiceGroups); - if (actualGroup == null ){ - errorMap.put("group/module [" + groupName + "]", " does not exist in TOSCA main yaml"); - }else{ - compareServiceGroupDataUsingParser(expectedServiceGroup.get(groupName), actualGroup.getMetadata(), groupName, errorMap); - } - } - if(!errorMap.isEmpty()){ - return Either.right(errorMap); - } - return Either.left(true); - } - - private static Group getServiceToscaParserGroupFromObject(String groupName, List<Group> actualServiceGroups) { - for(Group group : actualServiceGroups){ - if(group.getName().equals(groupName)){ - return group; - } - } - return null; - } - - public static Either<Boolean, Map<String, Object>> compareServiceGroupDataUsingParser(ToscaServiceGroupsMetadataDefinition expectedServiceGroupMetadata, Metadata actualServiceGroupMetadata, String groupName, Map<String, Object> errorMap) { - - Field[] declaredFields = expectedServiceGroupMetadata.getClass().getSuperclass().getFields(); - for (Field field : declaredFields){ - if(!field.getName().equals("serialVersionUID")) { - try { - String expectedValue = (String) field.get(expectedServiceGroupMetadata); - String actualValue = actualServiceGroupMetadata.getValue(field.getName()); - comparingServiceGroupMetadata(groupName, errorMap, field, expectedValue, actualValue); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } - } - - if(!errorMap.isEmpty()){ - return Either.right(errorMap); - } - return Either.left(true); - } - - private static void comparingServiceGroupMetadata(String groupName, Map<String, Object> errorMap, Field field, String expectedValue, String actualValue) { - if (expectedValue != null && !expectedValue.trim().equals("")) { + private static void comparingServiceGroupMetadata(String groupName, Map<String, Object> errorMap, Field field, String expectedValue, String actualValue) { + if (expectedValue != null && !expectedValue.trim().equals("")) { if (actualValue != null) { Boolean result = compareStringValue(expectedValue, actualValue); if (!result) { @@ -217,397 +225,381 @@ public static Either<Boolean, Map<String, Object>> serviceToscaGroupMetadataVali System.out.println("Data field [" + field.getName() + "] in group service metadata [" + groupName + "] does not exist in actual object"); } } - } + } -// ############################################################################################ +//############################################################################################ + // ###########################Property UsingParser############################ + public static Either<Boolean, Map<String, Object>> serviceToscaGroupPropertyValidatorUsingParser(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedServiceGroup, List<Group> actualServiceGroups) { - // ###########################Property UsingParser############################ - public static Either<Boolean, Map<String, Object>> serviceToscaGroupPropertyValidatorUsingParser(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedServiceGroup, List<Group> actualServiceGroups){ + SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate service TOSCA group property..."); + Either<Boolean, Map<String, Object>> serviceToscaGroupMetadataValidator = compareServiceGroupPropertyUsingParser(expectedServiceGroup, actualServiceGroups); + if (serviceToscaGroupMetadataValidator.isLeft()) { + SetupCDTest.getExtendTest().log(Status.INFO, "Service TOSCA group property verification vs. tosca parser success"); + } else { + SetupCDTest.getExtendTest().log(Status.ERROR, "Service TOSCA group property verification vs. tosca parser failed" + serviceToscaGroupMetadataValidator.right().value().toString()); + } + return serviceToscaGroupMetadataValidator; + } - SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate service TOSCA group property..."); - Either<Boolean,Map<String,Object>> serviceToscaGroupMetadataValidator = compareServiceGroupPropertyUsingParser(expectedServiceGroup, actualServiceGroups); - if(serviceToscaGroupMetadataValidator.isLeft()){ - SetupCDTest.getExtendTest().log(Status.INFO, "Service TOSCA group property verification vs. tosca parser success"); - }else{ - SetupCDTest.getExtendTest().log(Status.ERROR, "Service TOSCA group property verification vs. tosca parser failed" + serviceToscaGroupMetadataValidator.right().value().toString()); - } - return serviceToscaGroupMetadataValidator; - } + private static Either<Boolean, Map<String, Object>> compareServiceGroupPropertyUsingParser(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedServiceGroup, List<Group> actualServiceGroups) { - public static Either<Boolean,Map<String,Object>> compareServiceGroupPropertyUsingParser(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedServiceGroup, List<Group> actualServiceGroups) { + Map<String, Object> errorMap = new HashMap<>(); + for (String groupName : expectedServiceGroup.keySet()) { + Group actualGroup = getServiceToscaParserGroupFromObject(groupName, actualServiceGroups); + if (actualGroup == null) { + errorMap.put("group/module [" + groupName + "]", " does not exist in TOSCA main yaml"); + } else { + compareServiceGroupPropertyUsingParser(expectedServiceGroup.get(groupName).getProperties(), actualGroup.getProperties(), groupName, errorMap); + } + } + if (!errorMap.isEmpty()) { + return Either.right(errorMap); + } + return Either.left(true); + } - Map<String, Object> errorMap = new HashMap<>(); - for (String groupName : expectedServiceGroup.keySet()){ - Group actualGroup = getServiceToscaParserGroupFromObject(groupName, actualServiceGroups); - if (actualGroup == null ){ - errorMap.put("group/module [" + groupName + "]", " does not exist in TOSCA main yaml"); - }else{ - compareServiceGroupPropertyUsingParser(expectedServiceGroup.get(groupName).getProperties(), actualGroup.getProperties(), groupName, errorMap); - } - } - if(!errorMap.isEmpty()){ - return Either.right(errorMap); - } - return Either.left(true); - } + private static Either<Boolean, Map<String, Object>> compareServiceGroupPropertyUsingParser(ToscaGroupPropertyDefinition expectedServiceGroupProperty, LinkedHashMap<String, Property> actualServiceGroupProperty, String groupName, Map<String, Object> errorMap) { + + Field[] declaredFields = expectedServiceGroupProperty.getClass().getDeclaredFields(); + for (Field field : declaredFields) { + if (!field.getName().equals("serialVersionUID")) { + try { + String expectedValue = null; + String actualValue = null; + if (field.get(expectedServiceGroupProperty) != null) { + expectedValue = field.get(expectedServiceGroupProperty).toString(); + } + if (actualServiceGroupProperty.get(field.getName()) != null && actualServiceGroupProperty.get(field.getName()).getValue() != null) { + actualValue = actualServiceGroupProperty.get(field.getName()).getValue().toString(); + } + comparingServiceGroupProperty(groupName, errorMap, field, expectedValue, actualValue); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } - public static Either<Boolean, Map<String, Object>> compareServiceGroupPropertyUsingParser(ToscaGroupPropertyDefinition expectedServiceGroupProperty, LinkedHashMap<String, Property> actualServiceGroupProperty, String groupName, Map<String, Object> errorMap) { + if (!errorMap.isEmpty()) { + return Either.right(errorMap); + } + return Either.left(true); + } - Field[] declaredFields = expectedServiceGroupProperty.getClass().getDeclaredFields(); - for (Field field : declaredFields){ - if(!field.getName().equals("serialVersionUID")) { - try { - String expectedValue = null; - String actualValue = null; - if (field.get(expectedServiceGroupProperty) != null) { - expectedValue = field.get(expectedServiceGroupProperty).toString(); - } - if (actualServiceGroupProperty.get(field.getName()) != null && actualServiceGroupProperty.get(field.getName()).getValue() != null) { - actualValue = actualServiceGroupProperty.get(field.getName()).getValue().toString(); - } - comparingServiceGroupProperty(groupName, errorMap, field, expectedValue, actualValue); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } - } +//############################################################################################ - if(!errorMap.isEmpty()){ - return Either.right(errorMap); - } - return Either.left(true); - } -// ############################################################################################ + //?------- + public static Either<Boolean, Map<String, Object>> serviceToscaGroupPropertyValidator(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedServiceGroup, ToscaDefinition actualToscaDefinition) { + SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate service TOSCA group property..."); + Map<String, ToscaGroupsTopologyTemplateDefinition> actualServiceGroups = actualToscaDefinition.getTopology_template().getGroups(); + Either<Boolean, Map<String, Object>> serviceToscaGroupPropertyValidator = compareServiceGroupProperty(expectedServiceGroup, actualServiceGroups); + if (serviceToscaGroupPropertyValidator.isLeft()) { + SetupCDTest.getExtendTest().log(Status.INFO, "Service TOSCA group property verification success"); + } else { + SetupCDTest.getExtendTest().log(Status.ERROR, "Service TOSCA group property verification failed" + serviceToscaGroupPropertyValidator.right().value().toString()); + } + return serviceToscaGroupPropertyValidator; + } + private static Either<Boolean, Map<String, Object>> compareServiceGroupProperty(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedServiceGroup, Map<String, ToscaGroupsTopologyTemplateDefinition> actualServiceGroups) { + Map<String, Object> errorMap = new HashMap<>(); + for (String groupName : expectedServiceGroup.keySet()) { + if (actualServiceGroups.get(groupName) == null) { + errorMap.put("group/module [" + groupName + "]", " does not exist in TOSCA main yaml"); + } else { + compareServiceGroupProperty(expectedServiceGroup.get(groupName).getProperties(), actualServiceGroups.get(groupName).getProperties(), groupName, errorMap); + } + } + if (!errorMap.isEmpty()) { + return Either.right(errorMap); + } + return Either.left(true); + } + private static Either<Boolean, Map<String, Object>> compareServiceGroupProperty(ToscaGroupPropertyDefinition expectedServiceGroupProperty, ToscaGroupPropertyDefinition actualServiceGroupProperty, String groupName, Map<String, Object> errorMap) { + + Field[] declaredFields = expectedServiceGroupProperty.getClass().getDeclaredFields(); + for (Field field : declaredFields) { + if (!field.getName().equals("serialVersionUID")) { + try { + String expectedValue = null; + String actualValue = null; + if (field.get(expectedServiceGroupProperty) != null) { + expectedValue = field.get(expectedServiceGroupProperty).toString(); + } + if (field.get(actualServiceGroupProperty) != null) { + actualValue = field.get(actualServiceGroupProperty).toString(); + } + comparingServiceGroupProperty(groupName, errorMap, field, expectedValue, actualValue); + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + } + if (!errorMap.isEmpty()) { + return Either.right(errorMap); + } + return Either.left(true); + } + private static void comparingServiceGroupProperty(String groupName, Map<String, Object> errorMap, Field field, String expectedValue, String actualValue) { + if (expectedValue != null && !expectedValue.trim().equals("")) { + if (actualValue != null) { + Boolean result = compareStringValue(expectedValue, actualValue); + if (!result) { + errorMap.put("Data field [" + field.getName() + "] in group service property [" + groupName + "]", "expected: " + expectedValue + ", actual: " + actualValue); + } + } else { + errorMap.put("Data field [" + field.getName() + "] in group service property [" + groupName + "]", " does not exist in actual object"); + System.out.println("Data field [" + field.getName() + "] in group service property [" + groupName + "] does not exist in actual object"); + } + } + } + // ---------------------------------- + public static Either<Boolean, Map<String, Object>> componentToscaNodeTemplateMetadataValidator(Map<String, String> expectedMetadata, ToscaDefinition actualToscaDefinition, String nodeTemplateName, ComponentTypeEnum componentType, String componentName) { + SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate " + componentName + " " + componentType.getValue() + " node template TOSCA metadata..."); + Map<String, String> actualMetadata = actualToscaDefinition.getTopology_template().getNode_templates().get(nodeTemplateName).getMetadata(); + Either<Boolean, Map<String, Object>> componentToscaMetadataValidator = compareStringMapData(expectedMetadata, actualMetadata); + if (componentToscaMetadataValidator.isLeft()) { + SetupCDTest.getExtendTest().log(Status.INFO, " " + componentName + " " + componentType.getValue() + "TOSCA node template metadata verification success"); + } else { + SetupCDTest.getExtendTest().log(Status.ERROR, " " + componentName + " " + componentType.getValue() + "TOSCA node template metadata verification failed" + componentToscaMetadataValidator.right().value().toString()); + } + return componentToscaMetadataValidator; + } + public static Either<Boolean, Map<String, Object>> serviceToscaMetadataValidatorAgainstParser(Map<String, String> expectedMetadata, Metadata actualMetadata) { + SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate service TOSCA metadata..."); + Either<Boolean, Map<String, Object>> serviceToscaMetadataValidator = compareMetadataUsingToscaParser(expectedMetadata, actualMetadata); + if (serviceToscaMetadataValidator.isLeft()) { + SetupCDTest.getExtendTest().log(Status.INFO, "Service TOSCA metadata verification vs. tosca parser success"); + } else { + SetupCDTest.getExtendTest().log(Status.ERROR, "Service TOSCA metadata verification vs. tosca parser failed" + serviceToscaMetadataValidator.right().value().toString()); + } + return serviceToscaMetadataValidator; + } + private static Either<Boolean, Map<String, Object>> compareStringMapData(Map<String, String> expectedMetadata, Map<String, String> actualMetadata) { + Either.left(false); + Map<String, Object> errorMap = new HashMap<>(); + for (String key : expectedMetadata.keySet()) { + boolean isError = compareStringValue(expectedMetadata.get(key), actualMetadata.get(key)); + if (!isError) { + errorMap.put("Data key[" + key + "]", "expected: " + expectedMetadata.get(key) + ", actual: " + actualMetadata.get(key)); + } + } + if (!errorMap.isEmpty()) { + return Either.right(errorMap); + } + return Either.left(true); + } + private static Either<Boolean, Map<String, Object>> compareObjectMapData(Map<String, VfModuleDefinition> expectedObject, Map<String, VfModuleDefinition> actualObject) { + Map<String, Object> errorMap = new HashMap<>(); + for (String key : expectedObject.keySet()) { + boolean isError = compareObjectValue(expectedObject.get(key), actualObject.get(key)); + if (!isError) { + errorMap.put("Data key[" + key + "]", "expected: " + expectedObject.get(key) + ", actual: " + actualObject.get(key)); + } + } + if (!errorMap.isEmpty()) { + return Either.right(errorMap); + } + return Either.left(true); + } -//?------- - public static Either<Boolean, Map<String, Object>> serviceToscaGroupPropertyValidator(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedServiceGroup, ToscaDefinition actualToscaDefinition){ + private static boolean compareObjectValue(VfModuleDefinition expected, VfModuleDefinition actual) { + return expected.equals(actual); + } - SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate service TOSCA group property..."); - Map<String, ToscaGroupsTopologyTemplateDefinition> actualServiceGroups = actualToscaDefinition.getTopology_template().getGroups(); - Either<Boolean,Map<String,Object>> serviceToscaGroupPropertyValidator = compareServiceGroupProperty(expectedServiceGroup, actualServiceGroups); - if(serviceToscaGroupPropertyValidator.isLeft()){ - SetupCDTest.getExtendTest().log(Status.INFO, "Service TOSCA group property verification success"); - }else{ - SetupCDTest.getExtendTest().log(Status.ERROR, "Service TOSCA group property verification failed" + serviceToscaGroupPropertyValidator.right().value().toString()); - } - return serviceToscaGroupPropertyValidator; - } + private static Either<Boolean, Map<String, Object>> compareMetadataUsingToscaParser(Map<String, String> expectedMetadata, Metadata actualMetadata) { + Map<String, Object> errorMap = new HashMap<>(); + for (String key : expectedMetadata.keySet()) { + boolean isError = compareStringValue(expectedMetadata.get(key), actualMetadata.getValue(key)); + if (!isError) { + errorMap.put("Data key[" + key + "]", "expected: " + expectedMetadata.get(key) + ", actual: " + actualMetadata.getValue(key)); + } + } + if (!errorMap.isEmpty()) { + return Either.right(errorMap); + } + return Either.left(true); + } - public static Either<Boolean,Map<String,Object>> compareServiceGroupProperty(Map<String, ToscaGroupsTopologyTemplateDefinition> expectedServiceGroup, Map<String, ToscaGroupsTopologyTemplateDefinition> actualServiceGroups) { + private static boolean compareStringValue(String expected, String actual) { + return expected.equals(actual); + } - Map<String, Object> errorMap = new HashMap<>(); - for (String groupName : expectedServiceGroup.keySet()){ - if (actualServiceGroups.get(groupName) == null ){ - errorMap.put("group/module [" + groupName + "]", " does not exist in TOSCA main yaml"); - }else{ - compareServiceGroupProperty(expectedServiceGroup.get(groupName).getProperties(), actualServiceGroups.get(groupName).getProperties(), groupName, errorMap); - } - } - if(!errorMap.isEmpty()){ - return Either.right(errorMap); - } - return Either.left(true); - } - - public static Either<Boolean, Map<String, Object>> compareServiceGroupProperty(ToscaGroupPropertyDefinition expectedServiceGroupProperty, ToscaGroupPropertyDefinition actualServiceGroupProperty, String groupName, Map<String, Object> errorMap) { - - Field[] declaredFields = expectedServiceGroupProperty.getClass().getDeclaredFields(); - for (Field field : declaredFields){ - if(!field.getName().equals("serialVersionUID")) { - try { - String expectedValue = null; - String actualValue = null; - if(field.get(expectedServiceGroupProperty) != null) { - expectedValue = field.get(expectedServiceGroupProperty).toString(); - } - if(field.get(actualServiceGroupProperty) != null) { - actualValue = field.get(actualServiceGroupProperty).toString(); - } - comparingServiceGroupProperty(groupName, errorMap, field, expectedValue, actualValue); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - } - } + public static Either<Boolean, Map<String, Object>> toscaInputsValidator(Map<String, ToscaInputsTopologyTemplateDefinition> expectedInputs, Map<String, ToscaInputsTopologyTemplateDefinition> actualInputs) { - if(!errorMap.isEmpty()){ - return Either.right(errorMap); - } - return Either.left(true); - } + SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate TOSCA inputs..."); + Either<Boolean, Map<String, Object>> toscaInputsValidator = compareInputs(expectedInputs, actualInputs); + if (toscaInputsValidator.isLeft()) { + SetupCDTest.getExtendTest().log(Status.INFO, "TOSCA inputs verification success"); + } else { + SetupCDTest.getExtendTest().log(Status.ERROR, "TOSCA inputs verification failed" + toscaInputsValidator.right().value().toString()); + } - private static void comparingServiceGroupProperty(String groupName, Map<String, Object> errorMap, Field field, String expectedValue, String actualValue) { - if (expectedValue != null && !expectedValue.trim().equals("")) { - if (actualValue != null) { - Boolean result = compareStringValue(expectedValue, actualValue); - if (!result) { - errorMap.put("Data field [" + field.getName() + "] in group service property [" + groupName + "]", "expected: " + expectedValue + ", actual: " + actualValue); - } + if (toscaInputsValidator.right() != null && !toscaInputsValidator.right().equals("")) { + return toscaInputsValidator; + } + return Either.left(true); + } + + private static Either<Boolean, Map<String, Object>> compareInputs(Map<String, ToscaInputsTopologyTemplateDefinition> expectedInputs, Map<String, ToscaInputsTopologyTemplateDefinition> actualInputs) { + + Map<String, Object> errorMap = new HashMap<>(); + + for (String inputName : expectedInputs.keySet()) { + if (actualInputs.get(inputName) == null) { + errorMap.put("input [" + inputName + "]", " does not exist in TOSCA main yaml"); } else { - errorMap.put("Data field [" + field.getName() + "] in group service property [" + groupName + "]", " does not exist in actual object"); - System.out.println("Data field [" + field.getName() + "] in group service property [" + groupName + "] does not exist in actual object"); + compareInputData(expectedInputs.get(inputName), actualInputs.get(inputName), errorMap); } } - } - - - // ---------------------------------- - public static Either<Boolean, Map<String, Object>> componentToscaNodeTemplateMetadataValidator(Map<String, String> expectedMetadata, ToscaDefinition actualToscaDefinition, String nodeTemplateName, ComponentTypeEnum componentType, String componentName){ - - SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate "+ componentName + " " + componentType.getValue() + " node template TOSCA metadata..."); - Map<String, String> actualMetadata = actualToscaDefinition.getTopology_template().getNode_templates().get(nodeTemplateName).getMetadata(); - Either<Boolean,Map<String,Object>> componentToscaMetadataValidator = compareStringMapData(expectedMetadata, actualMetadata); - if(componentToscaMetadataValidator.isLeft()){ - SetupCDTest.getExtendTest().log(Status.INFO, " " + componentName + " " + componentType.getValue() + "TOSCA node template metadata verification success"); - }else{ - SetupCDTest.getExtendTest().log(Status.ERROR, " " +componentName + " " + componentType.getValue() + "TOSCA node template metadata verification failed" + componentToscaMetadataValidator.right().value().toString()); - } - return componentToscaMetadataValidator; - } - - public static Either<Boolean, Map<String, Object>> serviceToscaMetadataValidatorAgainstParser(Map<String, String> expectedMetadata, Metadata actualMetadata){ - - SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate service TOSCA metadata..."); - - Either<Boolean,Map<String,Object>> serviceToscaMetadataValidator = compareMetadataUsingToscaParser(expectedMetadata, actualMetadata); - if(serviceToscaMetadataValidator.isLeft()){ - SetupCDTest.getExtendTest().log(Status.INFO, "Service TOSCA metadata verification vs. tosca parser success"); - }else{ - SetupCDTest.getExtendTest().log(Status.ERROR, "Service TOSCA metadata verification vs. tosca parser failed" + serviceToscaMetadataValidator.right().value().toString()); - } - return serviceToscaMetadataValidator; - } - - - public static Either<Boolean, Map<String, Object>> compareStringMapData(Map<String, String> expectedMetadata, Map<String, String> actualMetadata) { - Either.left(false); - Map<String, Object> errorMap = new HashMap<>(); - for(String key : expectedMetadata.keySet()){ - boolean isError = compareStringValue(expectedMetadata.get(key), actualMetadata.get(key)); - if(!isError){ - errorMap.put("Data key["+key+"]", "expected: " + expectedMetadata.get(key) + ", actual: " + actualMetadata.get(key)); - } - } - if(!errorMap.isEmpty()){ - return Either.right(errorMap); - } - return Either.left(true); - } - - - public static Either<Boolean, Map<String, Object>> compareObjectMapData(Map<String, VfModuleDefinition> expectedObject, Map<String, VfModuleDefinition> actualObject) { - Map<String, Object> errorMap = new HashMap<>(); - for(String key : expectedObject.keySet()){ - boolean isError = compareObjectValue(expectedObject.get(key), actualObject.get(key)); - if(!isError){ - errorMap.put("Data key["+key+"]", "expected: " + expectedObject.get(key) + ", actual: " + actualObject.get(key)); - } - } - if(!errorMap.isEmpty()){ - return Either.right(errorMap); - } - return Either.left(true); - } - - private static boolean compareObjectValue(VfModuleDefinition expected, VfModuleDefinition actual) { - return expected.equals(actual); - } - - public static Either<Boolean, Map<String, Object>> compareMetadataUsingToscaParser(Map<String, String> expectedMetadata, Metadata actualMetadata) { - Map<String, Object> errorMap = new HashMap<>(); - for(String key : expectedMetadata.keySet()){ - boolean isError = compareStringValue(expectedMetadata.get(key), actualMetadata.getValue(key)); - if(!isError){ - errorMap.put("Data key["+key+"]", "expected: " + expectedMetadata.get(key) + ", actual: " + actualMetadata.getValue(key)); - } - } - if(!errorMap.isEmpty()){ - return Either.right(errorMap); - } - return Either.left(true); - } - - private static boolean compareStringValue(String expected, String actual) { - return expected.equals(actual); - } - - public static Either<Boolean, Map<String, Object>> toscaInputsValidator(Map<String, ToscaInputsTopologyTemplateDefinition> expectedInputs, Map<String, ToscaInputsTopologyTemplateDefinition> actualInputs){ - - SetupCDTest.getExtendTest().log(Status.INFO, "Going to validate TOSCA inputs..."); - Either<Boolean,Map<String,Object>> toscaInputsValidator = compareInputs(expectedInputs, actualInputs); - if(toscaInputsValidator.isLeft()){ - SetupCDTest.getExtendTest().log(Status.INFO, "TOSCA inputs verification success"); - }else{ - SetupCDTest.getExtendTest().log(Status.ERROR, "TOSCA inputs verification failed" + toscaInputsValidator.right().value().toString()); - } - - if(toscaInputsValidator.right() != null && ! toscaInputsValidator.right().equals("")){ - return toscaInputsValidator; - } - return Either.left(true); - } - - public static Either<Boolean,Map<String,Object>> compareInputs(Map<String, ToscaInputsTopologyTemplateDefinition> expectedInputs, Map<String, ToscaInputsTopologyTemplateDefinition> actualInputs) { - - Map<String, Object> errorMap = new HashMap<>(); - - for (String inputName : expectedInputs.keySet()){ - if (actualInputs.get(inputName) == null ){ - errorMap.put("input [" + inputName + "]", " does not exist in TOSCA main yaml"); - }else{ - compareInputData(expectedInputs.get(inputName), actualInputs.get(inputName), errorMap); - } - } - if(!errorMap.isEmpty()){ - return Either.right(errorMap); - } - return Either.left(true); - } - - public static Either<Boolean, Map<String, Object>> compareInputData(ToscaInputsTopologyTemplateDefinition expectedInputDefinition, ToscaInputsTopologyTemplateDefinition actualInputDefinition, Map<String, Object> errorMap) { - - Field[] declaredFields = expectedInputDefinition.getClass().getDeclaredFields(); - for (Field field : declaredFields){ - try { - Object expectedValue = field.get(expectedInputDefinition); - Object actualValue = field.get(actualInputDefinition); + if (!errorMap.isEmpty()) { + return Either.right(errorMap); + } + return Either.left(true); + } + + private static Either<Boolean, Map<String, Object>> compareInputData(ToscaInputsTopologyTemplateDefinition expectedInputDefinition, ToscaInputsTopologyTemplateDefinition actualInputDefinition, Map<String, Object> errorMap) { + + Field[] declaredFields = expectedInputDefinition.getClass().getDeclaredFields(); + for (Field field : declaredFields) { + try { + Object expectedValue = field.get(expectedInputDefinition); + Object actualValue = field.get(actualInputDefinition); // verification exclude fields as (immutable, hidden, constraints, entry_schema) according Renana - if(expectedValue != null && !expectedValue.toString().trim().equals("") && field.getName() != "name" && field.getName() != "immutable" && field.getName() != "hidden" && field.getName() != "constraints" && field.getName() != "entry_schema" && field.getName() != "required") { - if (actualValue != null) { - compareInputValue(expectedInputDefinition, errorMap, field, expectedValue, actualValue); - } else { - errorMap.put("Data field [" + field.getName() + "] in input [" + expectedInputDefinition.getName() + "]", " does not exist in actual object"); - System.out.println("Data field [" + field.getName() + "] in input [" + expectedInputDefinition.getName() + "] does not exist in actual object"); - } - } - }catch (IllegalAccessException e) { - e.printStackTrace(); - } - } - - if(!errorMap.isEmpty()){ - return Either.right(errorMap); - } - return Either.left(true); - } - - public static void compareInputValue(ToscaInputsTopologyTemplateDefinition expectedInputDefinition, Map<String, Object> errorMap, Field field, Object expectedValue, Object actualValue) { - if(field.getName().equals("value") || field.getName().equals("Default")){ - switch (expectedInputDefinition.getType()) { - case "string": - if(! expectedValue.toString().replace("\n"," ").replaceAll("( +)", " ").equals(actualValue.toString().replace("\n"," ").replaceAll("( +)", " "))){ - errorMap.put("Data field [" + field.getName()+"] in input [" + expectedInputDefinition.getName() + "]", "expected: " + expectedValue + ", actual: " + actualValue); - System.out.println("Data field [" + field.getName()+"] in input [" + expectedInputDefinition.getName() + "]: expected: " + expectedValue + ", actual: " + actualValue); - } - break; - case "float": - float newExpectedValue = convertObjectToFloat(expectedValue); - float newActualValue = convertObjectToFloat(actualValue); - if(newExpectedValue != newActualValue){ - errorMap.put("Data field [" + field.getName()+"] in input [" + expectedInputDefinition.getName() + "]", "expected: " + newExpectedValue + ", actual: " + newActualValue); - System.out.println("Data field [" + field.getName()+"] in input [" + expectedInputDefinition.getName() + "]: expected: " + newExpectedValue + ", actual: " + newActualValue); - } - break; - case "boolean": - if(! expectedValue.toString().equalsIgnoreCase(actualValue.toString())){ - errorMap.put("Data field [" + field.getName()+"] in input [" + expectedInputDefinition.getName() + "]", "expected: " + expectedValue + ", actual: " + actualValue); - System.out.println("Data field [" + field.getName()+"] in input [" + expectedInputDefinition.getName() + "]: expected: " + expectedValue + ", actual: " + actualValue); - } - break; - case "list": - expectedInputDefinition.getEntry_schema().get("type"); - break; - case "map": - - break; - default: - break; - } - - - }else{ - if(! expectedValue.equals(actualValue)){ - errorMap.put("Data field [" + field.getName()+"] in input [" + expectedInputDefinition.getName() + "]", "expected: " + expectedValue + ", actual: " + actualValue); - System.out.println("Data field [" + field.getName()+"] in input [" + expectedInputDefinition.getName() + "]: expected: " + expectedValue + ", actual: " + actualValue); - } - } - - } - - - public static float convertObjectToFloat(Object object){ - - float floatValue = 0; - - if(object instanceof Integer){ - floatValue = ((Integer)object).floatValue(); - } - if(object instanceof Double){ - floatValue = ((Double)object).floatValue(); - } - if(object instanceof Float){ - floatValue = ((Float) object).floatValue(); - } - if(object instanceof String){ - floatValue = Float.parseFloat(object.toString()); - } - - if(object instanceof Long){ - floatValue = ((Long) object).floatValue(); - } - return floatValue; - } - - public static Either<Boolean, Map<String, Object>> toscaInputsValidatorAgainstParser(Map<String, ToscaInputsTopologyTemplateDefinition> expectedInputsMap, ISdcCsarHelper fdntCsarHelper) { - SetupCDTest.getExtendTest().log(Status.INFO, "Going to convert tosca parser inputs output to ToscaInputsTopologyTemplateDefinition object..."); - if(!fdntCsarHelper.getServiceInputs().isEmpty()){ - if(expectedInputsMap != null && ! expectedInputsMap.isEmpty()){ - return Either.left(true); - }else{ - Map<String, Object> errorMap = new HashMap<>(); - errorMap.put("Inputs", " do not exist on actual service"); - SetupCDTest.getExtendTest().log(Status.INFO, "Inputs do not exist on actual service csar"); - return Either.right(errorMap); - } - } - Map<String, ToscaInputsTopologyTemplateDefinition> actualInputsMap = convertInputsParserOutputToMap(fdntCsarHelper); - return toscaInputsValidator(expectedInputsMap, actualInputsMap); - } - - /** - * @param fdntCsarHelper convert list of inputs return from tosca parser to map of ToscaInputsTopologyTemplateDefinition - * @return field.get(actualServiceGroupProperty) - */ - public static Map<String, ToscaInputsTopologyTemplateDefinition> convertInputsParserOutputToMap(ISdcCsarHelper fdntCsarHelper) { - Map<String, ToscaInputsTopologyTemplateDefinition> actualInputsMap = new HashMap<>(); - List<Input> serviceInputs = fdntCsarHelper.getServiceInputs(); - for (Input input : serviceInputs){ - ToscaInputsTopologyTemplateDefinition actualInputDefinition = new ToscaInputsTopologyTemplateDefinition(); - actualInputDefinition.setDefault(input.getDefault()); - actualInputDefinition.setType(input.getType()); - actualInputDefinition.setDescription(input.getDescription()); - actualInputsMap.put(input.getName(), actualInputDefinition); - } - return actualInputsMap; - } - + if (expectedValue != null && !expectedValue.toString().trim().equals("") && field.getName() != "name" && field.getName() != "immutable" && field.getName() != "hidden" && field.getName() != "constraints" && field.getName() != "entry_schema" && field.getName() != "required") { + if (actualValue != null) { + compareInputValue(expectedInputDefinition, errorMap, field, expectedValue, actualValue); + } else { + errorMap.put("Data field [" + field.getName() + "] in input [" + expectedInputDefinition.getName() + "]", " does not exist in actual object"); + System.out.println("Data field [" + field.getName() + "] in input [" + expectedInputDefinition.getName() + "] does not exist in actual object"); + } + } + } catch (IllegalAccessException e) { + e.printStackTrace(); + } + } + + if (!errorMap.isEmpty()) { + return Either.right(errorMap); + } + return Either.left(true); + } + + private static void compareInputValue(ToscaInputsTopologyTemplateDefinition expectedInputDefinition, Map<String, Object> errorMap, Field field, Object expectedValue, Object actualValue) { + if (field.getName().equals("value") || field.getName().equals("Default")) { + switch (expectedInputDefinition.getType()) { + case "string": + if (!expectedValue.toString().replace("\n", " ").replaceAll("( +)", " ").equals(actualValue.toString().replace("\n", " ").replaceAll("( +)", " "))) { + errorMap.put("Data field [" + field.getName() + "] in input [" + expectedInputDefinition.getName() + "]", "expected: " + expectedValue + ", actual: " + actualValue); + System.out.println("Data field [" + field.getName() + "] in input [" + expectedInputDefinition.getName() + "]: expected: " + expectedValue + ", actual: " + actualValue); + } + break; + case "float": + float newExpectedValue = convertObjectToFloat(expectedValue); + float newActualValue = convertObjectToFloat(actualValue); + if (newExpectedValue != newActualValue) { + errorMap.put("Data field [" + field.getName() + "] in input [" + expectedInputDefinition.getName() + "]", "expected: " + newExpectedValue + ", actual: " + newActualValue); + System.out.println("Data field [" + field.getName() + "] in input [" + expectedInputDefinition.getName() + "]: expected: " + newExpectedValue + ", actual: " + newActualValue); + } + break; + case "boolean": + if (!expectedValue.toString().equalsIgnoreCase(actualValue.toString())) { + errorMap.put("Data field [" + field.getName() + "] in input [" + expectedInputDefinition.getName() + "]", "expected: " + expectedValue + ", actual: " + actualValue); + System.out.println("Data field [" + field.getName() + "] in input [" + expectedInputDefinition.getName() + "]: expected: " + expectedValue + ", actual: " + actualValue); + } + break; + case "list": + expectedInputDefinition.getEntry_schema().get("type"); + break; + case "map": + + break; + default: + break; + } + + + } else { + if (!expectedValue.equals(actualValue)) { + errorMap.put("Data field [" + field.getName() + "] in input [" + expectedInputDefinition.getName() + "]", "expected: " + expectedValue + ", actual: " + actualValue); + System.out.println("Data field [" + field.getName() + "] in input [" + expectedInputDefinition.getName() + "]: expected: " + expectedValue + ", actual: " + actualValue); + } + } + + } + + + private static float convertObjectToFloat(Object object) { + + float floatValue = 0; + + if (object instanceof Integer) { + floatValue = ((Integer) object).floatValue(); + } + if (object instanceof Double) { + floatValue = ((Double) object).floatValue(); + } + if (object instanceof Float) { + floatValue = ((Float) object).floatValue(); + } + if (object instanceof String) { + floatValue = Float.parseFloat(object.toString()); + } + + if (object instanceof Long) { + floatValue = ((Long) object).floatValue(); + } + return floatValue; + } + + public static Either<Boolean, Map<String, Object>> toscaInputsValidatorAgainstParser(Map<String, ToscaInputsTopologyTemplateDefinition> expectedInputsMap, ISdcCsarHelper fdntCsarHelper) { + SetupCDTest.getExtendTest().log(Status.INFO, "Going to convert tosca parser inputs output to ToscaInputsTopologyTemplateDefinition object..."); + if (!fdntCsarHelper.getServiceInputs().isEmpty()) { + if (expectedInputsMap != null && !expectedInputsMap.isEmpty()) { + return Either.left(true); + } else { + Map<String, Object> errorMap = new HashMap<>(); + errorMap.put("Inputs", " do not exist on actual service"); + SetupCDTest.getExtendTest().log(Status.INFO, "Inputs do not exist on actual service csar"); + return Either.right(errorMap); + } + } + Map<String, ToscaInputsTopologyTemplateDefinition> actualInputsMap = convertInputsParserOutputToMap(fdntCsarHelper); + return toscaInputsValidator(expectedInputsMap, actualInputsMap); + } + + /** + * @param fdntCsarHelper convert list of inputs return from tosca parser to map of ToscaInputsTopologyTemplateDefinition + * @return field.get(actualServiceGroupProperty) + */ + private static Map<String, ToscaInputsTopologyTemplateDefinition> convertInputsParserOutputToMap(ISdcCsarHelper fdntCsarHelper) { + Map<String, ToscaInputsTopologyTemplateDefinition> actualInputsMap = new HashMap<>(); + List<Input> serviceInputs = fdntCsarHelper.getServiceInputs(); + for (Input input : serviceInputs) { + ToscaInputsTopologyTemplateDefinition actualInputDefinition = new ToscaInputsTopologyTemplateDefinition(); + actualInputDefinition.setDefault(input.getDefault()); + actualInputDefinition.setType(input.getType()); + actualInputDefinition.setDescription(input.getDescription()); + actualInputsMap.put(input.getName(), actualInputDefinition); + } + return actualInputsMap; + } + } |