Support Policies during Import Service 64/129664/13
authorvasraz <vasyl.razinkov@est.tech>
Wed, 13 Jul 2022 14:58:59 +0000 (15:58 +0100)
committerMichael Morris <michael.morris@est.tech>
Thu, 14 Jul 2022 16:43:37 +0000 (16:43 +0000)
Signed-off-by: Vasyl Razinkov <vasyl.razinkov@est.tech>
Change-Id: I3ea14869853733a8a2069ae0568cfbb053849a79
Issue-ID: SDC-4060

22 files changed:
catalog-be/src/main/java/org/openecomp/sdc/be/components/csar/YamlTemplateParsingHandler.java
catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/BaseBusinessLogic.java
catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ComponentBusinessLogic.java
catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ImportUtils.java
catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/PolicyBusinessLogic.java
catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ResourceBusinessLogic.java
catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ServiceBusinessLogic.java
catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ServiceImportBusinessLogic.java
catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/ServiceImportParseLogic.java
catalog-be/src/main/java/org/openecomp/sdc/be/servlets/PolicyServlet.java
catalog-be/src/main/java/org/openecomp/sdc/be/servlets/ServiceServlet.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/BaseServiceBusinessLogicTest.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/ServiceDistributionBLTest.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/csar/YamlTemplateParsingHandlerTest.java [moved from catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/utils/YamlTemplateParsingHandlerTest.java with 80% similarity]
catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/PolicyBusinessLogicTest.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ServiceBusinessLogicBaseTestSetup.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ServiceImportBusinessLogicTest.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ServiceImportBussinessLogicBaseTestSetup.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ServiceImportManagerTest.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ServiceImportParseLogicTest.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/path/BaseForwardingPathTest.java
catalog-be/src/test/java/org/openecomp/sdc/be/tosca/PolicyExportParserImplTest.java

index 6752586..31281db 100644 (file)
@@ -87,6 +87,7 @@ import org.openecomp.sdc.be.datatypes.elements.PolicyTargetType;
 import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
 import org.openecomp.sdc.be.datatypes.elements.RequirementSubstitutionFilterPropertyDataDefinition;
 import org.openecomp.sdc.be.model.CapabilityDefinition;
+import org.openecomp.sdc.be.model.Component;
 import org.openecomp.sdc.be.model.ComponentInstanceProperty;
 import org.openecomp.sdc.be.model.GroupDefinition;
 import org.openecomp.sdc.be.model.GroupTypeDefinition;
@@ -96,7 +97,6 @@ import org.openecomp.sdc.be.model.ParsedToscaYamlInfo;
 import org.openecomp.sdc.be.model.PolicyDefinition;
 import org.openecomp.sdc.be.model.PolicyTypeDefinition;
 import org.openecomp.sdc.be.model.PropertyDefinition;
-import org.openecomp.sdc.be.model.Resource;
 import org.openecomp.sdc.be.model.UploadArtifactInfo;
 import org.openecomp.sdc.be.model.UploadCapInfo;
 import org.openecomp.sdc.be.model.UploadComponentInstanceInfo;
@@ -105,13 +105,12 @@ import org.openecomp.sdc.be.model.UploadReqInfo;
 import org.openecomp.sdc.be.model.tosca.ToscaPropertyType;
 import org.openecomp.sdc.be.utils.TypeUtils;
 import org.openecomp.sdc.common.log.wrappers.Logger;
-import org.springframework.stereotype.Component;
 import org.yaml.snakeyaml.parser.ParserException;
 
 /**
  * A handler class designed to parse the YAML file of the service template for a JAVA object
  */
-@Component
+@org.springframework.stereotype.Component
 public class YamlTemplateParsingHandler {
 
     private static final Pattern propertyValuePattern = Pattern.compile("[ ]*\\{[ ]*(str_replace=|token=|get_property=|concat=|get_attribute=)+");
@@ -134,7 +133,7 @@ public class YamlTemplateParsingHandler {
 
     public ParsedToscaYamlInfo parseResourceInfoFromYAML(String fileName, String resourceYml, Map<String, String> createdNodesToscaResourceNames,
                                                          Map<String, NodeTypeInfo> nodeTypesInfo, String nodeName,
-                                                         org.openecomp.sdc.be.model.Component component, String interfaceTemplateYaml) {
+                                                         Component component, String interfaceTemplateYaml) {
         log.debug("#parseResourceInfoFromYAML - Going to parse yaml {} ", fileName);
         Map<String, Object> mappedToscaTemplate = getMappedToscaTemplate(fileName, resourceYml, nodeTypesInfo, nodeName);
         ParsedToscaYamlInfo parsedToscaYamlInfo = new ParsedToscaYamlInfo();
@@ -145,15 +144,14 @@ public class YamlTemplateParsingHandler {
         parsedToscaYamlInfo.setInputs(getInputs(mappedTopologyTemplateInputs));
         parsedToscaYamlInfo.setInstances(getInstances(mappedToscaTemplate, createdNodesToscaResourceNames));
         parsedToscaYamlInfo.setGroups(getGroups(mappedToscaTemplate, component.getModel()));
-        if (component instanceof Resource) {
-            parsedToscaYamlInfo.setPolicies(getPolicies(fileName, mappedToscaTemplate, component.getModel()));
-        }
-        if (getSubstitutionMappings(mappedToscaTemplate) != null) {
+        parsedToscaYamlInfo.setPolicies(getPolicies(mappedToscaTemplate, component.getModel()));
+        Map<String, Object> substitutionMappings = getSubstitutionMappings(mappedToscaTemplate);
+        if (substitutionMappings != null) {
             if (component.isService() && !interfaceTemplateYaml.isEmpty()) {
                 parsedToscaYamlInfo.setProperties(getProperties(loadYamlAsStrictMap(interfaceTemplateYaml)));
                 parsedToscaYamlInfo.setSubstitutionFilterProperties(getSubstitutionFilterProperties(mappedToscaTemplate));
             }
-            parsedToscaYamlInfo.setSubstitutionMappingNodeType((String) getSubstitutionMappings(mappedToscaTemplate).get(NODE_TYPE.getElementName()));
+            parsedToscaYamlInfo.setSubstitutionMappingNodeType((String) substitutionMappings.get(NODE_TYPE.getElementName()));
         }
         log.debug("#parseResourceInfoFromYAML - The yaml {} has been parsed ", fileName);
         return parsedToscaYamlInfo;
@@ -230,10 +228,13 @@ public class YamlTemplateParsingHandler {
         return constraints;
     }
 
-    private Map<String, PolicyDefinition> getPolicies(String fileName, Map<String, Object> toscaJson, String model) {
-        Map<String, Object> foundPolicies = findFirstToscaMapElement(toscaJson, POLICIES).left().on(err -> logPoliciesNotFound(fileName));
+    private Map<String, PolicyDefinition> getPolicies(Map<String, Object> toscaJson, String model) {
+        Map<String, Object> mappedTopologyTemplate = (Map<String, Object>) findToscaElement(toscaJson, TOPOLOGY_TEMPLATE, ToscaElementTypeEnum.ALL)
+            .left().on(err -> new HashMap<>());
+        Map<String, Object> foundPolicies = (Map<String, Object>) mappedTopologyTemplate.get(POLICIES.getElementName());
         if (MapUtils.isNotEmpty(foundPolicies)) {
-            return foundPolicies.entrySet().stream().map(policyToCreate -> createPolicy(policyToCreate, model)).collect(Collectors.toMap(PolicyDefinition::getName, p -> p));
+            return foundPolicies.entrySet().stream().map(policyToCreate -> createPolicy(policyToCreate, model))
+                .collect(Collectors.toMap(PolicyDefinition::getName, p -> p));
         }
         return Collections.emptyMap();
     }
@@ -257,11 +258,6 @@ public class YamlTemplateParsingHandler {
         return emptyPolicyDef;
     }
 
-    private Map<String, Object> logPoliciesNotFound(String fileName) {
-        log.debug("#logPoliciesNotFound - Policies were not found in the yaml template {}.", fileName);
-        return Collections.emptyMap();
-    }
-
     private void validateAndFillPolicy(PolicyDefinition emptyPolicyDefinition, Map<String, Object> policyTemplateJsonMap, String model) {
         String policyTypeName = (String) policyTemplateJsonMap.get(TYPE.getElementName());
         if (StringUtils.isEmpty(policyTypeName)) {
@@ -364,25 +360,6 @@ public class YamlTemplateParsingHandler {
         return new HashMap<>();
     }
 
-    private boolean matcheKey(Map<String, Object> foundGroups) {
-        if (foundGroups != null && !foundGroups.isEmpty()) {
-            for (Map.Entry<String, Object> stringObjectEntry : foundGroups.entrySet()) {
-                String key = stringObjectEntry.getKey();
-                if (key.contains("group")) {
-                    if (foundGroups.get(key) instanceof Map) {
-                        return true;
-                    }
-                }
-            }
-        }
-        return false;
-    }
-
-    private Map<String, Object> logGroupsNotFound(String fileName) {
-        log.debug("#logGroupsNotFound - Groups were not found in the yaml template {}.", fileName);
-        return new HashMap<>();
-    }
-
     private void updateCapabilitiesNames(GroupDefinition group, Map<String, String> capabilityNames) {
         if (MapUtils.isNotEmpty(group.getCapabilities())) {
             group.getCapabilities().values().stream().flatMap(Collection::stream).filter(cap -> capabilityNames.containsKey(cap.getName()))
@@ -593,7 +570,7 @@ public class YamlTemplateParsingHandler {
         if (CollectionUtils.isNotEmpty(missingProperties)) {
             if (log.isDebugEnabled()) {
                 log.debug("#validateProperties - Failed to validate properties. The properties {} are missing on {} of the type {}. ",
-                        missingProperties.toString(), name, type);
+                    missingProperties.toString(), name, type);
             }
             rollbackWithException(actionStatus, missingProperties.toString(), missingProperties.toString(), name, type);
         }
@@ -1045,7 +1022,7 @@ public class YamlTemplateParsingHandler {
 
     @SuppressWarnings("unchecked")
     private void findAndFillInputRecursively(Map<String, Object> propValue, UploadPropInfo propertyDef) {
-        for (Map.Entry<String,Object> entry : propValue.entrySet()) {
+        for (Map.Entry<String, Object> entry : propValue.entrySet()) {
             String propName = entry.getKey();
             Object value = entry.getValue();
             if (value instanceof Map) {
@@ -1057,9 +1034,7 @@ public class YamlTemplateParsingHandler {
     }
 
     private void fillInputsRecursively(UploadPropInfo propertyDef, String propName, List<Object> inputs) {
-        inputs.stream()
-                .filter(Map.class::isInstance)
-                .forEach(o -> fillInputRecursively(propName, (Map<String, Object>) o, propertyDef));
+        inputs.stream().filter(Map.class::isInstance).forEach(o -> fillInputRecursively(propName, (Map<String, Object>) o, propertyDef));
     }
 
     @SuppressWarnings("unchecked")
@@ -1102,8 +1077,8 @@ public class YamlTemplateParsingHandler {
     private void failOnMissingCapabilityTypes(GroupDefinition groupDefinition, List<String> missingCapTypes) {
         if (log.isDebugEnabled()) {
             log.debug(
-                    "#failOnMissingCapabilityTypes - Failed to validate the capabilities of the group {}. The capability types {} are missing on the group type {}. ",
-                    groupDefinition.getName(), missingCapTypes.toString(), groupDefinition.getType());
+                "#failOnMissingCapabilityTypes - Failed to validate the capabilities of the group {}. The capability types {} are missing on the group type {}. ",
+                groupDefinition.getName(), missingCapTypes.toString(), groupDefinition.getType());
         }
         if (CollectionUtils.isNotEmpty(missingCapTypes)) {
             rollbackWithException(ActionStatus.MISSING_CAPABILITY_TYPE, missingCapTypes.toString());
@@ -1113,8 +1088,8 @@ public class YamlTemplateParsingHandler {
     private void failOnMissingCapabilityNames(GroupDefinition groupDefinition, List<String> missingCapNames) {
         if (log.isDebugEnabled()) {
             log.debug(
-                    "#failOnMissingCapabilityNames - Failed to validate the capabilities of the group {}. The capabilities with the names {} are missing on the group type {}. ",
-                    groupDefinition.getName(), missingCapNames.toString(), groupDefinition.getType());
+                "#failOnMissingCapabilityNames - Failed to validate the capabilities of the group {}. The capabilities with the names {} are missing on the group type {}. ",
+                groupDefinition.getName(), missingCapNames.toString(), groupDefinition.getType());
         }
         rollbackWithException(ActionStatus.MISSING_CAPABILITIES, missingCapNames.toString(), CapabilityDataDefinition.OwnerType.GROUP.getValue(),
             groupDefinition.getName());
index 4268d91..a1f2829 100644 (file)
@@ -42,9 +42,9 @@ import org.openecomp.sdc.be.components.validation.UserValidations;
 import org.openecomp.sdc.be.config.BeEcompErrorManager;
 import org.openecomp.sdc.be.config.BeEcompErrorManager.ErrorSeverity;
 import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.dao.janusgraph.JanusGraphDao;
 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao;
 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
-import org.openecomp.sdc.be.dao.janusgraph.JanusGraphDao;
 import org.openecomp.sdc.be.datamodel.utils.ArtifactUtils;
 import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
 import org.openecomp.sdc.be.datatypes.elements.PropertyRule;
@@ -579,7 +579,7 @@ public abstract class BaseBusinessLogic {
                 DataTypeDefinition dataTypeDefinition = dataTypes.get(propertyType);
                 if (dataTypeDefinition == null) {
                     log.debug(INVALID_PROPERTY_TYPE, propertyType);
-                    return Either.right(false); 
+                    return Either.right(false);
                 }
                 ImmutablePair<JsonElement, Boolean> validateResult = dataTypeValidatorConverter
                     .validateAndUpdate(value, dataTypeDefinition, dataTypes);
index 6625d72..4372564 100644 (file)
@@ -104,6 +104,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 public abstract class ComponentBusinessLogic extends BaseBusinessLogic {
 
     private static final Logger log = Logger.getLogger(ComponentBusinessLogic.class.getName());
+
     protected final GroupBusinessLogic groupBusinessLogic;
     protected ArtifactsBusinessLogic artifactsBusinessLogic;
     protected GenericTypeBusinessLogic genericTypeBusinessLogic;
@@ -432,8 +433,9 @@ public abstract class ComponentBusinessLogic extends BaseBusinessLogic {
         Either<List<Component>, StorageOperationStatus> nonCheckoutCompResponse = null;
         try {
             validateUserExists(userId);
-           nonCheckoutCompResponse = toscaOperationFacade
-                .getLatestVersionNotAbstractMetadataOnly(isAbstractAbstract, componentTypeEnum, internalComponentType, modelName, includeNormativeExtensionModels);
+            nonCheckoutCompResponse = toscaOperationFacade
+                .getLatestVersionNotAbstractMetadataOnly(isAbstractAbstract, componentTypeEnum, internalComponentType, modelName,
+                    includeNormativeExtensionModels);
             if (nonCheckoutCompResponse.isLeft()) {
                 log.debug("Retrieved Resource successfully.");
                 return Either.left(nonCheckoutCompResponse.left().value());
@@ -441,7 +443,7 @@ public abstract class ComponentBusinessLogic extends BaseBusinessLogic {
             return Either
                 .right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(nonCheckoutCompResponse.right().value())));
         } finally {
-            if(nonCheckoutCompResponse != null && nonCheckoutCompResponse.isLeft() ) {
+            if (nonCheckoutCompResponse != null && nonCheckoutCompResponse.isLeft()) {
                 janusGraphDao.commit();
             }
         }
@@ -547,7 +549,7 @@ public abstract class ComponentBusinessLogic extends BaseBusinessLogic {
         final ArtifactDefinition csarArtifact = component.getToscaArtifacts().values().stream()
             .filter(p -> p.getArtifactType().equals(ArtifactTypeEnum.TOSCA_CSAR.getType())).findAny().orElseThrow(() -> {
                 throw new ByResponseFormatComponentException(
-                        componentsUtils.getResponseFormat(ActionStatus.ARTIFACT_NOT_FOUND, ArtifactTypeEnum.TOSCA_CSAR.name()));
+                    componentsUtils.getResponseFormat(ActionStatus.ARTIFACT_NOT_FOUND, ArtifactTypeEnum.TOSCA_CSAR.name()));
             });
         return artifactsBusinessLogic.handleDownloadToscaModelRequest(component, csarArtifact);
     }
@@ -691,7 +693,7 @@ public abstract class ComponentBusinessLogic extends BaseBusinessLogic {
         });
         return componentNonGenericInputs;
     }
-    
+
     protected void generatePropertiesFromGenericType(final Component component, final Resource genericType) {
         if (CollectionUtils.isEmpty(genericType.getProperties())) {
             return;
@@ -708,6 +710,7 @@ public abstract class ComponentBusinessLogic extends BaseBusinessLogic {
         }
         component.getProperties().forEach(propertyDefinition -> propertyDefinition.setUniqueId(null));
     }
+
     protected <T extends Component> Resource fetchAndSetDerivedFromGenericType(final T component) {
         return fetchAndSetDerivedFromGenericType(component, null);
     }
@@ -916,7 +919,7 @@ public abstract class ComponentBusinessLogic extends BaseBusinessLogic {
         if (validPropertiesMerge.isRight()) {
             if (log.isDebugEnabled()) {
                 log.debug("property {} cannot be overriden, check out performed without upgrading to latest generic",
-                        validPropertiesMerge.right().value());
+                    validPropertiesMerge.right().value());
             }
             return false;
         }
@@ -926,7 +929,7 @@ public abstract class ComponentBusinessLogic extends BaseBusinessLogic {
         if (validAttributesMerge.isRight()) {
             if (log.isDebugEnabled()) {
                 log.debug("attribute {} cannot be overriden, check out performed without upgrading to latest generic",
-                        validAttributesMerge.right().value());
+                    validAttributesMerge.right().value());
             }
             return false;
         }
@@ -998,7 +1001,7 @@ public abstract class ComponentBusinessLogic extends BaseBusinessLogic {
     protected Either<Component, ResponseFormat> updateCatalog(Component component, ChangeTypeEnum changeStatus) {
         if (log.isDebugEnabled()) {
             log.debug("update Catalog start with Component Type {} And Componet Name {} with change status {}",
-                    component.getComponentType().name(),component.getName(), changeStatus.name());
+                component.getComponentType().name(), component.getName(), changeStatus.name());
         }
         ActionStatus status = catalogOperations.updateCatalog(changeStatus, component);
         if (status != ActionStatus.OK) {
index 3a1c55a..7719187 100644 (file)
@@ -177,10 +177,9 @@ public final class ImportUtils {
 
     public static Either<Object, ResultStatusEnum> findToscaElement(Map<String, Object> toscaJson, TypeUtils.ToscaTagNamesEnum elementName,
                                                                     ToscaElementTypeEnum elementType) {
-        List<Object> foundElements = new ArrayList<>();
-        findToscaElements(toscaJson, elementName.getElementName(), elementType, foundElements);
-        if (!isEmpty(foundElements)) {
-            return Either.left(foundElements.get(0));
+        final var toscaElements = findToscaElements(toscaJson, elementName.getElementName(), elementType, new ArrayList<>());
+        if (toscaElements.isLeft() && CollectionUtils.isNotEmpty(toscaElements.left().value())) {
+            return Either.left(toscaElements.left().value().get(0));
         }
         return Either.right(ResultStatusEnum.ELEMENT_NOT_FOUND);
     }
index f8aab3d..2f01ef3 100644 (file)
@@ -46,6 +46,7 @@ import org.openecomp.sdc.be.components.property.PropertyDeclarationOrchestrator;
 import org.openecomp.sdc.be.components.validation.PolicyUtils;
 import org.openecomp.sdc.be.dao.api.ActionStatus;
 import org.openecomp.sdc.be.datatypes.elements.GetPolicyValueDataDefinition;
+import org.openecomp.sdc.be.datatypes.elements.GroupDataDefinition;
 import org.openecomp.sdc.be.datatypes.elements.PolicyTargetType;
 import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
@@ -125,33 +126,32 @@ public class PolicyBusinessLogic extends BaseBusinessLogic {
         }
     }
 
-    public Map<String, PolicyDefinition> createPoliciesFromParsedCsar(Component component,
-                                                                      final Map<String, PolicyDefinition> incomingPolicyDefinitions) {
+    public Map<String, PolicyDefinition> createPolicies(final Component component,
+                                                        final Map<String, PolicyDefinition> incomingPolicyDefinitions) {
         if (MapUtils.isEmpty(incomingPolicyDefinitions)) {
             return Collections.emptyMap();
         }
-        Map<String, PolicyDefinition> createdPolicies = new HashMap<>();
-        for (Map.Entry<String, PolicyDefinition> policyEntry : incomingPolicyDefinitions.entrySet()) {
-            PolicyDefinition incomingPolicyDefinition = policyEntry.getValue();
-            String policyName = incomingPolicyDefinition.getName();
+        final Map<String, PolicyDefinition> createdPolicies = new HashMap<>();
+        for (final PolicyDefinition incomingPolicyDefinition : incomingPolicyDefinitions.values()) {
+            final String policyName = incomingPolicyDefinition.getName();
             log.trace("Going to create policy {}", incomingPolicyDefinition);
             loggerSupportability
                 .log(LoggerSupportabilityActions.CREATE_GROUP_POLICY, component.getComponentMetadataForSupportLog(), StatusCode.STARTED,
                     "Start to create policy: {} for component {}", policyName, component.getName());
-            String policyType = incomingPolicyDefinition.getType();
+            final String policyType = incomingPolicyDefinition.getType();
             if (StringUtils.isEmpty(policyType)) {
                 log.debug("Policy type '{}' for policy '{}' not found.", policyType, policyName);
                 throw new ByActionStatusComponentException(ActionStatus.POLICY_MISSING_POLICY_TYPE, policyName);
             }
             // create policyDefinition
-            String policyTypeName = incomingPolicyDefinition.getPolicyTypeName();
+            final String policyTypeName = incomingPolicyDefinition.getPolicyTypeName();
             PolicyDefinition createdPolicyDefinition = createPolicy(policyTypeName, component);
             // set isFromCsar
             createdPolicyDefinition.setToscaPresentationValue(JsonPresentationFields.IS_FROM_CSAR, true);
             // link policy to component
             component.addPolicy(createdPolicyDefinition);
             // process targets
-            Map<PolicyTargetType, List<String>> policyTargets = incomingPolicyDefinition.getTargets();
+            final Map<PolicyTargetType, List<String>> policyTargets = incomingPolicyDefinition.getTargets();
             createdPolicyDefinition = setUpdatePolicyTargets(component, createdPolicyDefinition, policyTargets);
             // process policy properties
             List<PropertyDataDefinition> properties = incomingPolicyDefinition.getProperties();
@@ -179,38 +179,60 @@ public class PolicyBusinessLogic extends BaseBusinessLogic {
         if (MapUtils.isEmpty(targets)) {
             return policyDefinition;
         }
-        List<String> targetsToUpdate = targets.get(PolicyTargetType.COMPONENT_INSTANCES);
-        if (CollectionUtils.isEmpty(targetsToUpdate)) {
+        final List<String> componentInstancesTargetsToUpdate = targets.get(PolicyTargetType.COMPONENT_INSTANCES);
+        final List<String> groupsTargetsToUpdate = targets.get(PolicyTargetType.GROUPS);
+        if (CollectionUtils.isEmpty(componentInstancesTargetsToUpdate) && CollectionUtils.isEmpty(groupsTargetsToUpdate)) {
             return policyDefinition;
         }
+
+        final List<String> allTargets = joinLists(componentInstancesTargetsToUpdate, groupsTargetsToUpdate);
+
         // update targets to uniqueIds of respective component instance
-        List<String> targetsUniqueIds = new ArrayList<>();
-        for (String targetName : targetsToUpdate) {
-            Optional<ComponentInstance> componentInstance = component.getComponentInstanceByName(targetName);
-            String componentUniqueId = componentInstance
-                .orElseThrow(() -> new ByActionStatusComponentException(ActionStatus.COMPONENT_INSTANCE_NOT_FOUND)).getUniqueId();
-            targetsUniqueIds.add(componentUniqueId);
-        }
-        EnumMap<PolicyTargetType, List<String>> updatedTargets = new EnumMap<>(PolicyTargetType.class);
-        updatedTargets.put(PolicyTargetType.COMPONENT_INSTANCES, targetsUniqueIds);
+        final List<String> targetsGroupsUniqueIds = new ArrayList<>();
+        final List<String> targetsInstanceUniqueIds = new ArrayList<>();
+        for (final String targetName : allTargets) {
+            final String groupsTargetUniqueIdForTargetName = getTargetGroupUniqueIdByTargetName(component, targetName);
+            if (groupsTargetUniqueIdForTargetName != null) {
+                targetsGroupsUniqueIds.add(groupsTargetUniqueIdForTargetName);
+            }
+            final String instanceTargetUniqueIdForTargetName = getTargetInstanceUniqueIdByTargetName(component, targetName);
+            if (instanceTargetUniqueIdForTargetName != null) {
+                targetsInstanceUniqueIds.add(instanceTargetUniqueIdForTargetName);
+            }
+        }
+        if (targetsGroupsUniqueIds.isEmpty() && targetsInstanceUniqueIds.isEmpty()) {
+            throw new ByActionStatusComponentException(ActionStatus.POLICY_TARGET_DOES_NOT_EXIST);
+        }
+        final EnumMap<PolicyTargetType, List<String>> updatedTargets = new EnumMap<>(PolicyTargetType.class);
+        if (!targetsGroupsUniqueIds.isEmpty()) {
+            updatedTargets.put(PolicyTargetType.GROUPS, targetsGroupsUniqueIds);
+        }
+        if (!targetsInstanceUniqueIds.isEmpty()) {
+            updatedTargets.put(PolicyTargetType.COMPONENT_INSTANCES, targetsInstanceUniqueIds);
+        }
         policyDefinition.setTargets(updatedTargets);
-        policyDefinition = validateAndUpdatePolicyTargets(component, policyDefinition.getUniqueId(), policyDefinition.getTargets());
-        return policyDefinition;
+        return validateAndUpdatePolicyTargets(component, policyDefinition.getUniqueId(), policyDefinition.getTargets());
     }
 
-    public Either<List<PolicyDefinition>, ResponseFormat> getPoliciesList(ComponentTypeEnum componentType, String componentId, String userId) {
-        Either<List<PolicyDefinition>, ResponseFormat> result;
-        log.trace("#getPolicies - starting to retrieve policies of component {}. ", componentId);
-        try {
-            Component component = validateContainerComponentAndUserBeforeReadOperation(componentType, componentId, userId);
-            result = Either.left(component.resolvePoliciesList());
-        } catch (Exception e) {
-            log.error("#getPolicy - the exception occurred upon retrieving policies list of component {}: ", componentId, e);
-            result = Either.right(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR));
+    private List<String> joinLists(final List<String> a, final List<String> b) {
+        final List<String> result = new ArrayList<>();
+        if (CollectionUtils.isNotEmpty(a)) {
+            result.addAll(a);
+        }
+        if (CollectionUtils.isNotEmpty(b)) {
+            result.addAll(b);
         }
         return result;
     }
 
+    private String getTargetGroupUniqueIdByTargetName(final Component component, final String targetName) {
+        return component.getGroupByInvariantName(targetName).map(GroupDataDefinition::getUniqueId).orElse(null);
+    }
+
+    private String getTargetInstanceUniqueIdByTargetName(final Component component, final String targetName) {
+        return component.getComponentInstanceByName(targetName).map(ComponentInstance::getUniqueId).orElse(null);
+    }
+
     /**
      * Retrieves the policy of the component by UniqueId
      *
@@ -266,7 +288,6 @@ public class PolicyBusinessLogic extends BaseBusinessLogic {
      * @return a policy or an error in a response format
      */
     public PolicyDefinition deletePolicy(ComponentTypeEnum componentType, String componentId, String policyId, String userId, boolean shouldLock) {
-        PolicyDefinition result = null;
         log.trace("#deletePolicy - starting to update the policy {} on the component {}. ", policyId, componentId);
         Component component = null;
         boolean failed = false;
@@ -358,7 +379,6 @@ public class PolicyBusinessLogic extends BaseBusinessLogic {
 
     public PolicyDefinition updatePolicyTargets(ComponentTypeEnum componentTypeEnum, String componentId, String policyId,
                                                 Map<PolicyTargetType, List<String>> targets, String userId) {
-        Either<PolicyDefinition, ResponseFormat> result = null;
         log.debug("updating the policy id {} targets with the components {}. ", policyId, componentId);
         boolean failed = false;
         try {
@@ -554,7 +574,7 @@ public class PolicyBusinessLogic extends BaseBusinessLogic {
     }
 
     private PolicyTypeDefinition validatePolicyTypeOnCreatePolicy(String policyTypeName, Component component) {
-        Either<PolicyTypeDefinition, StorageOperationStatus> latestPolicyTypeByType = policyTypeOperation.getLatestPolicyTypeByType(policyTypeName, component.getModel());
+        final var latestPolicyTypeByType = policyTypeOperation.getLatestPolicyTypeByType(policyTypeName, component.getModel());
         if (latestPolicyTypeByType.isRight()) {
             throw new ByActionStatusComponentException(componentsUtils.convertFromStorageResponse(latestPolicyTypeByType.right().value()));
         }
index 6d5829e..1f107e4 100644 (file)
@@ -1762,7 +1762,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
     }
 
     private Resource createPoliciesOnResource(Resource resource, Map<String, PolicyDefinition> policies) {
-        policyBusinessLogic.createPoliciesFromParsedCsar(resource, policies);
+        policyBusinessLogic.createPolicies(resource, policies);
         return resource;
     }
 
@@ -1929,7 +1929,7 @@ public class ResourceBusinessLogic extends ComponentBusinessLogic {
                 .addPropertyToComponent(propertyDefinition, resource);
 
             if (addPropertyEither.isRight()) {
-                final String error = String.format("failed to add properties from yaml: {}", addPropertyEither.right().value());
+                final String error = String.format("failed to add properties from yaml: %s", addPropertyEither.right().value());
                 loggerSupportability.log(LoggerSupportabilityActions.CREATE_PROPERTIES, resource.getComponentMetadataForSupportLog(),
                     StatusCode.ERROR,
                     error);
index 8dac6ff..2cccc31 100644 (file)
@@ -100,9 +100,9 @@ import org.openecomp.sdc.be.datatypes.elements.OperationOutputDefinition;
 import org.openecomp.sdc.be.datatypes.enums.ComponentFieldsEnum;
 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
 import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields;
+import org.openecomp.sdc.be.datatypes.enums.ModelTypeEnum;
 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
 import org.openecomp.sdc.be.datatypes.enums.OriginTypeEnum;
-import org.openecomp.sdc.be.datatypes.enums.ModelTypeEnum;
 import org.openecomp.sdc.be.externalapi.servlet.representation.ServiceDistributionReqInfo;
 import org.openecomp.sdc.be.impl.ForwardingPathUtils;
 import org.openecomp.sdc.be.impl.WebAppContextWrapper;
@@ -119,12 +119,12 @@ import org.openecomp.sdc.be.model.GroupInstanceProperty;
 import org.openecomp.sdc.be.model.InputDefinition;
 import org.openecomp.sdc.be.model.InterfaceDefinition;
 import org.openecomp.sdc.be.model.LifecycleStateEnum;
+import org.openecomp.sdc.be.model.Model;
 import org.openecomp.sdc.be.model.Operation;
 import org.openecomp.sdc.be.model.PropertyDefinition;
 import org.openecomp.sdc.be.model.Resource;
 import org.openecomp.sdc.be.model.Service;
 import org.openecomp.sdc.be.model.User;
-import org.openecomp.sdc.be.model.Model;
 import org.openecomp.sdc.be.model.category.CategoryDefinition;
 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ArtifactsOperations;
 import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ForwardingPathOperation;
@@ -184,22 +184,19 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
     private final ServiceDistributionValidation serviceDistributionValidation;
     private final ForwardingPathValidator forwardingPathValidator;
     private final UiComponentDataConverter uiComponentDataConverter;
+    private final ModelOperation modelOperation;
+    private final ServiceRoleValidator serviceRoleValidator;
+    private final ServiceInstantiationTypeValidator serviceInstantiationTypeValidator;
+    private final ServiceCategoryValidator serviceCategoryValidator;
+    private final ServiceValidator serviceValidator;
+    private final PolicyBusinessLogic policyBusinessLogic;
+    private final GroupBusinessLogic groupBusinessLogic;
     private ForwardingPathOperation forwardingPathOperation;
     private AuditCassandraDao auditCassandraDao;
     private ServiceTypeValidator serviceTypeValidator;
     private List<ServiceCreationPlugin> serviceCreationPluginList;
     private ServiceFunctionValidator serviceFunctionValidator;
-    @Autowired
-    private ServiceRoleValidator serviceRoleValidator;
-    @Autowired
-    private ServiceInstantiationTypeValidator serviceInstantiationTypeValidator;
-    @Autowired
-    private ServiceCategoryValidator serviceCategoryValidator;
-    @Autowired
-    private ServiceValidator serviceValidator;
-    private final ModelOperation modelOperation;
 
-    @Autowired
     public ServiceBusinessLogic(IElementOperation elementDao, IGroupOperation groupOperation, IGroupInstanceOperation groupInstanceOperation,
                                 IGroupTypeOperation groupTypeOperation, GroupBusinessLogic groupBusinessLogic, InterfaceOperation interfaceOperation,
                                 InterfaceLifecycleOperation interfaceLifecycleTypeOperation, ArtifactsBusinessLogic artifactsBusinessLogic,
@@ -209,7 +206,11 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
                                 ComponentContactIdValidator componentContactIdValidator, ComponentNameValidator componentNameValidator,
                                 ComponentTagsValidator componentTagsValidator, ComponentValidator componentValidator,
                                 ComponentIconValidator componentIconValidator, ComponentProjectCodeValidator componentProjectCodeValidator,
-                                ComponentDescriptionValidator componentDescriptionValidator, ModelOperation modelOperation) {
+                                ComponentDescriptionValidator componentDescriptionValidator, ModelOperation modelOperation,
+                                final ServiceRoleValidator serviceRoleValidator,
+                                final ServiceInstantiationTypeValidator serviceInstantiationTypeValidator,
+                                final ServiceCategoryValidator serviceCategoryValidator, final ServiceValidator serviceValidator,
+                                final PolicyBusinessLogic policyBusinessLogic) {
         super(elementDao, groupOperation, groupInstanceOperation, groupTypeOperation, groupBusinessLogic, interfaceOperation,
             interfaceLifecycleTypeOperation, artifactsBusinessLogic, artifactToscaOperation, componentContactIdValidator, componentNameValidator,
             componentTagsValidator, componentValidator, componentIconValidator, componentProjectCodeValidator, componentDescriptionValidator);
@@ -219,6 +220,12 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
         this.forwardingPathValidator = forwardingPathValidator;
         this.uiComponentDataConverter = uiComponentDataConverter;
         this.modelOperation = modelOperation;
+        this.serviceRoleValidator = serviceRoleValidator;
+        this.serviceInstantiationTypeValidator = serviceInstantiationTypeValidator;
+        this.serviceCategoryValidator = serviceCategoryValidator;
+        this.serviceValidator = serviceValidator;
+        this.policyBusinessLogic = policyBusinessLogic;
+        this.groupBusinessLogic = groupBusinessLogic;
     }
 
     @Autowired
@@ -637,16 +644,6 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
         return Either.left(archiveAudit);
     }
 
-    @VisibleForTesting
-    public void setServiceValidator(ServiceValidator serviceValidator) {
-        this.serviceValidator = serviceValidator;
-    }
-
-    @VisibleForTesting
-    public void setServiceCategoryValidator(ServiceCategoryValidator serviceCategoryValidator) {
-        this.serviceCategoryValidator = serviceCategoryValidator;
-    }
-
     private List<Map<String, Object>> getAuditingFieldsList(List<? extends AuditingGenericEvent> prevVerAuditList) {
         List<Map<String, Object>> prevVerAudit = new ArrayList<>();
         for (AuditingGenericEvent auditEvent : prevVerAuditList) {
@@ -666,7 +663,7 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
     public Either<Service, ResponseFormat> createService(Service service, User user) {
         // get user details
         user = validateUser(user, "Create Service", service, AuditingActionEnum.CREATE_RESOURCE, false);
-        log.debug("User returned from validation: " + user.toString());
+        log.debug("User returned from validation: {}", user);
         // validate user role
         validateUserRole(user, service, new ArrayList<>(), AuditingActionEnum.CREATE_RESOURCE, null);
         service.setCreatorUserId(user.getUserId());
@@ -683,7 +680,7 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
         if (createServiceResponse.isRight()) {
             return createServiceResponse;
         }
-        return createServiceByDao(service, user).left().bind(c -> updateCatalog(c, ChangeTypeEnum.LIFECYCLE).left().map(r -> (Service) r));
+        return createServiceByDao(service, user).left().bind(c -> updateCatalog(c, ChangeTypeEnum.LIFECYCLE).left().map(Service.class::cast));
     }
 
     private void checkFieldsForOverideAttampt(Service service) {
@@ -863,14 +860,14 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
                 BeEcompErrorManager.getInstance().logBeSystemError("Update Service Metadata");
                 log.debug("failed to update sevice {}", serviceToUpdate.getUniqueId());
                 return (componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR));
-            }).left().bind(c -> updateCatalogAndCommit(c));
+            }).left().bind(this::updateCatalogAndCommit);
         } finally {
             graphLockOperation.unlockComponent(serviceId, NodeTypeEnum.Service);
         }
     }
 
     private Either<Service, ResponseFormat> updateCatalogAndCommit(Service service) {
-        Either<Service, ResponseFormat> res = updateCatalog(service, ChangeTypeEnum.LIFECYCLE).left().map(s -> (Service) s);
+        Either<Service, ResponseFormat> res = updateCatalog(service, ChangeTypeEnum.LIFECYCLE).left().map(Service.class::cast);
         janusGraphDao.commit();
         return res;
     }
@@ -1483,7 +1480,7 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
                                                         Boolean isServiceApi) {
         ArtifactDefinition artifactInfo = artifactsBusinessLogic
             .createArtifactPlaceHolderInfo(serviceId, logicalName, artifactInfoMap, user, ArtifactGroupTypeEnum.INFORMATIONAL);
-        if (isServiceApi) {
+        if (Boolean.TRUE.equals(isServiceApi)) {
             artifactInfo.setMandatory(false);
             artifactInfo.setServiceApi(true);
         }
@@ -1556,7 +1553,7 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
             return Either.right(response);
         }
         Service service = serviceRes.left().value();
-        if (service.isArchived()) {
+        if (Boolean.TRUE.equals(service.isArchived())) {
             log.info("Component is archived. Component id: {}", serviceId);
             return Either.right(componentsUtils.getResponseFormat(ActionStatus.COMPONENT_IS_ARCHIVED, service.getName()));
         }
@@ -1658,123 +1655,6 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
         return asList;
     }
 
-    private List<GroupInstance> collectGroupsInstanceForCompInstance(ComponentInstance currVF) {
-        Map<String, ArtifactDefinition> deploymentArtifacts = currVF.getDeploymentArtifacts();
-        if (currVF.getGroupInstances() != null) {
-            currVF.getGroupInstances().forEach(gi -> gi.alignArtifactsUuid(deploymentArtifacts));
-        }
-        return currVF.getGroupInstances();
-    }
-
-    private ArtifactDefinition getVfModuleInstArtifactForCompInstance(ComponentInstance currVF, Service service, Wrapper<String> payloadWrapper,
-                                                                      Wrapper<ResponseFormat> responseWrapper) {
-        ArtifactDefinition vfModuleAertifact = null;
-        if (MapUtils.isNotEmpty(currVF.getDeploymentArtifacts())) {
-            final Optional<ArtifactDefinition> optionalVfModuleArtifact = currVF.getDeploymentArtifacts().values().stream()
-                .filter(p -> p.getArtifactType().equals(ArtifactTypeEnum.VF_MODULES_METADATA.getType())).findAny();
-            if (optionalVfModuleArtifact.isPresent()) {
-                vfModuleAertifact = optionalVfModuleArtifact.get();
-            }
-        }
-        if (vfModuleAertifact == null) {
-            Either<ArtifactDefinition, ResponseFormat> createVfModuleArtifact = createVfModuleArtifact(currVF, service,
-                payloadWrapper.getInnerElement());
-            if (createVfModuleArtifact.isLeft()) {
-                vfModuleAertifact = createVfModuleArtifact.left().value();
-            } else {
-                responseWrapper.setInnerElement(createVfModuleArtifact.right().value());
-            }
-        }
-        return vfModuleAertifact;
-    }
-
-    private void fillVfModuleInstHeatEnvPayload(List<GroupInstance> groupsForCurrVF, Wrapper<String> payloadWrapper) {
-        List<VfModuleArtifactPayload> vfModulePayloads = new ArrayList<>();
-        if (groupsForCurrVF != null) {
-            for (GroupInstance groupInstance : groupsForCurrVF) {
-                VfModuleArtifactPayload modulePayload = new VfModuleArtifactPayload(groupInstance);
-                vfModulePayloads.add(modulePayload);
-            }
-            vfModulePayloads.sort(VfModuleArtifactPayload::compareByGroupName);
-            final Gson gson = new GsonBuilder().setPrettyPrinting().create();
-            String vfModulePayloadString = gson.toJson(vfModulePayloads);
-            payloadWrapper.setInnerElement(vfModulePayloadString);
-        }
-    }
-
-    private Either<ArtifactDefinition, ResponseFormat> generateVfModuleInstanceArtifact(User modifier, ComponentInstance currVFInstance,
-                                                                                        Service service, boolean shouldLock, boolean inTransaction) {
-        ArtifactDefinition vfModuleArtifact = null;
-        Wrapper<ResponseFormat> responseWrapper = new Wrapper<>();
-        Wrapper<String> payloadWrapper = new Wrapper<>();
-        List<GroupInstance> groupsForCurrVF = collectGroupsInstanceForCompInstance(currVFInstance);
-        if (responseWrapper.isEmpty()) {
-            fillVfModuleInstHeatEnvPayload(groupsForCurrVF, payloadWrapper);
-        }
-        if (responseWrapper.isEmpty() && payloadWrapper.getInnerElement() != null) {
-            vfModuleArtifact = getVfModuleInstArtifactForCompInstance(currVFInstance, service, payloadWrapper, responseWrapper);
-        }
-        if (responseWrapper.isEmpty() && vfModuleArtifact != null) {
-            vfModuleArtifact = fillVfModulePayload(modifier, currVFInstance, vfModuleArtifact, shouldLock, inTransaction, payloadWrapper,
-                responseWrapper, service);
-        }
-        Either<ArtifactDefinition, ResponseFormat> result;
-        if (responseWrapper.isEmpty()) {
-            result = Either.left(vfModuleArtifact);
-        } else {
-            result = Either.right(responseWrapper.getInnerElement());
-        }
-        return result;
-    }
-
-    private ArtifactDefinition fillVfModulePayload(User modifier, ComponentInstance currVF, ArtifactDefinition vfModuleArtifact, boolean shouldLock,
-                                                   boolean inTransaction, Wrapper<String> payloadWrapper, Wrapper<ResponseFormat> responseWrapper,
-                                                   Service service) {
-        ArtifactDefinition result = null;
-        Either<ArtifactDefinition, ResponseFormat> eitherPayload = artifactsBusinessLogic
-            .generateArtifactPayload(vfModuleArtifact, ComponentTypeEnum.RESOURCE_INSTANCE, service, currVF.getName(), modifier, shouldLock,
-                inTransaction, System::currentTimeMillis, () -> Either.left(
-                    artifactsBusinessLogic.createEsArtifactData(vfModuleArtifact, payloadWrapper.getInnerElement().getBytes(StandardCharsets.UTF_8))),
-                currVF.getUniqueId());
-        if (eitherPayload.isLeft()) {
-            result = eitherPayload.left().value();
-        } else {
-            responseWrapper.setInnerElement(eitherPayload.right().value());
-        }
-        if (result == null) {
-            result = vfModuleArtifact;
-        }
-        return result;
-    }
-
-    private Either<ArtifactDefinition, ResponseFormat> createVfModuleArtifact(ComponentInstance currVF, Service service,
-                                                                              String vfModulePayloadString) {
-        ArtifactDefinition vfModuleArtifactDefinition = new ArtifactDefinition();
-        String newCheckSum = null;
-        vfModuleArtifactDefinition.setDescription("Auto-generated VF Modules information artifact");
-        vfModuleArtifactDefinition.setArtifactDisplayName("Vf Modules Metadata");
-        vfModuleArtifactDefinition.setArtifactType(ArtifactTypeEnum.VF_MODULES_METADATA.getType());
-        vfModuleArtifactDefinition.setArtifactGroupType(ArtifactGroupTypeEnum.DEPLOYMENT);
-        vfModuleArtifactDefinition.setArtifactLabel("vfModulesMetadata");
-        vfModuleArtifactDefinition.setTimeout(0);
-        vfModuleArtifactDefinition.setArtifactName(currVF.getNormalizedName() + "_modules.json");
-        vfModuleArtifactDefinition.setPayloadData(vfModulePayloadString);
-        if (vfModulePayloadString != null) {
-            newCheckSum = GeneralUtility.calculateMD5Base64EncodedByByteArray(vfModulePayloadString.getBytes());
-        }
-        vfModuleArtifactDefinition.setArtifactChecksum(newCheckSum);
-        Either<ArtifactDefinition, StorageOperationStatus> addArtifactToComponent = artifactToscaOperation
-            .addArtifactToComponent(vfModuleArtifactDefinition, service, NodeTypeEnum.ResourceInstance, true, currVF.getUniqueId());
-        Either<ArtifactDefinition, ResponseFormat> result;
-        if (addArtifactToComponent.isLeft()) {
-            result = Either.left(addArtifactToComponent.left().value());
-        } else {
-            result = Either
-                .right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(addArtifactToComponent.right().value())));
-        }
-        return result;
-    }
-
     public Either<Service, ResponseFormat> generateHeatEnvArtifacts(Service service, User modifier, boolean shouldLock, boolean inTransaction) {
         Function<ComponentInstance, List<ArtifactGenerator<ArtifactDefinition>>> artifactTaskGeneratorCreator = resourceInstance ->
             // Get All Deployment Artifacts
@@ -2063,7 +1943,7 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
             log.error("Exception occured during update Group Instance property values: {}", e.getMessage(), e);
             actionResult = Either.right(componentsUtils.getResponseFormat(ActionStatus.GENERAL_ERROR));
         } finally {
-            if (lockResult != null && lockResult.isLeft() && lockResult.left().value()) {
+            if (lockResult != null && lockResult.isLeft() && Boolean.TRUE.equals(lockResult.left().value())) {
                 graphLockOperation.unlockComponentByName(component.getSystemName(), component.getUniqueId(), NodeTypeEnum.Service);
             }
         }
@@ -2249,12 +2129,12 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
         return latestByName.isLeft();
     }
 
-    abstract class ArtifactGenerator<CallVal> implements Callable<Either<CallVal, ResponseFormat>> {
+    interface ArtifactGenerator<CallVal> extends Callable<Either<CallVal, ResponseFormat>> {
 
     }
 
     @Getter
-    class HeatEnvArtifactGenerator extends ArtifactGenerator<ArtifactDefinition> {
+    class HeatEnvArtifactGenerator implements ArtifactGenerator<ArtifactDefinition> {
 
         private ArtifactDefinition artifactDefinition;
         private Service service;
@@ -2283,7 +2163,7 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
         }
     }
 
-    class VfModuleArtifactGenerator extends ArtifactGenerator<ArtifactDefinition> {
+    class VfModuleArtifactGenerator implements ArtifactGenerator<ArtifactDefinition> {
 
         boolean shouldLock;
         boolean inTransaction;
@@ -2301,6 +2181,126 @@ public class ServiceBusinessLogic extends ComponentBusinessLogic {
             this.inTransaction = inTransaction;
         }
 
+        private Either<ArtifactDefinition, ResponseFormat> generateVfModuleInstanceArtifact(User modifier, ComponentInstance currVFInstance,
+                                                                                            Service service, boolean shouldLock,
+                                                                                            boolean inTransaction) {
+            ArtifactDefinition vfModuleArtifact = null;
+            Wrapper<ResponseFormat> responseWrapper = new Wrapper<>();
+            Wrapper<String> payloadWrapper = new Wrapper<>();
+            List<GroupInstance> groupsForCurrVF = collectGroupsInstanceForCompInstance(currVFInstance);
+            if (responseWrapper.isEmpty()) {
+                fillVfModuleInstHeatEnvPayload(groupsForCurrVF, payloadWrapper);
+            }
+            if (responseWrapper.isEmpty() && payloadWrapper.getInnerElement() != null) {
+                vfModuleArtifact = getVfModuleInstArtifactForCompInstance(currVFInstance, service, payloadWrapper, responseWrapper);
+            }
+            if (responseWrapper.isEmpty() && vfModuleArtifact != null) {
+                vfModuleArtifact = fillVfModulePayload(modifier, currVFInstance, vfModuleArtifact, shouldLock, inTransaction, payloadWrapper,
+                    responseWrapper, service);
+            }
+            Either<ArtifactDefinition, ResponseFormat> result;
+            if (responseWrapper.isEmpty()) {
+                result = Either.left(vfModuleArtifact);
+            } else {
+                result = Either.right(responseWrapper.getInnerElement());
+            }
+            return result;
+        }
+
+        private void fillVfModuleInstHeatEnvPayload(List<GroupInstance> groupsForCurrVF, Wrapper<String> payloadWrapper) {
+            List<VfModuleArtifactPayload> vfModulePayloads = new ArrayList<>();
+            if (groupsForCurrVF != null) {
+                for (GroupInstance groupInstance : groupsForCurrVF) {
+                    VfModuleArtifactPayload modulePayload = new VfModuleArtifactPayload(groupInstance);
+                    vfModulePayloads.add(modulePayload);
+                }
+                vfModulePayloads.sort(VfModuleArtifactPayload::compareByGroupName);
+                final Gson gson = new GsonBuilder().setPrettyPrinting().create();
+                String vfModulePayloadString = gson.toJson(vfModulePayloads);
+                payloadWrapper.setInnerElement(vfModulePayloadString);
+            }
+        }
+
+        private ArtifactDefinition getVfModuleInstArtifactForCompInstance(ComponentInstance currVF, Service service, Wrapper<String> payloadWrapper,
+                                                                          Wrapper<ResponseFormat> responseWrapper) {
+            ArtifactDefinition vfModuleAertifact = null;
+            if (MapUtils.isNotEmpty(currVF.getDeploymentArtifacts())) {
+                final Optional<ArtifactDefinition> optionalVfModuleArtifact = currVF.getDeploymentArtifacts().values().stream()
+                    .filter(p -> p.getArtifactType().equals(ArtifactTypeEnum.VF_MODULES_METADATA.getType())).findAny();
+                if (optionalVfModuleArtifact.isPresent()) {
+                    vfModuleAertifact = optionalVfModuleArtifact.get();
+                }
+            }
+            if (vfModuleAertifact == null) {
+                Either<ArtifactDefinition, ResponseFormat> createVfModuleArtifact = createVfModuleArtifact(currVF, service,
+                    payloadWrapper.getInnerElement());
+                if (createVfModuleArtifact.isLeft()) {
+                    vfModuleAertifact = createVfModuleArtifact.left().value();
+                } else {
+                    responseWrapper.setInnerElement(createVfModuleArtifact.right().value());
+                }
+            }
+            return vfModuleAertifact;
+        }
+
+        private List<GroupInstance> collectGroupsInstanceForCompInstance(ComponentInstance currVF) {
+            Map<String, ArtifactDefinition> deploymentArtifacts = currVF.getDeploymentArtifacts();
+            if (currVF.getGroupInstances() != null) {
+                currVF.getGroupInstances().forEach(gi -> gi.alignArtifactsUuid(deploymentArtifacts));
+            }
+            return currVF.getGroupInstances();
+        }
+
+        private Either<ArtifactDefinition, ResponseFormat> createVfModuleArtifact(ComponentInstance currVF, Service service,
+                                                                                  String vfModulePayloadString) {
+            ArtifactDefinition vfModuleArtifactDefinition = new ArtifactDefinition();
+            String newCheckSum = null;
+            vfModuleArtifactDefinition.setDescription("Auto-generated VF Modules information artifact");
+            vfModuleArtifactDefinition.setArtifactDisplayName("Vf Modules Metadata");
+            vfModuleArtifactDefinition.setArtifactType(ArtifactTypeEnum.VF_MODULES_METADATA.getType());
+            vfModuleArtifactDefinition.setArtifactGroupType(ArtifactGroupTypeEnum.DEPLOYMENT);
+            vfModuleArtifactDefinition.setArtifactLabel("vfModulesMetadata");
+            vfModuleArtifactDefinition.setTimeout(0);
+            vfModuleArtifactDefinition.setArtifactName(currVF.getNormalizedName() + "_modules.json");
+            vfModuleArtifactDefinition.setPayloadData(vfModulePayloadString);
+            if (vfModulePayloadString != null) {
+                newCheckSum = GeneralUtility.calculateMD5Base64EncodedByByteArray(vfModulePayloadString.getBytes());
+            }
+            vfModuleArtifactDefinition.setArtifactChecksum(newCheckSum);
+            Either<ArtifactDefinition, StorageOperationStatus> addArtifactToComponent = artifactToscaOperation
+                .addArtifactToComponent(vfModuleArtifactDefinition, service, NodeTypeEnum.ResourceInstance, true, currVF.getUniqueId());
+            Either<ArtifactDefinition, ResponseFormat> result;
+            if (addArtifactToComponent.isLeft()) {
+                result = Either.left(addArtifactToComponent.left().value());
+            } else {
+                result = Either
+                    .right(componentsUtils.getResponseFormat(componentsUtils.convertFromStorageResponse(addArtifactToComponent.right().value())));
+            }
+            return result;
+        }
+
+        private ArtifactDefinition fillVfModulePayload(User modifier, ComponentInstance currVF, ArtifactDefinition vfModuleArtifact,
+                                                       boolean shouldLock,
+                                                       boolean inTransaction, Wrapper<String> payloadWrapper, Wrapper<ResponseFormat> responseWrapper,
+                                                       Service service) {
+            ArtifactDefinition result = null;
+            Either<ArtifactDefinition, ResponseFormat> eitherPayload = artifactsBusinessLogic
+                .generateArtifactPayload(vfModuleArtifact, ComponentTypeEnum.RESOURCE_INSTANCE, service, currVF.getName(), modifier, shouldLock,
+                    inTransaction, System::currentTimeMillis, () -> Either.left(
+                        artifactsBusinessLogic.createEsArtifactData(vfModuleArtifact,
+                            payloadWrapper.getInnerElement().getBytes(StandardCharsets.UTF_8))),
+                    currVF.getUniqueId());
+            if (eitherPayload.isLeft()) {
+                result = eitherPayload.left().value();
+            } else {
+                responseWrapper.setInnerElement(eitherPayload.right().value());
+            }
+            if (result == null) {
+                result = vfModuleArtifact;
+            }
+            return result;
+        }
+
         @Override
         public Either<ArtifactDefinition, ResponseFormat> call() throws Exception {
             return generateVfModuleInstanceArtifact(user, componentInstance, service, shouldLock, inTransaction);
index dd55ae8..34460f4 100644 (file)
@@ -67,6 +67,7 @@ import org.openecomp.sdc.be.components.validation.component.ComponentValidator;
 import org.openecomp.sdc.be.config.BeEcompErrorManager;
 import org.openecomp.sdc.be.config.ConfigurationManager;
 import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.dao.janusgraph.JanusGraphDao;
 import org.openecomp.sdc.be.datamodel.utils.ArtifactUtils;
 import org.openecomp.sdc.be.datamodel.utils.UiComponentDataConverter;
 import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition;
@@ -97,6 +98,7 @@ import org.openecomp.sdc.be.model.LifecycleStateEnum;
 import org.openecomp.sdc.be.model.NodeTypeInfo;
 import org.openecomp.sdc.be.model.Operation;
 import org.openecomp.sdc.be.model.ParsedToscaYamlInfo;
+import org.openecomp.sdc.be.model.PolicyDefinition;
 import org.openecomp.sdc.be.model.PropertyDefinition;
 import org.openecomp.sdc.be.model.RelationshipImpl;
 import org.openecomp.sdc.be.model.RelationshipInfo;
@@ -119,6 +121,7 @@ import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade
 import org.openecomp.sdc.be.model.jsonjanusgraph.utils.ModelConverter;
 import org.openecomp.sdc.be.model.operations.StorageException;
 import org.openecomp.sdc.be.model.operations.api.IElementOperation;
+import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation;
 import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation;
 import org.openecomp.sdc.be.model.operations.api.IGroupOperation;
 import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation;
@@ -135,7 +138,6 @@ import org.openecomp.sdc.common.kpi.api.ASDCKpiApi;
 import org.openecomp.sdc.common.log.wrappers.Logger;
 import org.openecomp.sdc.common.util.ValidationUtils;
 import org.openecomp.sdc.exception.ResponseFormat;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.yaml.snakeyaml.Yaml;
 
 @Getter
@@ -143,9 +145,9 @@ import org.yaml.snakeyaml.Yaml;
 @org.springframework.stereotype.Component("serviceImportBusinessLogic")
 public class ServiceImportBusinessLogic {
 
+    protected static final String CREATE_RESOURCE = "Create Resource";
     private static final String INITIAL_VERSION = "0.1";
-    private static final String CREATE_RESOURCE = "Create Resource";
-    private static final String IN_RESOURCE = "  in resource {} ";
+    private static final String IN_RESOURCE = " in resource {} ";
     private static final String COMPONENT_INSTANCE_WITH_NAME = "component instance with name ";
     private static final String COMPONENT_INSTANCE_WITH_NAME_IN_RESOURCE = "component instance with name {}  in resource {} ";
     private static final String CERTIFICATION_ON_IMPORT = "certification on import";
@@ -154,30 +156,25 @@ public class ServiceImportBusinessLogic {
     private static final String CREATE_RESOURCE_VALIDATE_CAPABILITY_TYPES = "Create Resource - validateCapabilityTypesCreate";
     private static final String CATEGORY_IS_EMPTY = "Resource category is empty";
     private static final Logger log = Logger.getLogger(ServiceImportBusinessLogic.class);
+
+    private final ComponentsUtils componentsUtils;
+    private final ToscaOperationFacade toscaOperationFacade;
     private final UiComponentDataConverter uiComponentDataConverter;
     private final ComponentInstanceBusinessLogic componentInstanceBusinessLogic;
-    @Autowired
-    protected ComponentsUtils componentsUtils;
-    @Autowired
-    protected ToscaOperationFacade toscaOperationFacade;
-    @Autowired
-    private ServiceBusinessLogic serviceBusinessLogic;
-    @Autowired
-    private CsarBusinessLogic csarBusinessLogic;
-    @Autowired
-    private CsarArtifactsAndGroupsBusinessLogic csarArtifactsAndGroupsBusinessLogic;
-    @Autowired
-    private LifecycleBusinessLogic lifecycleBusinessLogic;
-    @Autowired
-    private CompositionBusinessLogic compositionBusinessLogic;
-    @Autowired
-    private ResourceDataMergeBusinessLogic resourceDataMergeBusinessLogic;
-    @Autowired
-    private ServiceImportParseLogic serviceImportParseLogic;
-    @Autowired
-    private ComponentNodeFilterBusinessLogic componentNodeFilterBusinessLogic;
-
-    @Autowired
+    private final ServiceBusinessLogic serviceBusinessLogic;
+    private final CsarBusinessLogic csarBusinessLogic;
+    private final CsarArtifactsAndGroupsBusinessLogic csarArtifactsAndGroupsBusinessLogic;
+    private final LifecycleBusinessLogic lifecycleBusinessLogic;
+    private final CompositionBusinessLogic compositionBusinessLogic;
+    private final ResourceDataMergeBusinessLogic resourceDataMergeBusinessLogic;
+    private final ServiceImportParseLogic serviceImportParseLogic;
+    private final ComponentNodeFilterBusinessLogic componentNodeFilterBusinessLogic;
+    private final GroupBusinessLogic groupBusinessLogic;
+    private final PolicyBusinessLogic policyBusinessLogic;
+    private final JanusGraphDao janusGraphDao;
+    private final ArtifactsBusinessLogic artifactsBusinessLogic;
+    private final IGraphLockOperation graphLockOperation;
+
     public ServiceImportBusinessLogic(IElementOperation elementDao, IGroupOperation groupOperation, IGroupInstanceOperation groupInstanceOperation,
                                       IGroupTypeOperation groupTypeOperation, GroupBusinessLogic groupBusinessLogic,
                                       InterfaceOperation interfaceOperation, InterfaceLifecycleOperation interfaceLifecycleTypeOperation,
@@ -189,17 +186,33 @@ public class ServiceImportBusinessLogic {
                                       ComponentContactIdValidator componentContactIdValidator, ComponentNameValidator componentNameValidator,
                                       ComponentTagsValidator componentTagsValidator, ComponentValidator componentValidator,
                                       ComponentIconValidator componentIconValidator, ComponentProjectCodeValidator componentProjectCodeValidator,
-                                      ComponentDescriptionValidator componentDescriptionValidator) {
+                                      ComponentDescriptionValidator componentDescriptionValidator, final ComponentsUtils componentsUtils,
+                                      final ToscaOperationFacade toscaOperationFacade, final ServiceBusinessLogic serviceBusinessLogic,
+                                      final CsarBusinessLogic csarBusinessLogic,
+                                      final CsarArtifactsAndGroupsBusinessLogic csarArtifactsAndGroupsBusinessLogic,
+                                      final LifecycleBusinessLogic lifecycleBusinessLogic, final CompositionBusinessLogic compositionBusinessLogic,
+                                      final ResourceDataMergeBusinessLogic resourceDataMergeBusinessLogic,
+                                      final ServiceImportParseLogic serviceImportParseLogic,
+                                      final ComponentNodeFilterBusinessLogic componentNodeFilterBusinessLogic,
+                                      final PolicyBusinessLogic policyBusinessLogic, final JanusGraphDao janusGraphDao,
+                                      final IGraphLockOperation graphLockOperation) {
         this.componentInstanceBusinessLogic = componentInstanceBusinessLogic;
         this.uiComponentDataConverter = uiComponentDataConverter;
-    }
-
-    public ServiceBusinessLogic getServiceBusinessLogic() {
-        return serviceBusinessLogic;
-    }
-
-    public void setServiceBusinessLogic(ServiceBusinessLogic serviceBusinessLogic) {
+        this.componentsUtils = componentsUtils;
+        this.toscaOperationFacade = toscaOperationFacade;
         this.serviceBusinessLogic = serviceBusinessLogic;
+        this.csarBusinessLogic = csarBusinessLogic;
+        this.csarArtifactsAndGroupsBusinessLogic = csarArtifactsAndGroupsBusinessLogic;
+        this.lifecycleBusinessLogic = lifecycleBusinessLogic;
+        this.compositionBusinessLogic = compositionBusinessLogic;
+        this.resourceDataMergeBusinessLogic = resourceDataMergeBusinessLogic;
+        this.serviceImportParseLogic = serviceImportParseLogic;
+        this.componentNodeFilterBusinessLogic = componentNodeFilterBusinessLogic;
+        this.groupBusinessLogic = groupBusinessLogic;
+        this.policyBusinessLogic = policyBusinessLogic;
+        this.janusGraphDao = janusGraphDao;
+        this.artifactsBusinessLogic = artifactsBusinessLogic;
+        this.graphLockOperation = graphLockOperation;
     }
 
     public Service createService(Service service, AuditingActionEnum auditingAction, User user, Map<String, byte[]> csarUIPayload,
@@ -211,7 +224,10 @@ public class ServiceImportBusinessLogic {
         service.setConformanceLevel(ConfigurationManager.getConfigurationManager().getConfiguration().getToscaConformanceLevel());
         service.setDistributionStatus(DistributionStatusEnum.DISTRIBUTION_NOT_APPROVED);
         try {
-            serviceBusinessLogic.validateServiceBeforeCreate(service, user, auditingAction);
+            final var serviceBeforeCreate = serviceBusinessLogic.validateServiceBeforeCreate(service, user, auditingAction);
+            if (serviceBeforeCreate.isRight()) {
+                throw new ComponentException(ActionStatus.GENERAL_ERROR);
+            }
             log.debug("enter createService,validateServiceBeforeCreate success");
             String csarUUID = payloadName == null ? service.getCsarUUID() : payloadName;
             log.debug("enter createService,get csarUUID:{}", csarUUID);
@@ -318,8 +334,8 @@ public class ServiceImportBusinessLogic {
             service = createRIAndRelationsFromYaml(yamlName, service, uploadComponentInstanceInfoMap, topologyTemplateYaml,
                 nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeTypesArtifactsToCreate, nodeName);
             log.trace("************* Finished to create nodes, RI and Relation  from yaml {}", yamlName);
-            Either<Map<String, GroupDefinition>, ResponseFormat> validateUpdateVfGroupNamesRes = serviceBusinessLogic.groupBusinessLogic
-                .validateUpdateVfGroupNames(parsedToscaYamlInfo.getGroups(), service.getSystemName());
+            Either<Map<String, GroupDefinition>, ResponseFormat> validateUpdateVfGroupNamesRes
+                = groupBusinessLogic.validateUpdateVfGroupNames(parsedToscaYamlInfo.getGroups(), service.getSystemName());
             if (validateUpdateVfGroupNamesRes.isRight()) {
                 serviceImportParseLogic.rollback(inTransaction, service, createdArtifacts, nodeTypesNewCreatedArtifacts);
                 throw new ComponentException(validateUpdateVfGroupNamesRes.right().value());
@@ -337,6 +353,13 @@ public class ServiceImportBusinessLogic {
                 throw new ComponentException(createGroupsOnResource.right().value());
             }
             service = createGroupsOnResource.left().value();
+
+            Either<Service, ResponseFormat> createPoliciesOnResource = createPoliciesOnResource(service, parsedToscaYamlInfo.getPolicies());
+            if (createPoliciesOnResource.isRight()) {
+                serviceImportParseLogic.rollback(inTransaction, service, createdArtifacts, nodeTypesNewCreatedArtifacts);
+                throw new ComponentException(createPoliciesOnResource.right().value());
+            }
+            service = createPoliciesOnResource.left().value();
             log.trace("************* Going to add artifacts from yaml {}", yamlName);
             NodeTypeInfoToUpdateArtifacts nodeTypeInfoToUpdateArtifacts = new NodeTypeInfoToUpdateArtifacts(nodeName, nodeTypesArtifactsToCreate);
             Either<Service, ResponseFormat> createArtifactsEither = createOrUpdateArtifacts(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
@@ -353,10 +376,10 @@ public class ServiceImportBusinessLogic {
             throw e;
         } finally {
             if (!inTransaction) {
-                serviceBusinessLogic.janusGraphDao.commit();
+                janusGraphDao.commit();
             }
             if (shouldLock) {
-                serviceBusinessLogic.graphLockOperation.unlockComponentByName(service.getSystemName(), service.getUniqueId(), NodeTypeEnum.Resource);
+                graphLockOperation.unlockComponentByName(service.getSystemName(), service.getUniqueId(), NodeTypeEnum.Resource);
             }
         }
     }
@@ -445,11 +468,11 @@ public class ServiceImportBusinessLogic {
             Constants.VF_LICENSE_DESCRIPTION, vfLicenseModelId, artifactOperation, null, true, shouldLock, inTransaction);
     }
 
-    protected Either<Resource, ResponseFormat> getResourceResponseFormatEither(Resource resource, CsarInfo csarInfo,
-                                                                               List<ArtifactDefinition> createdArtifacts,
-                                                                               ArtifactOperationInfo artifactOperation, boolean shouldLock,
-                                                                               boolean inTransaction,
-                                                                               Either<ImmutablePair<String, String>, ResponseFormat> artifacsMetaCsarStatus) {
+    private Either<Resource, ResponseFormat> getResourceResponseFormatEither(Resource resource, CsarInfo csarInfo,
+                                                                             List<ArtifactDefinition> createdArtifacts,
+                                                                             ArtifactOperationInfo artifactOperation, boolean shouldLock,
+                                                                             boolean inTransaction,
+                                                                             Either<ImmutablePair<String, String>, ResponseFormat> artifacsMetaCsarStatus) {
         try {
             String artifactsFileName = artifacsMetaCsarStatus.left().value().getKey();
             String artifactsContents = artifacsMetaCsarStatus.left().value().getValue();
@@ -561,7 +584,7 @@ public class ServiceImportBusinessLogic {
         if (operation.getArtifactOperationEnum() == ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE
             || operation.getArtifactOperationEnum() == ArtifactsBusinessLogic.ArtifactOperationEnum.DELETE) {
             if (serviceImportParseLogic.isArtifactDeletionRequired(artifactId, artifactFileBytes, isFromCsar)) {
-                Either<ArtifactDefinition, ResponseFormat> handleDelete = serviceBusinessLogic.artifactsBusinessLogic
+                Either<ArtifactDefinition, ResponseFormat> handleDelete = artifactsBusinessLogic
                     .handleDelete(component.getUniqueId(), artifactId, csarInfo.getModifier(), component, shouldLock, inTransaction);
                 if (handleDelete.isRight()) {
                     result = Either.right(handleDelete.right().value());
@@ -589,10 +612,10 @@ public class ServiceImportBusinessLogic {
         return result;
     }
 
-    public Either<List<ArtifactDefinition>, ResponseFormat> handleNodeTypeArtifacts(Resource nodeTypeResource,
-                                                                                    Map<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle,
-                                                                                    List<ArtifactDefinition> createdArtifacts, User user,
-                                                                                    boolean inTransaction, boolean ignoreLifecycleState) {
+    private Either<List<ArtifactDefinition>, ResponseFormat> handleNodeTypeArtifacts(Resource nodeTypeResource,
+                                                                                     Map<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle,
+                                                                                     List<ArtifactDefinition> createdArtifacts, User user,
+                                                                                     boolean inTransaction, boolean ignoreLifecycleState) {
         List<ArtifactDefinition> handleNodeTypeArtifactsRequestRes;
         Either<List<ArtifactDefinition>, ResponseFormat> handleNodeTypeArtifactsRes = null;
         Either<Resource, ResponseFormat> changeStateResponse;
@@ -610,7 +633,7 @@ public class ServiceImportBusinessLogic {
                 List<ArtifactDefinition> curArtifactsToHandle = curOperationEntry.getValue();
                 if (curArtifactsToHandle != null && !curArtifactsToHandle.isEmpty()) {
                     log.debug("************* Going to {} artifact to vfc {}", curOperation.name(), nodeTypeResource.getName());
-                    handleNodeTypeArtifactsRequestRes = serviceBusinessLogic.artifactsBusinessLogic
+                    handleNodeTypeArtifactsRequestRes = artifactsBusinessLogic
                         .handleArtifactsRequestForInnerVfcComponent(curArtifactsToHandle, nodeTypeResource, user, createdArtifacts,
                             new ArtifactOperationInfo(false, ignoreLifecycleState, curOperation), false, inTransaction);
                     if (ArtifactsBusinessLogic.ArtifactOperationEnum.isCreateOrLink(curOperation)) {
@@ -630,7 +653,7 @@ public class ServiceImportBusinessLogic {
         return handleNodeTypeArtifactsRes;
     }
 
-    protected Either<Resource, ResponseFormat> checkoutResource(Resource resource, User user, boolean inTransaction) {
+    private Either<Resource, ResponseFormat> checkoutResource(Resource resource, User user, boolean inTransaction) {
         Either<Resource, ResponseFormat> checkoutResourceRes;
         try {
             if (!resource.getComponentMetadataDefinition().getMetadataDataDefinition().getState()
@@ -768,7 +791,7 @@ public class ServiceImportBusinessLogic {
         return organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifacts, component, user);
     }
 
-    protected boolean isNonMetaArtifact(ArtifactDefinition artifact) {
+    private boolean isNonMetaArtifact(ArtifactDefinition artifact) {
         boolean result = true;
         if (artifact.getMandatory() || artifact.getArtifactName() == null || !isValidArtifactType(artifact)) {
             result = false;
@@ -777,12 +800,10 @@ public class ServiceImportBusinessLogic {
     }
 
     private boolean isValidArtifactType(ArtifactDefinition artifact) {
-        boolean result = true;
-        if (artifact.getArtifactType() == null || ArtifactTypeEnum.findType(artifact.getArtifactType()).equals(ArtifactTypeEnum.VENDOR_LICENSE)
-            || ArtifactTypeEnum.findType(artifact.getArtifactType()).equals(ArtifactTypeEnum.VF_LICENSE)) {
-            result = false;
-        }
-        return result;
+        final String artifactType = artifact.getArtifactType();
+        return artifactType != null
+            && !ArtifactTypeEnum.VENDOR_LICENSE.getType().equals(ArtifactTypeEnum.findType(artifactType))
+            && !ArtifactTypeEnum.VF_LICENSE.getType().equals(ArtifactTypeEnum.findType(artifactType));
     }
 
     protected Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>, ResponseFormat> organizeVfCsarArtifactsByArtifactOperation(
@@ -815,12 +836,11 @@ public class ServiceImportBusinessLogic {
                             ResponseFormat responseFormat = ResponseFormatManager.getInstance()
                                 .getResponseFormat(ActionStatus.ARTIFACT_ALREADY_EXIST_IN_DIFFERENT_TYPE_IN_CSAR, currNewArtifact.getArtifactName(),
                                     currNewArtifact.getArtifactType(), foundArtifact.getArtifactType());
-                            AuditingActionEnum auditingAction = serviceBusinessLogic.artifactsBusinessLogic
-                                .detectAuditingType(new ArtifactOperationInfo(false, false, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE),
-                                    foundArtifact.getArtifactChecksum());
-                            serviceBusinessLogic.artifactsBusinessLogic
-                                .handleAuditing(auditingAction, component, component.getUniqueId(), user, null, null, foundArtifact.getUniqueId(),
-                                    responseFormat, component.getComponentType(), null);
+                            AuditingActionEnum auditingAction = artifactsBusinessLogic.detectAuditingType(
+                                new ArtifactOperationInfo(false, false, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE),
+                                foundArtifact.getArtifactChecksum());
+                            artifactsBusinessLogic.handleAuditing(auditingAction, component, component.getUniqueId(), user, null, null,
+                                foundArtifact.getUniqueId(), responseFormat, component.getComponentType(), null);
                             responseWrapper.setInnerElement(responseFormat);
                             break;
                         }
@@ -863,14 +883,6 @@ public class ServiceImportBusinessLogic {
         return nodeTypeArtifactsToHandleRes;
     }
 
-    public ComponentsUtils getComponentsUtils() {
-        return this.componentsUtils;
-    }
-
-    public void setComponentsUtils(ComponentsUtils componentsUtils) {
-        this.componentsUtils = componentsUtils;
-    }
-
     protected Either<List<CsarUtils.NonMetaArtifactInfo>, String> getValidArtifactNames(CsarInfo csarInfo,
                                                                                         Map<String, Set<List<String>>> collectedWarningMessages) {
         List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = csarInfo.getCsar().entrySet().stream()
@@ -891,14 +903,27 @@ public class ServiceImportBusinessLogic {
             List<GroupDefinition> groupsAsList = updateGroupsMembersUsingResource(groups, service);
             serviceImportParseLogic.handleGroupsProperties(service, groups);
             serviceImportParseLogic.fillGroupsFinalFields(groupsAsList);
-            Either<List<GroupDefinition>, ResponseFormat> createGroups = serviceBusinessLogic.groupBusinessLogic
-                .createGroups(service, groupsAsList, true);
+            Either<List<GroupDefinition>, ResponseFormat> createGroups = groupBusinessLogic.createGroups(service, groupsAsList, true);
             if (createGroups.isRight()) {
                 return Either.right(createGroups.right().value());
             }
         } else {
             return Either.left(service);
         }
+        return getServiceResponseFormatEither(service);
+    }
+
+    private Either<Service, ResponseFormat> createPoliciesOnResource(Service service,
+                                                                     Map<String, PolicyDefinition> policies) {
+        if (MapUtils.isNotEmpty(policies)) {
+            policyBusinessLogic.createPolicies(service, policies);
+        } else {
+            return Either.left(service);
+        }
+        return getServiceResponseFormatEither(service);
+    }
+
+    private Either<Service, ResponseFormat> getServiceResponseFormatEither(Service service) {
         Either<Service, StorageOperationStatus> updatedResource = toscaOperationFacade.getToscaElement(service.getUniqueId());
         if (updatedResource.isRight()) {
             ResponseFormat responseFormat = componentsUtils
@@ -1232,11 +1257,11 @@ public class ServiceImportBusinessLogic {
         return result;
     }
 
-    public Map<String, Resource> createResourcesFromYamlNodeTypesList(String yamlName, Resource resource, Map<String, Object> mappedToscaTemplate,
-                                                                      boolean needLock,
-                                                                      Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle,
-                                                                      List<ArtifactDefinition> nodeTypesNewCreatedArtifacts,
-                                                                      Map<String, NodeTypeInfo> nodeTypesInfo, CsarInfo csarInfo) {
+    private Map<String, Resource> createResourcesFromYamlNodeTypesList(String yamlName, Resource resource, Map<String, Object> mappedToscaTemplate,
+                                                                       boolean needLock,
+                                                                       Map<String, EnumMap<ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle,
+                                                                       List<ArtifactDefinition> nodeTypesNewCreatedArtifacts,
+                                                                       Map<String, NodeTypeInfo> nodeTypesInfo, CsarInfo csarInfo) {
         Either<String, ImportUtils.ResultStatusEnum> toscaVersion = findFirstToscaStringElement(mappedToscaTemplate,
             TypeUtils.ToscaTagNamesEnum.TOSCA_VERSION);
         if (toscaVersion.isRight()) {
@@ -1304,7 +1329,7 @@ public class ServiceImportBusinessLogic {
         log.debug("************* Going to create all nodes {}", yamlName);
         handleServiceNodeTypes(yamlName, service, topologyTemplateYaml, false, nodeTypesArtifactsToCreate, nodeTypesNewCreatedArtifacts,
             nodeTypesInfo, csarInfo, nodeName);
-        if (!MapUtils.isEmpty(uploadComponentInstanceInfoMap)) {
+        if (MapUtils.isNotEmpty(uploadComponentInstanceInfoMap)) {
             log.debug("************* Going to create all resource instances {}", yamlName);
             service = createServiceInstances(yamlName, service, uploadComponentInstanceInfoMap, csarInfo.getCreatedNodes());
             log.debug("************* Going to create all relations {}", yamlName);
@@ -1364,7 +1389,6 @@ public class ServiceImportBusinessLogic {
         service = getResourceAfterCreateRelations(service);
         addRelationsToRI(yamlName, service, uploadResInstancesMap, componentInstancesList, relations);
         serviceImportParseLogic.associateResourceInstances(yamlName, service, relations);
-        handleSubstitutionMappings(service, uploadResInstancesMap);
         log.debug("************* in create relations, getResource start");
         Either<Service, StorageOperationStatus> eitherGetResource = toscaOperationFacade.getToscaElement(service.getUniqueId());
         log.debug("************* in create relations, getResource end");
@@ -1574,7 +1598,7 @@ public class ServiceImportBusinessLogic {
             originResource.getCapabilities().forEach((k, v) -> serviceImportParseLogic.addCapabilities(originCapabilities, k, v));
             uploadComponentInstanceInfo.getCapabilities().values()
                 .forEach(l -> serviceImportParseLogic.addCapabilitiesProperties(newPropertiesMap, l));
-            updateCapabilityPropertiesValues(allDataTypes, originCapabilities, newPropertiesMap, originResource.getModel());
+            updateCapabilityPropertiesValues(allDataTypes, originCapabilities, newPropertiesMap);
         } else {
             originCapabilities = originResource.getCapabilities();
         }
@@ -1583,7 +1607,7 @@ public class ServiceImportBusinessLogic {
 
     protected void updateCapabilityPropertiesValues(Map<String, DataTypeDefinition> allDataTypes,
                                                     Map<String, List<CapabilityDefinition>> originCapabilities,
-                                                    Map<String, Map<String, UploadPropInfo>> newPropertiesMap, String model) {
+                                                    Map<String, Map<String, UploadPropInfo>> newPropertiesMap) {
         originCapabilities.values().stream().flatMap(Collection::stream).filter(c -> newPropertiesMap.containsKey(c.getName()))
             .forEach(c -> updatePropertyValues(c.getProperties(), newPropertiesMap.get(c.getName()), allDataTypes));
     }
@@ -1630,25 +1654,6 @@ public class ServiceImportBusinessLogic {
         return originResource;
     }
 
-    protected void handleSubstitutionMappings(Service service, Map<String, UploadComponentInstanceInfo> uploadResInstancesMap) {
-        if (false) {
-            Either<Resource, StorageOperationStatus> getResourceRes = toscaOperationFacade.getToscaFullElement(service.getUniqueId());
-            if (getResourceRes.isRight()) {
-                ResponseFormat responseFormat = componentsUtils
-                    .getResponseFormatByComponent(componentsUtils.convertFromStorageResponse(getResourceRes.right().value()), service,
-                        ComponentTypeEnum.SERVICE);
-                throw new ComponentException(responseFormat);
-            }
-            getResourceRes = updateCalculatedCapReqWithSubstitutionMappings(getResourceRes.left().value(), uploadResInstancesMap);
-            if (getResourceRes.isRight()) {
-                ResponseFormat responseFormat = componentsUtils
-                    .getResponseFormatByComponent(componentsUtils.convertFromStorageResponse(getResourceRes.right().value()), service,
-                        ComponentTypeEnum.SERVICE);
-                throw new ComponentException(responseFormat);
-            }
-        }
-    }
-
     protected Either<Resource, StorageOperationStatus> updateCalculatedCapReqWithSubstitutionMappings(Resource resource,
                                                                                                       Map<String, UploadComponentInstanceInfo> uploadResInstancesMap) {
         Either<Resource, StorageOperationStatus> updateRes = null;
@@ -1818,15 +1823,15 @@ public class ServiceImportBusinessLogic {
                     log.debug("try to find aviable Capability  req name is {} ", validReq.getName());
                     CapabilityDefinition aviableCapForRel = serviceImportParseLogic
                         .findAvailableCapabilityByTypeOrName(validReq, currentCapCompInstance, uploadRegInfo);
-                    reqAndRelationshipPair.setCapability(aviableCapForRel.getName());
-                    reqAndRelationshipPair.setCapabilityUid(aviableCapForRel.getUniqueId());
-                    reqAndRelationshipPair.setCapabilityOwnerId(aviableCapForRel.getOwnerId());
                     if (aviableCapForRel == null) {
                         BeEcompErrorManager.getInstance().logInternalDataError(
                             "aviable capability was not found. req name is " + validReq.getName() + " component instance is " + currentCapCompInstance
                                 .getUniqueId(), service.getUniqueId(), BeEcompErrorManager.ErrorSeverity.ERROR);
                         return componentsUtils.getResponseFormat(ActionStatus.NOT_TOPOLOGY_TOSCA_TEMPLATE, yamlName);
                     }
+                    reqAndRelationshipPair.setCapability(aviableCapForRel.getName());
+                    reqAndRelationshipPair.setCapabilityUid(aviableCapForRel.getUniqueId());
+                    reqAndRelationshipPair.setCapabilityOwnerId(aviableCapForRel.getOwnerId());
                     CapabilityRequirementRelationship capReqRel = new CapabilityRequirementRelationship();
                     capReqRel.setRelation(reqAndRelationshipPair);
                     reqAndRelationshipPairList.add(capReqRel);
@@ -2144,8 +2149,8 @@ public class ServiceImportBusinessLogic {
                 .auditResource(responseFormat, csarInfo.getModifier(), preparedResource == null ? oldRresource : preparedResource, actionEnum);
             throw e;
         }
-        Either<Map<String, GroupDefinition>, ResponseFormat> validateUpdateVfGroupNamesRes = serviceBusinessLogic.groupBusinessLogic
-            .validateUpdateVfGroupNames(uploadComponentInstanceInfoMap.getGroups(), preparedResource.getSystemName());
+        Either<Map<String, GroupDefinition>, ResponseFormat> validateUpdateVfGroupNamesRes = groupBusinessLogic.validateUpdateVfGroupNames(
+            uploadComponentInstanceInfoMap.getGroups(), preparedResource.getSystemName());
         if (validateUpdateVfGroupNamesRes.isRight()) {
             throw new ComponentException(validateUpdateVfGroupNamesRes.right().value());
         }
@@ -2237,8 +2242,8 @@ public class ServiceImportBusinessLogic {
                 nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeTypesArtifactsToCreate, nodeName);
             log.trace("************* Finished to create nodes, RI and Relation  from yaml {}", yamlName);
             // validate update vf module group names
-            Either<Map<String, GroupDefinition>, ResponseFormat> validateUpdateVfGroupNamesRes = serviceBusinessLogic.groupBusinessLogic
-                .validateUpdateVfGroupNames(parsedToscaYamlInfo.getGroups(), resource.getSystemName());
+            Either<Map<String, GroupDefinition>, ResponseFormat> validateUpdateVfGroupNamesRes = groupBusinessLogic.validateUpdateVfGroupNames(
+                parsedToscaYamlInfo.getGroups(), resource.getSystemName());
             if (validateUpdateVfGroupNamesRes.isRight()) {
                 serviceImportParseLogic.rollback(inTransaction, resource, createdArtifacts, nodeTypesNewCreatedArtifacts);
                 throw new ComponentException(validateUpdateVfGroupNamesRes.right().value());
@@ -2274,11 +2279,10 @@ public class ServiceImportBusinessLogic {
             throw e;
         } finally {
             if (!inTransaction) {
-                serviceBusinessLogic.janusGraphDao.commit();
+                janusGraphDao.commit();
             }
             if (shouldLock) {
-                serviceBusinessLogic.graphLockOperation
-                    .unlockComponentByName(resource.getSystemName(), resource.getUniqueId(), NodeTypeEnum.Resource);
+                graphLockOperation.unlockComponentByName(resource.getSystemName(), resource.getUniqueId(), NodeTypeEnum.Resource);
             }
         }
     }
@@ -2288,8 +2292,7 @@ public class ServiceImportBusinessLogic {
             List<GroupDefinition> groupsAsList = updateGroupsMembersUsingResource(groups, resource);
             serviceImportParseLogic.handleGroupsProperties(resource, groups);
             serviceImportParseLogic.fillGroupsFinalFields(groupsAsList);
-            Either<List<GroupDefinition>, ResponseFormat> createGroups = serviceBusinessLogic.groupBusinessLogic
-                .createGroups(resource, groupsAsList, true);
+            Either<List<GroupDefinition>, ResponseFormat> createGroups = groupBusinessLogic.createGroups(resource, groupsAsList, true);
             if (createGroups.isRight()) {
                 return Either.right(createGroups.right().value());
             }
@@ -2407,13 +2410,13 @@ public class ServiceImportBusinessLogic {
         } finally {
             if (resourcePair == null) {
                 BeEcompErrorManager.getInstance().logBeSystemError("Change LifecycleState - Certify");
-                serviceBusinessLogic.janusGraphDao.rollback();
+                janusGraphDao.rollback();
             } else if (!inTransaction) {
-                serviceBusinessLogic.janusGraphDao.commit();
+                janusGraphDao.commit();
             }
             if (needLock) {
                 log.debug("unlock resource {}", lockedResourceId);
-                serviceBusinessLogic.graphLockOperation.unlockComponent(lockedResourceId, NodeTypeEnum.Resource);
+                graphLockOperation.unlockComponent(lockedResourceId, NodeTypeEnum.Resource);
             }
         }
     }
@@ -2491,23 +2494,24 @@ public class ServiceImportBusinessLogic {
         Resource vfcCreated = null;
         while (nodesNameValueIter.hasNext()) {
             Map.Entry<String, Object> nodeType = nodesNameValueIter.next();
+            String nodeTypeKey = nodeType.getKey();
             Map<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle =
-                nodeTypesArtifactsToHandle == null || nodeTypesArtifactsToHandle.isEmpty() ? null : nodeTypesArtifactsToHandle.get(nodeType.getKey());
-            if (nodeTypesInfo.containsKey(nodeType.getKey())) {
+                nodeTypesArtifactsToHandle == null || nodeTypesArtifactsToHandle.isEmpty() ? null : nodeTypesArtifactsToHandle.get(nodeTypeKey);
+            if (nodeTypesInfo.containsKey(nodeTypeKey)) {
                 vfcCreated = handleNestedVfc(service, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo,
-                    nodeType.getKey());
-                log.trace("************* Finished to handle nested vfc {}", nodeType.getKey());
+                    nodeTypeKey);
+                log.trace("************* Finished to handle nested vfc {}", nodeTypeKey);
             } else if (csarInfo.getCreatedNodesToscaResourceNames() != null && !csarInfo.getCreatedNodesToscaResourceNames()
-                .containsKey(nodeType.getKey())) {
+                .containsKey(nodeTypeKey)) {
                 ImmutablePair<Resource, ActionStatus> resourceCreated = serviceImportParseLogic
                     .createNodeTypeResourceFromYaml(yamlName, nodeType, csarInfo.getModifier(), mapToConvert, service, needLock,
                         nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts, true, csarInfo, true);
-                log.debug("************* Finished to create node {}", nodeType.getKey());
+                log.debug("************* Finished to create node {}", nodeTypeKey);
                 vfcCreated = resourceCreated.getLeft();
-                csarInfo.getCreatedNodesToscaResourceNames().put(nodeType.getKey(), vfcCreated.getName());
+                csarInfo.getCreatedNodesToscaResourceNames().put(nodeTypeKey, vfcCreated.getName());
             }
             if (vfcCreated != null) {
-                csarInfo.getCreatedNodes().put(nodeType.getKey(), vfcCreated);
+                csarInfo.getCreatedNodes().put(nodeTypeKey, vfcCreated);
             }
             mapToConvert.remove(TypeUtils.ToscaTagNamesEnum.NODE_TYPES.getElementName());
         }
index 63abf26..7a5b909 100644 (file)
@@ -32,7 +32,6 @@ import java.util.Optional;
 import java.util.Set;
 import java.util.function.Function;
 import lombok.Getter;
-import lombok.Setter;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
@@ -118,7 +117,6 @@ import org.yaml.snakeyaml.DumperOptions;
 import org.yaml.snakeyaml.Yaml;
 
 @Getter
-@Setter
 @org.springframework.stereotype.Component
 public class ServiceImportParseLogic {
 
@@ -134,25 +132,46 @@ public class ServiceImportParseLogic {
     private static final String CATEGORY_IS_EMPTY = "Resource category is empty";
     private static final Logger log = Logger.getLogger(ServiceImportParseLogic.class);
     @Autowired
-    private ServiceBusinessLogic serviceBusinessLogic;
+    private final ServiceBusinessLogic serviceBusinessLogic;
     @Autowired
-    private ComponentsUtils componentsUtils;
+    private final ComponentsUtils componentsUtils;
     @Autowired
-    private ToscaOperationFacade toscaOperationFacade;
+    private final ToscaOperationFacade toscaOperationFacade;
     @Autowired
-    private LifecycleBusinessLogic lifecycleBusinessLogic;
+    private final LifecycleBusinessLogic lifecycleBusinessLogic;
     @Autowired
-    private InputsBusinessLogic inputsBusinessLogic;
+    private final InputsBusinessLogic inputsBusinessLogic;
     @Autowired
-    private ResourceImportManager resourceImportManager;
+    private final ResourceImportManager resourceImportManager;
     @Autowired
-    private ComponentSubstitutionFilterBusinessLogic substitutionFilterBusinessLogic;
+    private final ComponentSubstitutionFilterBusinessLogic substitutionFilterBusinessLogic;
     @Autowired
-    private IInterfaceLifecycleOperation interfaceTypeOperation = null;
+    private final IInterfaceLifecycleOperation interfaceTypeOperation;
     @Autowired
-    private ICapabilityTypeOperation capabilityTypeOperation = null;
+    private final ICapabilityTypeOperation capabilityTypeOperation;
     @Autowired
-    private ComponentNodeFilterBusinessLogic componentNodeFilterBusinessLogic;
+    private final ComponentNodeFilterBusinessLogic componentNodeFilterBusinessLogic;
+    private final GroupBusinessLogic groupBusinessLogic;
+
+    public ServiceImportParseLogic(final ServiceBusinessLogic serviceBusinessLogic, final ComponentsUtils componentsUtils,
+                                   final ToscaOperationFacade toscaOperationFacade, final LifecycleBusinessLogic lifecycleBusinessLogic,
+                                   final InputsBusinessLogic inputsBusinessLogic, final ResourceImportManager resourceImportManager,
+                                   final ComponentSubstitutionFilterBusinessLogic substitutionFilterBusinessLogic,
+                                   final IInterfaceLifecycleOperation interfaceTypeOperation, final ICapabilityTypeOperation capabilityTypeOperation,
+                                   final ComponentNodeFilterBusinessLogic componentNodeFilterBusinessLogic,
+                                   final GroupBusinessLogic groupBusinessLogic) {
+        this.serviceBusinessLogic = serviceBusinessLogic;
+        this.componentsUtils = componentsUtils;
+        this.toscaOperationFacade = toscaOperationFacade;
+        this.lifecycleBusinessLogic = lifecycleBusinessLogic;
+        this.inputsBusinessLogic = inputsBusinessLogic;
+        this.resourceImportManager = resourceImportManager;
+        this.substitutionFilterBusinessLogic = substitutionFilterBusinessLogic;
+        this.interfaceTypeOperation = interfaceTypeOperation;
+        this.capabilityTypeOperation = capabilityTypeOperation;
+        this.componentNodeFilterBusinessLogic = componentNodeFilterBusinessLogic;
+        this.groupBusinessLogic = groupBusinessLogic;
+    }
 
     public Either<Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>>, ResponseFormat> findNodeTypesArtifactsToHandle(
         Map<String, NodeTypeInfo> nodeTypesInfo, CsarInfo csarInfo, Service oldResource) {
@@ -1634,18 +1653,16 @@ public class ServiceImportParseLogic {
         if (isNotEmpty(groupsToCreate)) {
             fillGroupsFinalFields(groupsToCreate);
             if (isNotEmpty(groupsFromResource)) {
-                serviceBusinessLogic.groupBusinessLogic.addGroups(resource, groupsToCreate, true).left()
-                    .on(serviceBusinessLogic::throwComponentException);
+                groupBusinessLogic.addGroups(resource, groupsToCreate, true).left().on(serviceBusinessLogic::throwComponentException);
             } else {
-                serviceBusinessLogic.groupBusinessLogic.createGroups(resource, groupsToCreate, true).left()
-                    .on(serviceBusinessLogic::throwComponentException);
+                groupBusinessLogic.createGroups(resource, groupsToCreate, true).left().on(serviceBusinessLogic::throwComponentException);
             }
         }
         if (isNotEmpty(groupsToDelete)) {
-            serviceBusinessLogic.groupBusinessLogic.deleteGroups(resource, groupsToDelete).left().on(serviceBusinessLogic::throwComponentException);
+            groupBusinessLogic.deleteGroups(resource, groupsToDelete).left().on(serviceBusinessLogic::throwComponentException);
         }
         if (isNotEmpty(groupsToUpdate)) {
-            serviceBusinessLogic.groupBusinessLogic.updateGroups(resource, groupsToUpdate, true).left()
+            groupBusinessLogic.updateGroups(resource, groupsToUpdate, true).left()
                 .on(serviceBusinessLogic::throwComponentException);
         }
     }
index a7bd4b6..8ba84b8 100644 (file)
@@ -28,9 +28,7 @@ import io.swagger.v3.oas.annotations.media.Content;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
 import io.swagger.v3.oas.annotations.servers.Server;
-import io.swagger.v3.oas.annotations.servers.Servers;
 import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.tags.Tags;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -81,8 +79,8 @@ import org.springframework.stereotype.Controller;
  */
 @Loggable(prepend = true, value = Loggable.DEBUG, trim = false)
 @Path("/v1/catalog")
-@Tags({@Tag(name = "SDCE-2 APIs")})
-@Servers({@Server(url = "/sdc2/rest")})
+@Tag(name = "SDCE-2 APIs")
+@Server(url = "/sdc2/rest")
 @Controller
 @Consumes(MediaType.APPLICATION_JSON)
 @Produces(MediaType.APPLICATION_JSON)
index bcedc60..c26f3ca 100644 (file)
@@ -19,6 +19,8 @@
  */
 package org.openecomp.sdc.be.servlets;
 
+import static org.openecomp.sdc.common.log.enums.EcompLoggerErrorCode.BUSINESS_PROCESS_ERROR;
+
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.gson.reflect.TypeToken;
@@ -31,9 +33,7 @@ import io.swagger.v3.oas.annotations.media.Content;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.responses.ApiResponse;
 import io.swagger.v3.oas.annotations.servers.Server;
-import io.swagger.v3.oas.annotations.servers.Servers;
 import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.tags.Tags;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.io.IOException;
@@ -52,8 +52,8 @@ import javax.ws.rs.POST;
 import javax.ws.rs.PUT;
 import javax.ws.rs.Path;
 import javax.ws.rs.PathParam;
-import javax.ws.rs.QueryParam;
 import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.Context;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
@@ -99,7 +99,7 @@ import org.springframework.stereotype.Controller;
 
 @Loggable(prepend = true, value = Loggable.DEBUG, trim = false)
 @Path("/v1/catalog")
-@Servers({@Server(url = "/sdc2/rest")})
+@Server(url = "/sdc2/rest")
 @Controller
 public class ServiceServlet extends AbstractValidationsServlet {
 
@@ -110,8 +110,6 @@ public class ServiceServlet extends AbstractValidationsServlet {
     private final ElementBusinessLogic elementBusinessLogic;
     private final ServiceBusinessLogic serviceBusinessLogic;
 
-    public enum Action {DELETE, MARK_AS_DELETE}
-
     @Inject
     public ServiceServlet(UserBusinessLogic userBusinessLogic, ComponentInstanceBusinessLogic componentInstanceBL, ComponentsUtils componentsUtils,
                           ServletUtils servletUtils, ResourceImportManager resourceImportManager, ServiceBusinessLogic serviceBusinessLogic,
@@ -123,7 +121,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
 
     @POST
     @Path("/services")
-    @Tags({@Tag(name = "SDCE-2 APIs")})
+    @Tag(name = "SDCE-2 APIs")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
     @Operation(description = "Create Service", method = "POST", summary = "Returns created service", responses = {
@@ -136,8 +134,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
                                   @Context final HttpServletRequest request, @HeaderParam(value = Constants.USER_ID_HEADER) String userId) {
         String url = request.getMethod() + " " + request.getRequestURI();
         log.debug(START_HANDLE_REQUEST_OF, url);
-        User modifier = new User();
-        modifier.setUserId(userId);
+        User modifier = new User(userId);
         log.debug(MODIFIER_ID_IS, userId);
         loggerSupportability.log(LoggerSupportabilityActions.CREATE_SERVICE, StatusCode.STARTED, "Starting to create a service by user {} ", userId);
         validateNotEmptyBody(data);
@@ -163,7 +160,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
 
     @GET
     @Path("/services/validate-name/{serviceName}")
-    @Tags({@Tag(name = "SDCE-2 APIs")})
+    @Tag(name = "SDCE-2 APIs")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
     @Operation(description = "validate service name", method = "GET", summary = "checks if the chosen service name is available ", responses = {
@@ -174,9 +171,6 @@ public class ServiceServlet extends AbstractValidationsServlet {
                                         @HeaderParam(value = Constants.USER_ID_HEADER) String userId) {
         String url = request.getMethod() + " " + request.getRequestURI();
         log.debug(START_HANDLE_REQUEST_OF, url);
-        // get modifier id
-        User modifier = new User();
-        modifier.setUserId(userId);
         log.debug(MODIFIER_ID_IS, userId);
         try {
             Either<Map<String, Boolean>, ResponseFormat> actionResponse = serviceBusinessLogic.validateServiceNameExists(serviceName, userId);
@@ -194,7 +188,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
 
     @GET
     @Path("/audit-records/{componentType}/{componentUniqueId}")
-    @Tags({@Tag(name = "SDCE-2 APIs")})
+    @Tag(name = "SDCE-2 APIs")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
     @Operation(description = "get component audit records", method = "GET", summary = "get audit records for a service or a resource", responses = {
@@ -209,8 +203,6 @@ public class ServiceServlet extends AbstractValidationsServlet {
         ServletContext context = request.getSession().getServletContext();
         String url = request.getMethod() + " " + request.getRequestURI();
         log.debug(START_HANDLE_REQUEST_OF, url);
-        User modifier = new User();
-        modifier.setUserId(userId);
         log.debug(MODIFIER_ID_IS, userId);
         Wrapper<Response> responseWrapper = new Wrapper<>();
         Wrapper<String> uuidWrapper = new Wrapper<>();
@@ -265,7 +257,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
 
     @DELETE
     @Path("/services/{serviceId}")
-    @Tags({@Tag(name = "SDCE-2 APIs")})
+    @Tag(name = "SDCE-2 APIs")
     @Operation(description = "Delete Service", method = "DELETE", summary = "Return no content", responses = {
         @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = Service.class)))),
         @ApiResponse(responseCode = "204", description = "Service deleted"), @ApiResponse(responseCode = "403", description = "Restricted operation"),
@@ -274,8 +266,8 @@ public class ServiceServlet extends AbstractValidationsServlet {
     @PermissionAllowed(AafPermission.PermNames.INTERNAL_ALL_VALUE)
     public Response deleteService(@PathParam("serviceId") final String serviceId,
                                   @Parameter(description = "Optional parameter to determine the delete action: " +
-                                          "DELETE, which will permanently delete theService from the system or " +
-                                          "MARK_AS_DELETE, which will logically mark the service as deleted. Default action is to MARK_AS_DELETE")
+                                      "DELETE, which will permanently delete theService from the system or " +
+                                      "MARK_AS_DELETE, which will logically mark the service as deleted. Default action is to MARK_AS_DELETE")
                                   @QueryParam("deleteAction") final Action deleteAction,
                                   @Context final HttpServletRequest request) {
         ServletContext context = request.getSession().getServletContext();
@@ -283,8 +275,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
         log.debug(START_HANDLE_REQUEST_OF, url);
         // get modifier id
         String userId = request.getHeader(Constants.USER_ID_HEADER);
-        User modifier = new User();
-        modifier.setUserId(userId);
+        User modifier = new User(userId);
         log.debug(MODIFIER_ID_IS, userId);
         try {
             String serviceIdLower = serviceId.toLowerCase();
@@ -315,7 +306,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
 
     @DELETE
     @Path("/services/{serviceName}/{version}")
-    @Tags({@Tag(name = "SDCE-2 APIs")})
+    @Tag(name = "SDCE-2 APIs")
     @Operation(description = "Delete Service By Name And Version", method = "DELETE", summary = "Returns no content", responses = {
         @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = Resource.class)))),
         @ApiResponse(responseCode = "204", description = "Service deleted"), @ApiResponse(responseCode = "403", description = "Restricted operation"),
@@ -344,15 +335,14 @@ public class ServiceServlet extends AbstractValidationsServlet {
         log.debug(START_HANDLE_REQUEST_OF, url);
         // get modifier id
         String userId = request.getHeader(Constants.USER_ID_HEADER);
-        User modifier = new User();
-        modifier.setUserId(userId);
+        User modifier = new User(userId);
         log.debug(MODIFIER_ID_IS, userId);
         return modifier;
     }
 
     @PUT
     @Path("/services/{serviceId}/metadata")
-    @Tags({@Tag(name = "SDCE-2 APIs")})
+    @Tag(name = "SDCE-2 APIs")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
     @Operation(description = "Update Service Metadata", method = "PUT", summary = "Returns updated service", responses = {
@@ -366,8 +356,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
         throws IOException {
         String url = request.getMethod() + " " + request.getRequestURI();
         log.debug(START_HANDLE_REQUEST_OF, url);
-        User modifier = new User();
-        modifier.setUserId(userId);
+        User modifier = new User(userId);
         log.debug(MODIFIER_ID_IS, userId);
         try {
             String serviceIdLower = serviceId.toLowerCase();
@@ -406,7 +395,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
      */
     @PUT
     @Path("/{containerComponentType}/{serviceId}/resourceInstance/{componentInstanceId}/groupInstance/{groupInstanceId}")
-    @Tags({@Tag(name = "SDCE-2 APIs")})
+    @Tag(name = "SDCE-2 APIs")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
     @Operation(description = "Update Group Instance Property Values", method = "PUT", summary = "Returns updated group instance", responses = {
@@ -423,8 +412,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
                                                       @HeaderParam(value = Constants.USER_ID_HEADER) String userId) throws JsonProcessingException {
         String url = request.getMethod() + " " + request.getRequestURI();
         log.debug(START_HANDLE_REQUEST_OF, url);
-        User modifier = new User();
-        modifier.setUserId(userId);
+        User modifier = new User(userId);
         log.debug(MODIFIER_ID_IS, userId);
         Either<List<GroupInstanceProperty>, ResponseFormat> actionResponse = null;
         try {
@@ -452,14 +440,14 @@ public class ServiceServlet extends AbstractValidationsServlet {
                 return buildErrorResponse(actionResponse.right().value());
             }
         } catch (Exception e) {
-            log.error("Exception occured during update Group Instance property values: {}", e.getMessage(), e);
+            log.error(BUSINESS_PROCESS_ERROR, this.getClass().getName(), "Exception occured during update Group Instance property values.", e);
             throw e;
         }
     }
 
     @GET
     @Path("/services/{serviceId}")
-    @Tags({@Tag(name = "SDCE-2 APIs")})
+    @Tag(name = "SDCE-2 APIs")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
     @Operation(description = "Retrieve Service", method = "GET", summary = "Returns service according to serviceId", responses = {
@@ -472,8 +460,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
         String url = request.getMethod() + " " + request.getRequestURI();
         log.debug(START_HANDLE_REQUEST_OF, url);
         // get modifier id
-        User modifier = new User();
-        modifier.setUserId(userId);
+        User modifier = new User(userId);
         log.debug(MODIFIER_ID_IS, userId);
         try {
             String serviceIdLower = serviceId.toLowerCase();
@@ -495,7 +482,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
 
     @GET
     @Path("/services/serviceName/{serviceName}/serviceVersion/{serviceVersion}")
-    @Tags({@Tag(name = "SDCE-2 APIs")})
+    @Tag(name = "SDCE-2 APIs")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
     @Operation(description = "Retrieve Service", method = "GET", summary = "Returns service according to name and version", responses = {
@@ -507,8 +494,6 @@ public class ServiceServlet extends AbstractValidationsServlet {
                                                @PathParam("serviceVersion") final String serviceVersion, @Context final HttpServletRequest request,
                                                @HeaderParam(value = Constants.USER_ID_HEADER) String userId) throws IOException {
         // get modifier id
-        User modifier = new User();
-        modifier.setUserId(userId);
         log.debug(MODIFIER_ID_IS, userId);
         try {
             Either<Service, ResponseFormat> actionResponse = serviceBusinessLogic.getServiceByNameAndVersion(serviceName, serviceVersion, userId);
@@ -527,7 +512,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
 
     @POST
     @Path("/services/{serviceId}/distribution/{env}/activate")
-    @Tags({@Tag(name = "SDCE-5 APIs")})
+    @Tag(name = "SDCE-5 APIs")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
     @Operation(description = "Activate distribution", method = "POST", summary = "activate distribution", responses = {
@@ -541,8 +526,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
         throws IOException {
         String url = request.getMethod() + " " + request.getRequestURI();
         log.debug(START_HANDLE_REQUEST_OF, url);
-        User modifier = new User();
-        modifier.setUserId(userId);
+        User modifier = new User(userId);
         log.debug(MODIFIER_ID_IS, userId);
         Either<Service, ResponseFormat> distResponse = serviceBusinessLogic.activateDistribution(serviceId, env, modifier, request);
         if (distResponse.isRight()) {
@@ -563,7 +547,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
 
     @POST
     @Path("/services/{serviceId}/distribution/{did}/markDeployed")
-    @Tags({@Tag(name = "SDCE-5 APIs")})
+    @Tag(name = "SDCE-5 APIs")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
     @Operation(description = "Mark distribution as deployed", method = "POST", summary = "relevant audit record will be created", responses = {
@@ -579,8 +563,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
                                                @HeaderParam(value = Constants.USER_ID_HEADER) String userId) throws IOException {
         String url = request.getMethod() + " " + request.getRequestURI();
         log.debug(START_HANDLE_REQUEST_OF, url);
-        User modifier = new User();
-        modifier.setUserId(userId);
+        User modifier = new User(userId);
         log.debug(MODIFIER_ID_IS, userId);
         try {
             Either<Service, ResponseFormat> distResponse = serviceBusinessLogic.markDistributionAsDeployed(serviceId, did, modifier);
@@ -600,7 +583,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
 
     @POST
     @Path("/services/{serviceId}/tempUrlToBeDeleted")
-    @Tags({@Tag(name = "SDCE-2 APIs")})
+    @Tag(name = "SDCE-2 APIs")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
     @Operation(responses = {@ApiResponse(responseCode = "200", description = "OK"),
@@ -608,11 +591,9 @@ public class ServiceServlet extends AbstractValidationsServlet {
     @PermissionAllowed(AafPermission.PermNames.INTERNAL_ALL_VALUE)
     public Response tempUrlToBeDeleted(@PathParam("serviceId") final String serviceId, @Context final HttpServletRequest request,
                                        @HeaderParam(value = Constants.USER_ID_HEADER) String userId) {
-        ServletContext context = request.getSession().getServletContext();
         String url = request.getMethod() + " " + request.getRequestURI();
         log.debug(START_HANDLE_REQUEST_OF, url);
-        User modifier = new User();
-        modifier.setUserId(userId);
+        User modifier = new User(userId);
         log.debug(MODIFIER_ID_IS, userId);
         try {
             Service service = (serviceBusinessLogic.getService(serviceId, modifier)).left().value();
@@ -631,7 +612,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
 
     @GET
     @Path("/services/{serviceId}/linksMap")
-    @Tags({@Tag(name = "SDCE-2 APIs")})
+    @Tag(name = "SDCE-2 APIs")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
     @Operation(description = "Retrieve Service component relations map", method = "GET", summary = "Returns service components relations", responses = {
@@ -644,8 +625,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
         String url = request.getMethod() + " " + request.getRequestURI();
         log.debug(START_HANDLE_REQUEST_OF, url);
         // get modifier id
-        User modifier = new User();
-        modifier.setUserId(userId);
+        User modifier = new User(userId);
         log.debug(MODIFIER_ID_IS, userId);
         try {
             String serviceIdLower = serviceId.toLowerCase();
@@ -667,7 +647,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
 
     @POST
     @Path("/services/importService")
-    @Tags({@Tag(name = "SDCE-2 APIs")})
+    @Tag(name = "SDCE-2 APIs")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
     @Operation(description = "Import Service", method = "POST", summary = "Returns imported service", responses = {
@@ -679,26 +659,21 @@ public class ServiceServlet extends AbstractValidationsServlet {
         userId = (userId != null) ? userId : request.getHeader(Constants.USER_ID_HEADER);
         initSpringFromContext();
         String url = request.getMethod() + " " + request.getRequestURI();
-        log.debug("Start handle request of {}", url);
-        // get modifier id
-        User modifier = new User();
-        modifier.setUserId(userId);
-        log.debug("modifier id is {}", userId);
-        Response response;
+        log.debug(START_HANDLE_REQUEST_OF, url);
+        log.debug(MODIFIER_ID_IS, userId);
         try {
-            Wrapper<Response> responseWrapper = new Wrapper<>();
-            performUIImport(responseWrapper, data, request, userId, null);
+            final Wrapper<Response> responseWrapper = performUIImport(data, request, userId, null);
             return responseWrapper.getInnerElement();
         } catch (IOException | ZipException e) {
             BeEcompErrorManager.getInstance().logBeRestApiGeneralError("Import Service");
             log.debug("import service failed with exception", e);
-            response = buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR));
-            return response;
+            return buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR));
         }
     }
 
-    private void performUIImport(Wrapper<Response> responseWrapper, String data, final HttpServletRequest request, String userId,
-                                 String ServiceUniqueId) throws FileNotFoundException, ZipException {
+    private Wrapper<Response> performUIImport(String data, final HttpServletRequest request, String userId,
+                                              String ServiceUniqueId) throws FileNotFoundException, ZipException {
+        Wrapper<Response> responseWrapper = new Wrapper<>();
         Wrapper<User> userWrapper = new Wrapper<>();
         Wrapper<UploadServiceInfo> uploadServiceInfoWrapper = new Wrapper<>();
         Wrapper<String> yamlStringWrapper = new Wrapper<>();
@@ -710,6 +685,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
             handleImportService(responseWrapper, userWrapper.getInnerElement(), uploadServiceInfoWrapper.getInnerElement(),
                 yamlStringWrapper.getInnerElement(), ServiceAuthorityEnum, true, ServiceUniqueId);
         }
+        return responseWrapper;
     }
 
     /**
@@ -729,7 +705,7 @@ public class ServiceServlet extends AbstractValidationsServlet {
      */
     @POST
     @Path("/services/serviceUUID/{uuid}/importReplaceService")
-    @Tags({@Tag(name = "SDCE-2 APIs")})
+    @Tag(name = "SDCE-2 APIs")
     @Produces(MediaType.APPLICATION_JSON)
     @Operation(description = "Import Service", method = "POST", summary = "Returns imported service", responses = {
         @ApiResponse(responseCode = "201", description = "Service created"), @ApiResponse(responseCode = "403", description = "Restricted operation"),
@@ -751,11 +727,9 @@ public class ServiceServlet extends AbstractValidationsServlet {
         String url = request.getMethod() + " " + requestURI;
         log.debug("importReplaceService,Start handle request of {}", url);
         // get modifier id
-        User modifier = new User();
-        modifier.setUserId(userId);
+        User modifier = new User(userId);
         log.debug("importReplaceService,modifier id is {}", userId);
         log.debug("importReplaceService,get file:{},fileName:{}", file, file.getName());
-        Response response;
         ResponseFormat responseFormat = null;
         AuditingActionEnum auditingActionEnum = AuditingActionEnum.Import_Replace_Service;
         String assetType = "services";
@@ -808,8 +782,9 @@ public class ServiceServlet extends AbstractValidationsServlet {
         } catch (IOException | ZipException e) {
             BeEcompErrorManager.getInstance().logBeRestApiGeneralError("Import Service");
             log.debug("import service failed with exception", e);
-            response = buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR));
-            return response;
+            return buildErrorResponse(getComponentsUtils().getResponseFormat(ActionStatus.GENERAL_ERROR));
         }
     }
+
+    public enum Action {DELETE, MARK_AS_DELETE}
 }
index 692e8cc..638eef6 100644 (file)
@@ -78,16 +78,29 @@ import org.openecomp.sdc.common.impl.ExternalConfiguration;
 import org.springframework.web.context.WebApplicationContext;
 
 public abstract class BaseServiceBusinessLogicTest extends ComponentBusinessLogicMock {
+
+    protected static final String CERTIFIED_VERSION = "1.0";
+    protected static final String UNCERTIFIED_VERSION = "0.2";
+    protected static final String COMPONNET_ID = "myUniqueId";
+    protected static final String GENERIC_SERVICE_NAME = "org.openecomp.resource.abstract.nodes.service";
     private static final String SERVICE_CATEGORY = "Mobility";
-    private final ServletContext servletContext = Mockito.mock(ServletContext.class);
-    private UserBusinessLogic mockUserAdmin = Mockito.mock(UserBusinessLogic.class);
-    private WebAppContextWrapper webAppContextWrapper = Mockito.mock(WebAppContextWrapper.class);
-    private WebApplicationContext webAppContext = Mockito.mock(WebApplicationContext.class);
+    protected static Map<AuditingFieldsKey, Object> FILTER_MAP_CERTIFIED_VERSION = new HashMap<>();
+    protected static Map<AuditingFieldsKey, Object> FILTER_MAP_UNCERTIFIED_VERSION_CURR = new HashMap<>();
+    protected static Map<AuditingFieldsKey, Object> FILTER_MAP_UNCERTIFIED_VERSION_PREV = new HashMap<>();
+    protected static ForwardingPathDataDefinition forwardingPathDataDefinition;
     protected final IDistributionEngine distributionEngine = Mockito.mock(IDistributionEngine.class);
     protected final ComponentInstanceBusinessLogic componentInstanceBusinessLogic = Mockito.mock(ComponentInstanceBusinessLogic.class);
     protected final ServiceDistributionValidation serviceDistributionValidation = Mockito.mock(ServiceDistributionValidation.class);
     protected final ForwardingPathValidator forwardingPathValidator = Mockito.mock(ForwardingPathValidator.class);
     protected final UiComponentDataConverter uiComponentDataConverter = Mockito.mock(UiComponentDataConverter.class);
+    private final ServletContext servletContext = Mockito.mock(ServletContext.class);
+    private final ModelOperation modelOperation = Mockito.mock(ModelOperation.class);
+    User user = null;
+    Service serviceResponse = null;
+    Resource genericService = null;
+    private UserBusinessLogic mockUserAdmin = Mockito.mock(UserBusinessLogic.class);
+    private WebAppContextWrapper webAppContextWrapper = Mockito.mock(WebAppContextWrapper.class);
+    private WebApplicationContext webAppContext = Mockito.mock(WebApplicationContext.class);
     private ServiceBusinessLogic bl;
     private ResponseFormatManager responseManager = null;
     private IElementOperation mockElementDao;
@@ -98,20 +111,25 @@ public abstract class BaseServiceBusinessLogicTest extends ComponentBusinessLogi
     private JanusGraphDao mockJanusGraphDao = Mockito.mock(JanusGraphDao.class);
     private ToscaOperationFacade toscaOperationFacade = Mockito.mock(ToscaOperationFacade.class);
     private GenericTypeBusinessLogic genericTypeBusinessLogic = Mockito.mock(GenericTypeBusinessLogic.class);
-    private ForwardingPathOperation forwardingPathOperation  = Mockito.mock(ForwardingPathOperation.class);
-    private final ModelOperation modelOperation = Mockito.mock(ModelOperation.class);
+    private ForwardingPathOperation forwardingPathOperation = Mockito.mock(ForwardingPathOperation.class);
 
-    User user = null;
-    Service serviceResponse = null;
-    Resource genericService = null;
+    protected static ForwardingPathDataDefinition createMockPath() {
+        if (forwardingPathDataDefinition != null) {
+            return forwardingPathDataDefinition;
+        }
+        forwardingPathDataDefinition = new ForwardingPathDataDefinition("Yoyo");
+        forwardingPathDataDefinition.setUniqueId(java.util.UUID.randomUUID().toString());
+        forwardingPathDataDefinition.setDestinationPortNumber("414155");
+        forwardingPathDataDefinition.setProtocol("http");
+        org.openecomp.sdc.be.datatypes.elements.ListDataDefinition<org.openecomp.sdc.be.datatypes.elements.ForwardingPathElementDataDefinition> forwardingPathElementDataDefinitionListDataDefinition = new org.openecomp.sdc.be.datatypes.elements.ListDataDefinition<>();
+        forwardingPathElementDataDefinitionListDataDefinition.add(
+            new ForwardingPathElementDataDefinition("fromNode", "toNode", "333", "444", "2222", "5555"));
+        forwardingPathElementDataDefinitionListDataDefinition.add(
+            new ForwardingPathElementDataDefinition("toNode", "toNode2", "4444", "44444", "4", "44"));
+        forwardingPathDataDefinition.setPathElements(forwardingPathElementDataDefinitionListDataDefinition);
+        return forwardingPathDataDefinition;
+    }
 
-    protected static final String CERTIFIED_VERSION = "1.0";
-    protected static final String UNCERTIFIED_VERSION = "0.2";
-    protected static final String COMPONNET_ID = "myUniqueId";
-    protected static final String GENERIC_SERVICE_NAME = "org.openecomp.resource.abstract.nodes.service";
-    protected static Map<AuditingFieldsKey, Object> FILTER_MAP_CERTIFIED_VERSION = new HashMap<>();
-    protected static Map<AuditingFieldsKey, Object> FILTER_MAP_UNCERTIFIED_VERSION_CURR = new HashMap<>();
-    protected static Map<AuditingFieldsKey, Object> FILTER_MAP_UNCERTIFIED_VERSION_PREV = new HashMap<>();
     @Before
     public void setup() {
 
@@ -141,7 +159,8 @@ public abstract class BaseServiceBusinessLogicTest extends ComponentBusinessLogi
 
         // artifact bussinesslogic
         ArtifactDefinition artifactDef = new ArtifactDefinition();
-        when(artifactBl.createArtifactPlaceHolderInfo(Mockito.anyString(), Mockito.anyString(), Mockito.anyMap(), Mockito.any(User.class), Mockito.any(ArtifactGroupTypeEnum.class))).thenReturn(artifactDef);
+        when(artifactBl.createArtifactPlaceHolderInfo(Mockito.anyString(), Mockito.anyString(), Mockito.anyMap(), Mockito.any(User.class),
+            Mockito.any(ArtifactGroupTypeEnum.class))).thenReturn(artifactDef);
 
         // createService
         serviceResponse = createServiceObject(true);
@@ -157,9 +176,9 @@ public abstract class BaseServiceBusinessLogicTest extends ComponentBusinessLogi
         when(toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(GENERIC_SERVICE_NAME)).thenReturn(findLatestGeneric);
 
         //forwardingPath
-        when(forwardingPathOperation.addForwardingPath(any(),any())).thenReturn(Either.left(createMockPath()));
-        when(forwardingPathOperation.updateForwardingPath(any(),any())).thenReturn(Either.left(createMockPath()));
-        when(forwardingPathOperation.deleteForwardingPath(any(),any())).thenReturn(Either.left(Sets.newHashSet("Wow-It-Works")));
+        when(forwardingPathOperation.addForwardingPath(any(), any())).thenReturn(Either.left(createMockPath()));
+        when(forwardingPathOperation.updateForwardingPath(any(), any())).thenReturn(Either.left(createMockPath()));
+        when(forwardingPathOperation.deleteForwardingPath(any(), any())).thenReturn(Either.left(Sets.newHashSet("Wow-It-Works")));
         when(toscaOperationFacade.getToscaElement("delete_forward_test")).thenReturn(Either.left(createServiceObject(true)));
 
         bl = new ServiceBusinessLogic(elementDao, groupOperation, groupInstanceOperation,
@@ -168,7 +187,7 @@ public abstract class BaseServiceBusinessLogicTest extends ComponentBusinessLogi
             serviceDistributionValidation, forwardingPathValidator, uiComponentDataConverter,
             artifactToscaOperation, componentContactIdValidator, componentNameValidator,
             componentTagsValidator, componentValidator, componentIconValidator, componentProjectCodeValidator, componentDescriptionValidator,
-            modelOperation);
+            modelOperation, null, null, null, null, null);
         bl.setUserAdmin(mockUserAdmin);
         bl.setGraphLockOperation(graphLockOperation);
         bl.setJanusGraphDao(mockJanusGraphDao);
@@ -192,15 +211,15 @@ public abstract class BaseServiceBusinessLogicTest extends ComponentBusinessLogi
         service.setUniqueId("serviceUniqueId");
         List<ComponentInstance> componentInstances = new ArrayList<>();
         ComponentInstance ci;
-        for(int i= 0; i<listSize; ++i){
+        for (int i = 0; i < listSize; ++i) {
             ci = new ComponentInstance();
             ci.setName("ciName" + i);
             ci.setUniqueId("ciId" + i);
-            List<GroupInstance>  groupInstances= new ArrayList<>();
+            List<GroupInstance> groupInstances = new ArrayList<>();
             GroupInstance gi;
-            for(int j = 0; j<listSize; ++j){
+            for (int j = 0; j < listSize; ++j) {
                 gi = new GroupInstance();
-                gi.setName(ci.getName( )+ "giName" + j);
+                gi.setName(ci.getName(+ "giName" + j);
                 gi.setUniqueId(ci.getName() + "giId" + j);
                 groupInstances.add(gi);
             }
@@ -321,27 +340,10 @@ public abstract class BaseServiceBusinessLogicTest extends ComponentBusinessLogi
         return service;
     }
 
-    protected Resource setupGenericServiceMock(){
+    protected Resource setupGenericServiceMock() {
         Resource genericService = new Resource();
         genericService.setVersion("1.0");
         genericService.setToscaResourceName(GENERIC_SERVICE_NAME);
         return genericService;
     }
-
-    protected static ForwardingPathDataDefinition forwardingPathDataDefinition;
-
-    protected static ForwardingPathDataDefinition createMockPath() {
-        if (forwardingPathDataDefinition != null){
-            return forwardingPathDataDefinition ;
-        }
-        forwardingPathDataDefinition = new ForwardingPathDataDefinition("Yoyo");
-        forwardingPathDataDefinition.setUniqueId(java.util.UUID.randomUUID().toString());
-        forwardingPathDataDefinition.setDestinationPortNumber("414155");
-        forwardingPathDataDefinition.setProtocol("http");
-        org.openecomp.sdc.be.datatypes.elements.ListDataDefinition<org.openecomp.sdc.be.datatypes.elements.ForwardingPathElementDataDefinition> forwardingPathElementDataDefinitionListDataDefinition = new org.openecomp.sdc.be.datatypes.elements.ListDataDefinition<>();
-        forwardingPathElementDataDefinitionListDataDefinition.add(new ForwardingPathElementDataDefinition("fromNode","toNode", "333","444","2222","5555"));
-        forwardingPathElementDataDefinitionListDataDefinition.add(new ForwardingPathElementDataDefinition("toNode","toNode2", "4444","44444","4","44"));
-        forwardingPathDataDefinition.setPathElements(forwardingPathElementDataDefinitionListDataDefinition);
-        return forwardingPathDataDefinition;
-    }
 }
index 0b3973e..602a3bb 100644 (file)
@@ -76,7 +76,8 @@ class ServiceDistributionBLTest extends ComponentBusinessLogicMock {
         serviceDistributionValidation, forwardingPathValidator, uiComponentDataConverter,
         artifactToscaOperation, componentContactIdValidator,
         componentNameValidator, componentTagsValidator, componentValidator, componentIconValidator,
-        componentProjectCodeValidator, componentDescriptionValidator, modelOperation);
+        componentProjectCodeValidator, componentDescriptionValidator, modelOperation, null, null,
+        null, null, null);
 
     private Service serviceToActivate;
     private ActivationRequestInformation activationRequestInformation;
  * ============LICENSE_END=================================================
  */
 
-package org.openecomp.sdc.be.components.impl.utils;
+package org.openecomp.sdc.be.components.csar;
 
+import static org.assertj.core.api.Assertions.assertThat;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.Mockito.when;
+import static org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum.ARTIFACTS;
+
+import java.io.File;
+import java.net.URISyntaxException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.stream.Collectors;
 import mockit.Deencapsulation;
 import org.apache.commons.collections.MapUtils;
 import org.assertj.core.util.Lists;
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
-import org.openecomp.sdc.be.components.csar.CsarInfo;
-import org.openecomp.sdc.be.components.csar.YamlTemplateParsingHandler;
+import org.mockito.junit.jupiter.MockitoExtension;
 import org.openecomp.sdc.be.components.impl.AnnotationBusinessLogic;
 import org.openecomp.sdc.be.components.impl.GroupTypeBusinessLogic;
 import org.openecomp.sdc.be.components.impl.PolicyTypeBusinessLogic;
@@ -54,27 +68,9 @@ import org.openecomp.sdc.be.model.User;
 import org.openecomp.sdc.be.model.operations.impl.AnnotationTypeOperations;
 import org.openecomp.sdc.common.zip.ZipUtils;
 import org.openecomp.sdc.common.zip.exception.ZipException;
-
-import java.io.File;
-import java.net.URISyntaxException;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.stream.Collectors;
 import org.springframework.test.util.ReflectionTestUtils;
 
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.when;
-import static org.openecomp.sdc.be.utils.TypeUtils.ToscaTagNamesEnum.ARTIFACTS;
-
-@RunWith(MockitoJUnitRunner.class)
+@ExtendWith(MockitoExtension.class)
 public class YamlTemplateParsingHandlerTest {
 
     @Mock
@@ -117,9 +113,9 @@ public class YamlTemplateParsingHandlerTest {
     private static final String NESTED_GROUP_NAME = "nested_mg_vepdg_group";
 
     @InjectMocks
-    YamlTemplateParsingHandler testSubject;
+    private YamlTemplateParsingHandler testSubject;
 
-    @BeforeClass()
+    @BeforeAll
     public static void prepareData() throws URISyntaxException, ZipException {
         final File csarFile = new File(
             YamlTemplateParsingHandlerTest.class.getClassLoader().getResource(CSAR_FILE_PATH).toURI());
@@ -132,34 +128,34 @@ public class YamlTemplateParsingHandlerTest {
         resourceYml = new String(mainTemplateService);
     }
 
-    @Before
+    @BeforeEach
     public void setup() {
 
         AnnotationBusinessLogic annotationBusinessLogic = new AnnotationBusinessLogic(annotationTypeOperations,
-                annotationValidator);
+            annotationValidator);
         handler = new YamlTemplateParsingHandler(janusGraphDao, groupTypeBusinessLogic, annotationBusinessLogic, policyTypeBusinessLogic);
         ReflectionTestUtils.setField(handler, "policyTypeBusinessLogic", policyTypeBusinessLogic);
-        stubGetGroupType();
-        stubGetPolicyType();
     }
 
     @Test
-    public void parseResourceInfoFromOneNodeTest() {
+    void parseResourceInfoFromOneNodeTest() {
+        when(groupTypeBusinessLogic.getLatestGroupTypeByType(eq(HEAT_GROUP_TYPE), any())).thenReturn(heatGroupType);
 
         String main_template_content = new String(csar.get(MAIN_TEMPLATE_NAME));
         CsarInfo csarInfo = new CsarInfo(user, CSAR_UUID, csar, RESOURCE_NAME,
-                MAIN_TEMPLATE_NAME, main_template_content, true);
+            MAIN_TEMPLATE_NAME, main_template_content, true);
 
         Resource resource = new Resource();
         ParsedToscaYamlInfo parsedYaml = handler.parseResourceInfoFromYAML(FILE_NAME, resourceYml, new HashMap<>(),
-                csarInfo.extractTypesInfo(), NODE_NAME, resource, getInterfaceTemplateYaml(csarInfo).get());
+            csarInfo.extractTypesInfo(), NODE_NAME, resource, getInterfaceTemplateYaml(csarInfo).get());
 
         validateParsedYaml(parsedYaml, NESTED_GROUP_NAME,
-                Lists.newArrayList("heat_file", "description"));
+            Lists.newArrayList("heat_file", "description"));
     }
 
     @Test
-    public void parseServicePropertiesInfoFromYamlTest() {
+    void parseServicePropertiesInfoFromYamlTest() {
+        when(groupTypeBusinessLogic.getLatestGroupTypeByType(eq(HEAT_GROUP_TYPE), any())).thenReturn(heatGroupType);
         String main_template_content = new String(csar.get(MAIN_TEMPLATE_NAME));
         CsarInfo csarInfo = new CsarInfo(user, CSAR_UUID, csar, RESOURCE_NAME,
             MAIN_TEMPLATE_NAME, main_template_content, true);
@@ -178,30 +174,32 @@ public class YamlTemplateParsingHandlerTest {
     }
 
     @Test
-    public void parseResourceInfoFromYAMLTest() {
+    void parseResourceInfoFromYAMLTest() {
+        stubGetGroupType();
+        stubGetPolicyType();
 
         Resource resource = new Resource();
         ParsedToscaYamlInfo parsedYaml = handler.parseResourceInfoFromYAML(FILE_NAME, resourceYml, new HashMap<>(),
-                new HashMap<>(), "", resource, null);
+            new HashMap<>(), "", resource, null);
         validateParsedYamlWithCapability(parsedYaml);
     }
 
     @Test
-    public void testSetArtifacts() {
+    void testSetArtifacts() {
         UploadComponentInstanceInfo nodeTemplateInfo = new UploadComponentInstanceInfo();
         Map<String, Object> nodeTemplateJsonMap = new HashMap<>();
         Map<String, String> nodeMap = new HashMap<>();
-        nodeMap.put("name","test_name");
-        nodeMap.put("type","test_type");
+        nodeMap.put("name", "test_name");
+        nodeMap.put("type", "test_type");
         nodeTemplateJsonMap.put(ARTIFACTS.getElementName(), nodeMap);
         Deencapsulation.invoke(testSubject, "setArtifacts", nodeTemplateInfo, nodeTemplateJsonMap);
         assertNotNull(nodeTemplateInfo.getArtifacts());
     }
 
     @Test
-    public void testCreateArtifactsModuleFromYaml() {
+    void testCreateArtifactsModuleFromYaml() {
         Map<String, Map<String, Map<String, String>>> nodeTemplateJsonMap = new HashMap<>();
-        Map<String, Map<String,String>> map0 = new HashMap<>();
+        Map<String, Map<String, String>> map0 = new HashMap<>();
         Map<String, String> map1 = new HashMap<>();
         map1.put("file", "test_file");
         map1.put("type", "test_type");
@@ -209,54 +207,56 @@ public class YamlTemplateParsingHandlerTest {
         nodeTemplateJsonMap.put(ARTIFACTS.getElementName(), map0);
         Map<String, Map<String, UploadArtifactInfo>> result;
         result = Deencapsulation.invoke(testSubject, "createArtifactsModuleFromYaml", nodeTemplateJsonMap);
-        Assert.assertTrue(MapUtils.isNotEmpty(result));
-        Assert.assertTrue(MapUtils.isNotEmpty(result.get(ARTIFACTS.getElementName())));
-        Assert.assertEquals("test_file", result.get(ARTIFACTS.getElementName()).get("test_art").getFile());
-        Assert.assertEquals("test_type", result.get(ARTIFACTS.getElementName()).get("test_art").getType());
+        assertTrue(MapUtils.isNotEmpty(result));
+        assertTrue(MapUtils.isNotEmpty(result.get(ARTIFACTS.getElementName())));
+        assertEquals("test_file", result.get(ARTIFACTS.getElementName()).get("test_art").getFile());
+        assertEquals("test_type", result.get(ARTIFACTS.getElementName()).get("test_art").getType());
     }
 
     @Test
-    public void testAddModuleNodeTemplateArtifacts() {
+    void testAddModuleNodeTemplateArtifacts() {
         Map<String, Map<String, UploadArtifactInfo>> result = new HashMap<>();
         Map<String, String> map1 = new HashMap<>();
         map1.put("file", "test_file");
         map1.put("type", "test_type");
         Deencapsulation.invoke(testSubject, "addModuleNodeTemplateArtifacts", result, map1, "test_art");
-        Assert.assertTrue(MapUtils.isNotEmpty(result));
-        Assert.assertTrue(MapUtils.isNotEmpty(result.get(ARTIFACTS.getElementName())));
-        Assert.assertEquals("test_file", result.get(ARTIFACTS.getElementName()).get("test_art").getFile());
-        Assert.assertEquals("test_type", result.get(ARTIFACTS.getElementName()).get("test_art").getType());
+        assertTrue(MapUtils.isNotEmpty(result));
+        assertTrue(MapUtils.isNotEmpty(result.get(ARTIFACTS.getElementName())));
+        assertEquals("test_file", result.get(ARTIFACTS.getElementName()).get("test_art").getFile());
+        assertEquals("test_type", result.get(ARTIFACTS.getElementName()).get("test_art").getType());
     }
 
     @Test
-    public void testBuildModuleNodeTemplateArtifact() {
+    void testBuildModuleNodeTemplateArtifact() {
         Map<String, String> map1 = new HashMap<>();
         map1.put("file", "test_file");
         map1.put("type", "test_type");
         UploadArtifactInfo result;
         result = Deencapsulation.invoke(testSubject, "buildModuleNodeTemplateArtifact", map1);
         assertNotNull(result);
-        Assert.assertEquals("test_file", result.getFile());
-        Assert.assertEquals("test_type", result.getType());
+        assertEquals("test_file", result.getFile());
+        assertEquals("test_type", result.getType());
     }
 
     @Test
-    public void testFillArtifact() {
+    void testFillArtifact() {
         Map<String, String> map1 = new HashMap<>();
         map1.put("file", "test_file");
         map1.put("type", "test_type");
         UploadArtifactInfo result = new UploadArtifactInfo();
         Deencapsulation.invoke(testSubject, "fillArtifact", result, map1);
         assertNotNull(result);
-        Assert.assertEquals("test_file", result.getFile());
-        Assert.assertEquals("test_type", result.getType());
+        assertEquals("test_file", result.getFile());
+        assertEquals("test_type", result.getType());
     }
 
     @Test
-    public void parseResourceWithPoliciesDefined() {
+    void parseResourceWithPoliciesDefined() {
+        stubGetGroupType();
+        stubGetPolicyType();
         Resource resource = new Resource();
         ParsedToscaYamlInfo parsedYaml = handler.parseResourceInfoFromYAML(FILE_NAME, resourceYml, new HashMap<>(),
-                new HashMap<>(), "", resource, "");
+            new HashMap<>(), "", resource, "");
         validateParsedYamlWithPolicies(parsedYaml);
     }
 
@@ -267,10 +267,10 @@ public class YamlTemplateParsingHandlerTest {
 
         assertThat(parsedYaml.getGroups().get(group).getProperties()).isNotNull();
         assertThat(parsedYaml.getGroups().get(group).getProperties()
-                           .stream()
-                           .map(PropertyDataDefinition::getName)
-                           .collect(Collectors.toList()))
-                .containsAll(expectedProp);
+            .stream()
+            .map(PropertyDataDefinition::getName)
+            .collect(Collectors.toList()))
+            .containsAll(expectedProp);
 
         assertThat(parsedYaml.getGroups().get(group).getMembers()).isNotNull();
     }
@@ -278,13 +278,13 @@ public class YamlTemplateParsingHandlerTest {
     private void validateParsedYamlWithCapability(ParsedToscaYamlInfo parsedYaml) {
 
         final List<String> expectedProp = Lists.newArrayList("vfc_parent_port_role",
-                "network_collection_function", "vfc_instance_group_function", "subinterface_role");
+            "network_collection_function", "vfc_instance_group_function", "subinterface_role");
 
         validateParsedYaml(parsedYaml, MAIN_GROUP_NAME, expectedProp);
 
         assertThat(parsedYaml.getGroups().get(MAIN_GROUP_NAME).getCapabilities()
-                           .get(CAPABILITY_TYPE)
-                           .get(0).getProperties().get(0).getValue()).isEqualTo("success");
+            .get(CAPABILITY_TYPE)
+            .get(0).getProperties().get(0).getValue()).isEqualTo("success");
         assertThat(parsedYaml.getGroups().get(MAIN_GROUP_NAME).getCapabilities()).isNotNull();
         assertThat(parsedYaml.getSubstitutionMappingNodeType()).isEqualTo("org.openecomp.resource.abstract.nodes.VF");
     }
@@ -297,18 +297,18 @@ public class YamlTemplateParsingHandlerTest {
 
     private static GroupTypeDefinition buildRootGroupType() {
         return createGroupTypeDefinition(ROOT_GROUP_TYPE, null,
-                "The TOSCA Group Type all other TOSCA Group Types derive from");
+            "The TOSCA Group Type all other TOSCA Group Types derive from");
     }
 
     private static GroupTypeDefinition buildHeatStackGroupType() {
         GroupTypeDefinition groupType = createGroupTypeDefinition(HEAT_GROUP_TYPE, "tosca.groups.Root",
-                "Grouped all heat resources which are in the same heat stack");
+            "Grouped all heat resources which are in the same heat stack");
 
         GroupProperty property1 = createGroupProperty("heat_file",
-                "Heat file which associate to this group/heat stack", "SUPPORTED");
+            "Heat file which associate to this group/heat stack", "SUPPORTED");
 
         GroupProperty property2 = createGroupProperty("description",
-                "Group description", "SUPPORTED");
+            "Group description", "SUPPORTED");
 
         groupType.setProperties(Lists.newArrayList(property1, property2));
         return groupType;
@@ -316,19 +316,19 @@ public class YamlTemplateParsingHandlerTest {
 
     private static GroupTypeDefinition buildVfcInstanceGroupType() {
         GroupTypeDefinition groupType = createGroupTypeDefinition(VFC_GROUP_TYPE, "tosca.groups.Root",
-                "Groups of VFCs with same parent port role");
+            "Groups of VFCs with same parent port role");
 
         GroupProperty property1 = createGroupProperty("vfc_instance_group_function",
-                "Function of this VFC group", null);
+            "Function of this VFC group", null);
 
         GroupProperty property2 = createGroupProperty("vfc_parent_port_role",
-                "Common role of parent ports of VFCs in this group", null);
+            "Common role of parent ports of VFCs in this group", null);
 
         GroupProperty property3 = createGroupProperty("network_collection_function",
-                "Network collection function assigned to this group", null);
+            "Network collection function assigned to this group", null);
 
         GroupProperty property4 = createGroupProperty("subinterface_role",
-                "Common role of subinterfaces of VFCs in this group, criteria the group is created", null);
+            "Common role of subinterfaces of VFCs in this group, criteria the group is created", null);
 
         groupType.setProperties(Lists.newArrayList(property1, property2, property3, property4));
 
@@ -346,11 +346,12 @@ public class YamlTemplateParsingHandlerTest {
         return groupType;
     }
 
-    private static GroupTypeDefinition createGroupTypeDefinition(String type, String derivedFrom, String description){
+    private static GroupTypeDefinition createGroupTypeDefinition(String type, String derivedFrom, String description) {
         GroupTypeDefinition property = new GroupTypeDefinition();
 
-        if (type != null)
+        if (type != null) {
             property.setType(type);
+        }
 
         if (derivedFrom != null) {
             property.setDerivedFrom(derivedFrom);
@@ -362,11 +363,13 @@ public class YamlTemplateParsingHandlerTest {
 
         return property;
     }
+
     private static GroupProperty createGroupProperty(String name, String description,
-            String status){
+                                                     String status) {
         GroupProperty property = new GroupProperty();
-        if (name != null)
+        if (name != null) {
             property.setName(name);
+        }
 
         if (description != null) {
             property.setDescription(description);
@@ -389,14 +392,14 @@ public class YamlTemplateParsingHandlerTest {
         assertThat(parsedYaml.getPolicies().get(OPENECOMP_POLICY_NAME)).isInstanceOf(PolicyDefinition.class);
     }
 
-    private void stubGetPolicyType () {
-        when(policyTypeBusinessLogic.getLatestPolicyTypeByType(eq(OPENECOMP_ANTILOCATE_POLICY_TYPE), any())).thenReturn(
-                OPENECOMP_POLICY_TYPE);
+    private void stubGetPolicyType() {
+        when(policyTypeBusinessLogic.getLatestPolicyTypeByType(eq(OPENECOMP_ANTILOCATE_POLICY_TYPE), any()))
+            .thenReturn(OPENECOMP_POLICY_TYPE);
     }
 
     private static PolicyTypeDefinition buildOpenecompPolicyType() {
         return createPolicyTypeDefinition(OPENECOMP_POLICY_NAME, OPENECOMP_ANTILOCATE_POLICY_TYPE, ROOT_POLICIES_TYPE,
-                "The Openecomp Antilocate policy");
+            "The Openecomp Antilocate policy");
     }
 
     private static PolicyTypeDefinition createPolicyTypeDefinition(String policyName, String policyType, String derivedFrom, String description) {
index 7a8a15a..15b7706 100644 (file)
 
 package org.openecomp.sdc.be.components.impl;
 
-
-import static org.assertj.core.api.Java6Assertions.assertThat;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.fail;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.fail;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.ArgumentMatchers.anyBoolean;
 import static org.mockito.ArgumentMatchers.anyMap;
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.when;
+import static org.openecomp.sdc.be.dao.api.ActionStatus.POLICY_TARGET_DOES_NOT_EXIST;
+import static org.openecomp.sdc.be.dao.api.ActionStatus.PROPERTY_NOT_FOUND;
 
 import fj.data.Either;
 import java.util.ArrayList;
@@ -35,15 +38,15 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import org.apache.commons.collections.CollectionUtils;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
 import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException;
 import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
 import org.openecomp.sdc.be.components.property.PropertyDeclarationOrchestrator;
@@ -53,8 +56,8 @@ import org.openecomp.sdc.be.components.utils.ResourceBuilder;
 import org.openecomp.sdc.be.components.validation.UserValidations;
 import org.openecomp.sdc.be.config.ConfigurationManager;
 import org.openecomp.sdc.be.dao.api.ActionStatus;
-import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphDao;
+import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
 import org.openecomp.sdc.be.datatypes.elements.PolicyTargetType;
 import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition;
 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
@@ -73,6 +76,7 @@ import org.openecomp.sdc.be.model.PolicyDefinition;
 import org.openecomp.sdc.be.model.PolicyTypeDefinition;
 import org.openecomp.sdc.be.model.PropertyDefinition;
 import org.openecomp.sdc.be.model.Resource;
+import org.openecomp.sdc.be.model.Service;
 import org.openecomp.sdc.be.model.User;
 import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
 import org.openecomp.sdc.be.model.jsonjanusgraph.datamodel.ToscaElementTypeEnum;
@@ -85,9 +89,34 @@ import org.openecomp.sdc.common.impl.ExternalConfiguration;
 import org.openecomp.sdc.common.impl.FSConfigurationSource;
 import org.openecomp.sdc.exception.ResponseFormat;
 
-@RunWith(MockitoJUnitRunner.class)
-public class PolicyBusinessLogicTest {
-
+@ExtendWith(MockitoExtension.class)
+class PolicyBusinessLogicTest {
+
+    private static final String COMPONENT_ID = "componentId";
+    private static final String NON_EXIST_COMPONENT_ID = "nonExistComponentId";
+    private static final String COMPONENT_NAME = "componentName";
+    private static final String POLICY_TYPE_NAME = "policyTypeName";
+    private static final String POLICY_ID = "policyId";
+    private static final String INVALID_POLICY_ID = "invalidPolicyId";
+    private static final String POLICY_NAME = "policyName";
+    private static final String OTHER_POLICY_NAME = "otherPolicyName";
+    private static final String USER_ID = "jh0003";
+    private static final String UNIQUE_ID_EXSISTS = "uniqueIdExists";
+    private static final String UNIQUE_ID_DOESNT_EXSISTS = "uniqueIdDoesntExists";
+    private static final String CREATE_POLICY = "create Policy";
+    private static final String PROPERTY_NAME = "propDefinition";
+    private static final User user = buildUser();
+    private static final PolicyDefinition policy = buildPolicy(POLICY_NAME);
+    private static final Resource resource = buildResource();
+    private static final PolicyDefinition otherPolicy = buildPolicy(OTHER_POLICY_NAME);
+    private static final PolicyTypeDefinition policyType = buildPolicyType();
+    private static Either<Component, StorageOperationStatus> componentSuccessEither;
+    private static Either<PolicyTypeDefinition, StorageOperationStatus> getPolicyTypeSuccessEither;
+    private static Either<PolicyDefinition, StorageOperationStatus> policySuccessEither;
+    private final ConfigurationManager configurationManager = new ConfigurationManager(
+        new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"));
+    @Mock
+    private PropertyDeclarationOrchestrator propertyDeclarationOrchestrator;
     @InjectMocks
     private PolicyBusinessLogic businessLogic;
     @Mock
@@ -106,43 +135,72 @@ public class PolicyBusinessLogicTest {
     private ApplicationDataTypeCache applicationDataTypeCache;
     @Mock
     private PropertyOperation propertyOperation;
-    @Mock
-    PropertyDeclarationOrchestrator propertyDeclarationOrchestrator;
-
-    private final static String COMPONENT_ID = "componentId";
-    private final static String NON_EXIST_COMPONENT_ID = "nonExistComponentId";
-    private final static String COMPONENT_NAME = "componentName";
-    private final static String POLICY_TYPE_NAME = "policyTypeName";
-    private final static String POLICY_ID = "policyId";
-    private final static String INVALID_POLICY_ID = "invalidPolicyId";
-    private final static String POLICY_NAME = "policyName";
-    private final static String OTHER_POLICY_NAME = "otherPolicyName";
-    private final static String USER_ID = "jh0003";
-    private final static String UNIQUE_ID_EXSISTS = "uniqueIdExists";
-    private final static String UNIQUE_ID_DOESNT_EXSISTS = "uniqueIdDoesntExists";
-    private final static String CREATE_POLICY = "create Policy";
-    private final static String PROPERTY_NAME = "propDefinition";
-    private final static User user = buildUser();
-    private final static PolicyDefinition policy = buildPolicy(POLICY_NAME);
-    private final static PolicyDefinition otherPolicy = buildPolicy(OTHER_POLICY_NAME);
-    private final static Resource resource = buildResource();
-    private final static PolicyTypeDefinition policyType = buildPolicyType();
-
-    private static Either<Component, StorageOperationStatus> componentSuccessEither;
-    private static Either<PolicyTypeDefinition, StorageOperationStatus> getPolicyTypeSuccessEither;
-    private static Either<PolicyDefinition, StorageOperationStatus> policySuccessEither;
-    private static ResponseFormat notFoundResponse;
-    private static ResponseFormat invalidContentResponse;
-    private static ResponseFormat nameExistsResponse;
-    private final ConfigurationManager configurationManager = new ConfigurationManager(new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"));
 
-    @BeforeClass
-    public static void setup() {
+    @BeforeAll
+    static void setup() {
         createResponses();
     }
 
-    @Before
-    public void initBl() {
+    private static void createResponses() {
+        componentSuccessEither = Either.left(resource);
+        getPolicyTypeSuccessEither = Either.left(policyType);
+        policySuccessEither = Either.left(policy);
+    }
+
+    private static PolicyTypeDefinition buildPolicyType() {
+        PolicyTypeDefinition policyType = new PolicyTypeDefinition();
+        policyType.setType(POLICY_TYPE_NAME);
+        return policyType;
+    }
+
+    private static PolicyDefinition buildPolicy(String policyName) {
+        PolicyDefinition policy = new PolicyDefinition();
+        policy.setUniqueId(POLICY_ID);
+        policy.setPolicyTypeName(POLICY_TYPE_NAME);
+        policy.setComponentName(COMPONENT_NAME);
+        policy.setName(policyName);
+        return policy;
+    }
+
+    private static Resource buildResource() {
+        Resource resource = new Resource();
+        resource.setUniqueId(COMPONENT_ID);
+        resource.setName(COMPONENT_NAME);
+        resource.setCreatorUserId(USER_ID);
+        resource.setLastUpdaterUserId(USER_ID);
+        resource.setState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
+        resource.setIsDeleted(false);
+        resource.setResourceType(ResourceTypeEnum.VF);
+        resource.setToscaType(ToscaElementTypeEnum.TOPOLOGY_TEMPLATE.getValue());
+        resource.setComponentType(ComponentTypeEnum.RESOURCE);
+        Map<String, PolicyDefinition> policies = new HashMap<>();
+        policies.put(POLICY_ID, policy);
+        resource.setPolicies(policies);
+        return resource;
+    }
+
+    private static Service buildService() {
+        Service service = new Service();
+        service.setUniqueId(COMPONENT_ID);
+        service.setName(COMPONENT_NAME);
+        service.setCreatorUserId(USER_ID);
+        service.setLastUpdaterUserId(USER_ID);
+        service.setState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
+        service.setIsDeleted(false);
+        service.setToscaType(ToscaElementTypeEnum.TOPOLOGY_TEMPLATE.getValue());
+        service.setComponentType(ComponentTypeEnum.SERVICE);
+        Map<String, PolicyDefinition> policies = new HashMap<>();
+        policies.put(POLICY_ID, policy);
+        service.setPolicies(policies);
+        return service;
+    }
+
+    private static User buildUser() {
+        return new User(USER_ID);
+    }
+
+    @BeforeEach
+    void initBl() {
         MockitoAnnotations.openMocks(this);
         businessLogic.setComponentsUtils(componentsUtils);
         businessLogic.setToscaOperationFacade(toscaOperationFacade);
@@ -155,31 +213,18 @@ public class PolicyBusinessLogicTest {
         businessLogic.setPropertyDeclarationOrchestrator(propertyDeclarationOrchestrator);
     }
 
-
-    private static void createResponses() {
-        componentSuccessEither = Either.left(resource);
-        getPolicyTypeSuccessEither = Either.left(policyType);
-        policySuccessEither = Either.left(policy);
-        notFoundResponse = new ResponseFormat();
-        notFoundResponse.setStatus(404);
-        invalidContentResponse = new ResponseFormat();
-        invalidContentResponse.setStatus(400);
-        nameExistsResponse = new ResponseFormat();
-        nameExistsResponse.setStatus(409);
-    }
-
     @Test
-    public void createPolicySuccessTest(){
-        stubValidateAndLockSuccess(CREATE_POLICY);
+    void createPolicySuccessTest() {
+        stubValidateAndLockSuccess();
         when(policyTypeOperation.getLatestPolicyTypeByType(eq(POLICY_TYPE_NAME), any())).thenReturn(getPolicyTypeSuccessEither);
         when(toscaOperationFacade.associatePolicyToComponent(eq(COMPONENT_ID), any(PolicyDefinition.class), eq(0))).thenReturn(policySuccessEither);
         stubUnlockAndCommit();
         PolicyDefinition response = businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true);
-        assertThat(response.isEmpty()).isFalse();
+        assertFalse(response.isEmpty());
     }
 
     @Test
-    public void createPolicyFromCsarDefinitionTest() {
+    void createPolicyOnResourceFromCsarDefinitionTest() {
         String prop1 = "Prop_1";
         String prop2 = "Prop_2";
         Map<String, PolicyDefinition> policies = new HashMap<>();
@@ -199,186 +244,249 @@ public class PolicyBusinessLogicTest {
         Resource newResource = buildResource();
         newResource.setPolicies(policies);
         newResource.setComponentInstances(instanceList);
-        
+
+        when(policyTypeOperation.getLatestPolicyTypeByType(eq(POLICY_TYPE_NAME), any())).thenReturn(getPolicyTypeSuccessEither);
+        when(toscaOperationFacade.associatePolicyToComponent(eq(COMPONENT_ID), any(PolicyDefinition.class), eq(0))).thenReturn(Either.left(policy));
+        when(toscaOperationFacade.getToscaFullElement(COMPONENT_ID)).thenReturn(Either.left(newResource));
+        when(toscaOperationFacade.updatePolicyOfComponent(eq(COMPONENT_ID), any(PolicyDefinition.class), any(PromoteVersionEnum.class))).thenReturn(
+            Either.left(policy));
+        when(propertyOperation.validateAndUpdatePropertyValue(eq(null), eq(prop1), anyBoolean(), eq(null), anyMap())).thenReturn(Either.left(prop1));
+        when(propertyOperation.validateAndUpdatePropertyValue(eq(null), eq(prop2), anyBoolean(), eq(null), anyMap())).thenReturn(Either.left(prop2));
+
+        Map<String, PolicyDefinition> createdPolicy = businessLogic.createPolicies(newResource, policies);
+
+        assertFalse(createdPolicy.isEmpty());
+        PolicyDefinition newPolicy = createdPolicy.get(POLICY_NAME);
+        assertNotNull(newPolicy);
+        assertTrue(newPolicy.getIsFromCsar());
+        assertNotNull(newPolicy.getTargets());
+        assertNotNull(newPolicy.getProperties());
+        assertEquals(2, newPolicy.getProperties().size());
+        assertEquals(1, newPolicy.getTargets().size());
+    }
+
+    @Test
+    void createPolicyOnServiceFromCsarDefinitionTest() {
+        String prop1 = "Prop_1";
+        String prop2 = "Prop_2";
+        Map<String, PolicyDefinition> policies = new HashMap<>();
+        PolicyDefinition policy = buildPolicy(POLICY_NAME);
+        Map<PolicyTargetType, List<String>> targets = getTargets();
+        PropertyDataDefinition[] properties = getProperties(prop1, prop2);
+        policy.setTargets(targets);
+        policy.setProperties(Arrays.asList(properties));
+        policies.put(POLICY_NAME, policy);
+
+        List<ComponentInstance> instanceList = new ArrayList<>();
+        ComponentInstance componentInstance = new ComponentInstance();
+        componentInstance.setUniqueId(UNIQUE_ID_EXSISTS);
+        componentInstance.setName(UNIQUE_ID_EXSISTS);
+        instanceList.add(componentInstance);
+
+        Service newService = buildService();
+        newService.setPolicies(policies);
+        newService.setComponentInstances(instanceList);
+
         when(policyTypeOperation.getLatestPolicyTypeByType(eq(POLICY_TYPE_NAME), any())).thenReturn(getPolicyTypeSuccessEither);
         when(toscaOperationFacade.associatePolicyToComponent(eq(COMPONENT_ID), any(PolicyDefinition.class), eq(0))).thenReturn(Either.left(policy));
-        when(toscaOperationFacade.getToscaFullElement(eq(COMPONENT_ID))).thenReturn(Either.left(newResource));
-        when(toscaOperationFacade.updatePolicyOfComponent(eq(COMPONENT_ID), any(PolicyDefinition.class), any(PromoteVersionEnum.class))).thenReturn(Either.left(policy));
+        when(toscaOperationFacade.getToscaFullElement(COMPONENT_ID)).thenReturn(Either.left(newService));
+        when(toscaOperationFacade.updatePolicyOfComponent(eq(COMPONENT_ID), any(PolicyDefinition.class), any(PromoteVersionEnum.class))).thenReturn(
+            Either.left(policy));
         when(propertyOperation.validateAndUpdatePropertyValue(eq(null), eq(prop1), anyBoolean(), eq(null), anyMap())).thenReturn(Either.left(prop1));
         when(propertyOperation.validateAndUpdatePropertyValue(eq(null), eq(prop2), anyBoolean(), eq(null), anyMap())).thenReturn(Either.left(prop2));
 
-        Map<String, PolicyDefinition> createdPolicy = businessLogic.createPoliciesFromParsedCsar(newResource, policies);
+        Map<String, PolicyDefinition> createdPolicy = businessLogic.createPolicies(newService, policies);
 
-        assertThat(createdPolicy.isEmpty()).isFalse();
+        assertFalse(createdPolicy.isEmpty());
         PolicyDefinition newPolicy = createdPolicy.get(POLICY_NAME);
         assertNotNull(newPolicy);
+        assertTrue(newPolicy.getIsFromCsar());
         assertNotNull(newPolicy.getTargets());
         assertNotNull(newPolicy.getProperties());
         assertEquals(2, newPolicy.getProperties().size());
         assertEquals(1, newPolicy.getTargets().size());
+        assertTrue(newPolicy.getTargets().containsKey(PolicyTargetType.COMPONENT_INSTANCES));
+        assertEquals(2, newPolicy.getTargets().get(PolicyTargetType.COMPONENT_INSTANCES).size());
+        newPolicy.getTargets().get(PolicyTargetType.COMPONENT_INSTANCES).forEach(t -> assertTrue(t.equals(UNIQUE_ID_EXSISTS)));
+        newPolicy.getProperties().forEach(p -> assertTrue(p.getName().equals(prop1) || p.getName().equals(prop2)));
     }
-    
+
     @Test
-    public void createPolicyUserFailureTest(){
+    void createPolicyUserFailureTest() {
         ByActionStatusComponentException userNotFoundException = new ByActionStatusComponentException(ActionStatus.USER_NOT_FOUND);
-        when(userValidations.validateUserExists(eq(USER_ID))).thenThrow(userNotFoundException);
-        stubRollback();
-        try{
+        when(userValidations.validateUserExists(USER_ID)).thenThrow(userNotFoundException);
+        try {
             businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true);
-        } catch(ByActionStatusComponentException e){
+        } catch (ByActionStatusComponentException e) {
             assertEquals(e.getActionStatus(), userNotFoundException.getActionStatus());
         }
     }
 
-    private void assertNotFound(Either<PolicyDefinition, ResponseFormat> response) {
-        assertThat(response.isRight() && response.right().value().getStatus().equals(404)).isTrue();
-    }
-
-    @Test(expected = ComponentException.class)
-    public void createPolicyComponentFailureTest(){
-        when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(user);
+    @Test
+    void createPolicyComponentFailureTest() {
+        when(userValidations.validateUserExists(USER_ID)).thenReturn(user);
         Either<Component, StorageOperationStatus> componentNotFoundResponse = Either.right(StorageOperationStatus.NOT_FOUND);
-        when(componentsUtils.convertFromStorageResponse(eq(StorageOperationStatus.NOT_FOUND), eq(ComponentTypeEnum.RESOURCE))).thenReturn(ActionStatus.RESOURCE_NOT_FOUND);
+        when(componentsUtils.convertFromStorageResponse(StorageOperationStatus.NOT_FOUND, ComponentTypeEnum.RESOURCE)).thenReturn(
+            ActionStatus.RESOURCE_NOT_FOUND);
         when(toscaOperationFacade.getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class))).thenReturn(componentNotFoundResponse);
-        businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true);
+        assertThrows(ComponentException.class,
+            () -> businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true));
     }
-    
-    @Test(expected = ComponentException.class)
-    public void createPolicyPolicyTypeFailureTest(){
-        stubValidateAndLockSuccess(CREATE_POLICY);
+
+    @Test
+    void createPolicyPolicyTypeFailureTest() {
+        stubValidateAndLockSuccess();
         Either<PolicyTypeDefinition, StorageOperationStatus> getPolicyTypeFailed = Either.right(StorageOperationStatus.NOT_FOUND);
         when(policyTypeOperation.getLatestPolicyTypeByType(eq(POLICY_TYPE_NAME), any())).thenReturn(getPolicyTypeFailed);
-        when(componentsUtils.convertFromStorageResponse(eq(getPolicyTypeFailed.right().value()))).thenReturn(ActionStatus.RESOURCE_NOT_FOUND);
+        when(componentsUtils.convertFromStorageResponse(getPolicyTypeFailed.right().value())).thenReturn(ActionStatus.RESOURCE_NOT_FOUND);
         stubUnlockAndRollback();
-        businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true);
+        assertThrows(ComponentException.class,
+            () -> businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true));
     }
-    
-    @Test(expected = ComponentException.class)
-    public void createPolicyComponentTypeFailureTest(){
-        stubValidateAndLockSuccess(CREATE_POLICY);
+
+    @Test
+    void createPolicyComponentTypeFailureTest() {
+        stubValidateAndLockSuccess();
         when(policyTypeOperation.getLatestPolicyTypeByType(eq(POLICY_TYPE_NAME), any())).thenReturn(getPolicyTypeSuccessEither);
         Either<PolicyDefinition, StorageOperationStatus> addPolicyRes = Either.right(StorageOperationStatus.BAD_REQUEST);
         when(toscaOperationFacade.associatePolicyToComponent(eq(COMPONENT_ID), any(PolicyDefinition.class), eq(0))).thenReturn(addPolicyRes);
-        when(componentsUtils.convertFromStorageResponse(eq(addPolicyRes.right().value()))).thenReturn(ActionStatus.INVALID_CONTENT);
+        when(componentsUtils.convertFromStorageResponse(addPolicyRes.right().value())).thenReturn(ActionStatus.INVALID_CONTENT);
 
         stubUnlockAndRollback();
-        businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true);
+        assertThrows(ComponentException.class,
+            () -> businessLogic.createPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_TYPE_NAME, USER_ID, true));
     }
 
     @Test
-    public void updatePolicySuccessTest(){
-        stubValidateAndLockSuccess(CREATE_POLICY);
-        when(toscaOperationFacade.updatePolicyOfComponent(eq(COMPONENT_ID), any(PolicyDefinition.class), any(PromoteVersionEnum.class))).thenReturn(policySuccessEither);
+    void updatePolicySuccessTest() {
+        stubValidateAndLockSuccess();
+        when(toscaOperationFacade.updatePolicyOfComponent(eq(COMPONENT_ID), any(PolicyDefinition.class), any(PromoteVersionEnum.class))).thenReturn(
+            policySuccessEither);
         stubUnlockAndCommit();
-        PolicyDefinition  response = businessLogic.updatePolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, otherPolicy, USER_ID, true);
-        assertThat(response.isEmpty()).isFalse();
+        PolicyDefinition response = businessLogic.updatePolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, otherPolicy, USER_ID, true);
+        assertFalse(response.isEmpty());
     }
-    
-    @Test(expected = ComponentException.class)
-    public void updatePolicyNameFailureTest(){
-        stubValidateAndLockSuccess(CREATE_POLICY);
+
+    @Test
+    void updatePolicyNameFailureTest() {
+        stubValidateAndLockSuccess();
         stubUnlockAndRollback();
-        businessLogic.updatePolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, policy, USER_ID, true);
+        assertThrows(ComponentException.class, () -> businessLogic.updatePolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, policy, USER_ID, true));
     }
-    
+
     @Test
-    public void getPolicySuccessTest(){
-        stubValidationSuccess(CREATE_POLICY);
-        stubCommit();
+    void getPolicySuccessTest() {
+        stubValidationSuccess();
         PolicyDefinition response = businessLogic.getPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, USER_ID);
-        assertThat(response.isEmpty()).isFalse();
+        assertFalse(response.isEmpty());
     }
-    
-    @Test(expected = ComponentException.class)
-    public void getPolicyFailureTest(){
-        stubValidationSuccess(CREATE_POLICY);
-        stubRollback();
-        businessLogic.getPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, INVALID_POLICY_ID, USER_ID);
+
+    @Test
+    void getPolicyFailureTest() {
+        stubValidationSuccess();
+        assertThrows(ComponentException.class, () -> businessLogic.getPolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, INVALID_POLICY_ID, USER_ID));
     }
-    
+
     @Test
-    public void deletePolicySuccessTest(){
-        stubValidateAndLockSuccess(CREATE_POLICY);
+    void deletePolicySuccessTest() {
+        stubValidateAndLockSuccess();
         stubCommit();
-        when(toscaOperationFacade.removePolicyFromComponent(eq(COMPONENT_ID),eq(POLICY_ID))).thenReturn(StorageOperationStatus.OK);
-        PolicyDefinition  response = businessLogic.deletePolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, USER_ID, true);
-        assertThat(response.isEmpty()).isFalse();
-    }
-    
-    @Test(expected = ComponentException.class)
-    public void deletePolicyFailureTest(){
-        stubValidateAndLockSuccess(CREATE_POLICY);
-        stubCommit();
-        businessLogic.deletePolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, INVALID_POLICY_ID, USER_ID, true);
+        when(toscaOperationFacade.removePolicyFromComponent(COMPONENT_ID, POLICY_ID)).thenReturn(StorageOperationStatus.OK);
+        PolicyDefinition response = businessLogic.deletePolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, USER_ID, true);
+        assertFalse(response.isEmpty());
     }
 
+    @Test
+    void deletePolicyFailureTest() {
+        stubValidateAndLockSuccess();
+        assertThrows(ComponentException.class,
+            () -> businessLogic.deletePolicy(ComponentTypeEnum.RESOURCE, COMPONENT_ID, INVALID_POLICY_ID, USER_ID, true));
+    }
 
     @Test
-    public void updatePolicyPropertiesSuccessTest(){
-        stubValidateAndLockSuccess(CREATE_POLICY);
+    void updatePolicyPropertiesSuccessTest() {
+        stubValidateAndLockSuccess();
         String prop1 = "Name";
         String prop2 = "Type";
         when(propertyOperation.validateAndUpdatePropertyValue(eq(null), eq(prop1), anyBoolean(), eq(null), anyMap())).thenReturn(Either.left(prop1));
         when(propertyOperation.validateAndUpdatePropertyValue(eq(null), eq(prop2), anyBoolean(), eq(null), anyMap())).thenReturn(Either.left(prop2));
-        when(toscaOperationFacade.updatePolicyOfComponent(eq(COMPONENT_ID), any(PolicyDefinition.class), any(PromoteVersionEnum.class))).thenReturn(policySuccessEither);
+        when(toscaOperationFacade.updatePolicyOfComponent(eq(COMPONENT_ID), any(PolicyDefinition.class), any(PromoteVersionEnum.class))).thenReturn(
+            policySuccessEither);
         stubUnlockAndCommit();
         PropertyDataDefinition[] properties = getProperties(prop1, prop2);
         policy.setProperties(Arrays.asList(properties));
-        List<PropertyDataDefinition>  response = businessLogic.updatePolicyProperties(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, properties , USER_ID, true);
+        List<PropertyDataDefinition> response = businessLogic.updatePolicyProperties(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, properties,
+            USER_ID, true);
         List<PropertyDataDefinition> updatedProperties = response;
-        assertThat(updatedProperties.size()).isEqualTo(2);
+        assertEquals(2, updatedProperties.size());
     }
 
     @Test
-    public void updatePolicyTargetsSuccessTest(){
-        stubValidateAndLockSuccess(CREATE_POLICY);
+    void updatePolicyTargetsSuccessTest() {
+        stubValidateAndLockSuccess();
         stubGetToscaFullElementSuccess();
         stubUpdatePolicyOfComponentSuccess();
         stubGetToscaElementSuccess();
         PolicyDefinition policyResult = businessLogic.updatePolicyTargets(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, getTargets(), USER_ID);
         Map<PolicyTargetType, List<String>> targets = getTargets();
-        assertThat(policyResult.getTargets().values()).usingFieldByFieldElementComparator().containsExactlyInAnyOrder(targets.get(PolicyTargetType.GROUPS), targets.get(PolicyTargetType.COMPONENT_INSTANCES));
+        assertTrue(policyResult.getTargets().values()
+            .containsAll(Arrays.asList(targets.get(PolicyTargetType.GROUPS), targets.get(PolicyTargetType.COMPONENT_INSTANCES))));
 
     }
 
-    @Test(expected = ComponentException.class)
-    public void updatePolicyTargetsTargetIDFailureTest(){
-        stubValidateAndLockSuccess(CREATE_POLICY);
+    @Test
+    void updatePolicyTargetsTargetIDFailureTest() {
+        stubValidateAndLockSuccess();
         stubGetToscaFullElementSuccess();
         stubGetToscaElementSuccess();
-        stubUpdatePolicyOfComponentSuccess();
         stubRollback();
-        businessLogic.updatePolicyTargets(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, getTargetListFakeId(), USER_ID);
-
+        Map<PolicyTargetType, List<String>> targetListFakeId = getTargetListFakeId();
+        final var componentException = assertThrows(ComponentException.class,
+            () -> businessLogic.updatePolicyTargets(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, targetListFakeId, USER_ID));
+        assertNotNull(componentException);
+        assertEquals(POLICY_TARGET_DOES_NOT_EXIST, componentException.getActionStatus());
+        assertEquals(400, componentException.getResponseFormat().getStatus());
+        assertEquals(1, componentException.getParams().length);
+        assertEquals(UNIQUE_ID_DOESNT_EXSISTS, componentException.getParams()[0]);
     }
 
-
-    @Test(expected = ComponentException.class)
-    public void updatePolicyTargetsTypeFailureTest(){
-        stubValidateAndLockSuccess(CREATE_POLICY);
+    @Test
+    void updatePolicyTargetsTypeFailureTest() {
+        stubValidateAndLockSuccess();
         stubGetToscaFullElementSuccess();
         stubGetToscaElementSuccess();
-        stubUpdatePolicyOfComponentSuccess();
         stubRollback();
-        businessLogic.updatePolicyTargets(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, getTargetListFakeType(), USER_ID);
-
+        Map<PolicyTargetType, List<String>> targetListFakeType = getTargetListFakeType();
+        final var componentException = assertThrows(ComponentException.class,
+            () -> businessLogic.updatePolicyTargets(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, targetListFakeType, USER_ID));
+        assertNotNull(componentException);
+        assertEquals(POLICY_TARGET_DOES_NOT_EXIST, componentException.getActionStatus());
+        assertEquals(400, componentException.getResponseFormat().getStatus());
+        assertEquals(1, componentException.getParams().length);
+        assertEquals(UNIQUE_ID_EXSISTS, componentException.getParams()[0]);
     }
 
     private void stubUpdatePolicyOfComponentSuccess() {
-        when(toscaOperationFacade.updatePolicyOfComponent(eq(COMPONENT_ID), eq(policy), any(PromoteVersionEnum.class))).thenReturn(policySuccessEither);
+        when(toscaOperationFacade.updatePolicyOfComponent(eq(COMPONENT_ID), eq(policy), any(PromoteVersionEnum.class))).thenReturn(
+            policySuccessEither);
     }
 
-
-    @Test(expected = ComponentException.class)
-    public void updatePolicyPropertiesFailureTest(){
-        stubValidateAndLockSuccess(CREATE_POLICY);
-        stubUnlockAndRollback();
+    @Test
+    void updatePolicyPropertiesFailureTest() {
+        stubValidateAndLockSuccess();
+        when(graphLockOperation.unlockComponent(eq(COMPONENT_ID), any(NodeTypeEnum.class))).thenReturn(StorageOperationStatus.OK);
         policy.setProperties(null);
-        businessLogic.updatePolicyProperties(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, getProperties("Name", "Type") , USER_ID, true);
+        PropertyDataDefinition[] properties = getProperties("Name", "Type");
+        final var componentException = assertThrows(ComponentException.class,
+            () -> businessLogic.updatePolicyProperties(ComponentTypeEnum.RESOURCE, COMPONENT_ID, POLICY_ID, properties, USER_ID, true));
+        assertNotNull(componentException);
+        assertEquals(PROPERTY_NOT_FOUND, componentException.getActionStatus());
+        assertEquals(404, componentException.getResponseFormat().getStatus());
+        assertEquals(0, componentException.getParams().length);
     }
 
     @Test
-    public void testDeclarePropertiesAsPoliciesSuccess() {
+    void testDeclarePropertiesAsPoliciesSuccess() {
         when(toscaOperationFacade.getToscaElement(eq(COMPONENT_ID), Mockito.any(ComponentParametersView.class))).thenReturn(Either.left(resource));
         when(graphLockOperation.lockComponent(any(), any())).thenReturn(StorageOperationStatus.OK);
         when(graphLockOperation.unlockComponent(any(), any())).thenReturn(StorageOperationStatus.OK);
@@ -386,28 +494,30 @@ public class PolicyBusinessLogicTest {
         when(propertyDeclarationOrchestrator.declarePropertiesToPolicies(any(), any())).thenReturn(Either.left(getDeclaredPolicies()));
 
         Either<List<PolicyDefinition>, ResponseFormat> declaredPoliciesEither = businessLogic
-                                                                                          .declareProperties(USER_ID,
-                                                                                                  resource.getUniqueId(),
-                                                                                                  ComponentTypeEnum.RESOURCE,
-                                                                                                  getInputForPropertyToPolicyDeclaration());
+            .declareProperties(USER_ID,
+                resource.getUniqueId(),
+                ComponentTypeEnum.RESOURCE,
+                getInputForPropertyToPolicyDeclaration());
 
-        assertThat(declaredPoliciesEither.isLeft()).isTrue();
+        assertTrue(declaredPoliciesEither.isLeft());
 
         List<PolicyDefinition> declaredPolicies = declaredPoliciesEither.left().value();
-        assertThat(CollectionUtils.isNotEmpty(declaredPolicies)).isTrue();
+        assertTrue(CollectionUtils.isNotEmpty(declaredPolicies));
         assertEquals(1, declaredPolicies.size());
     }
 
     @Test
-    public void testDeclarePropertiesAsPoliciesFailure() {
-        when(toscaOperationFacade.getToscaElement(eq(NON_EXIST_COMPONENT_ID), Mockito.any(ComponentParametersView.class))).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
-        when(componentsUtils.convertFromStorageResponse(eq(StorageOperationStatus.NOT_FOUND), eq(ComponentTypeEnum.RESOURCE))).thenReturn(ActionStatus.RESOURCE_NOT_FOUND);
+    void testDeclarePropertiesAsPoliciesFailure() {
+        when(toscaOperationFacade.getToscaElement(eq(NON_EXIST_COMPONENT_ID), Mockito.any(ComponentParametersView.class))).thenReturn(
+            Either.right(StorageOperationStatus.NOT_FOUND));
+        when(componentsUtils.convertFromStorageResponse(StorageOperationStatus.NOT_FOUND, ComponentTypeEnum.RESOURCE)).thenReturn(
+            ActionStatus.RESOURCE_NOT_FOUND);
         try {
             businessLogic
-                    .declareProperties(USER_ID,
-                            NON_EXIST_COMPONENT_ID,
-                            ComponentTypeEnum.RESOURCE,
-                            getInputForPropertyToPolicyDeclaration());
+                .declareProperties(USER_ID,
+                    NON_EXIST_COMPONENT_ID,
+                    ComponentTypeEnum.RESOURCE,
+                    getInputForPropertyToPolicyDeclaration());
         } catch (ComponentException e) {
             assertEquals(ActionStatus.RESOURCE_NOT_FOUND, e.getActionStatus());
             return;
@@ -450,8 +560,7 @@ public class PolicyBusinessLogicTest {
         property2.setValue(prop2);
         return new PropertyDataDefinition[]{property1, property2};
     }
-    
-    
+
     private void stubUnlockAndRollback() {
         when(graphLockOperation.unlockComponent(eq(COMPONENT_ID), any(NodeTypeEnum.class))).thenReturn(StorageOperationStatus.OK);
         stubRollback();
@@ -469,23 +578,23 @@ public class PolicyBusinessLogicTest {
         when(graphLockOperation.unlockComponent(eq(COMPONENT_ID), any(NodeTypeEnum.class))).thenReturn(StorageOperationStatus.OK);
         stubCommit();
     }
-    
-    private void stubValidateAndLockSuccess(String methodName) {
-        stubValidationSuccess(methodName);
+
+    private void stubValidateAndLockSuccess() {
+        stubValidationSuccess();
         when(graphLockOperation.lockComponent(eq(COMPONENT_ID), any(NodeTypeEnum.class))).thenReturn(StorageOperationStatus.OK);
-   }
+    }
 
-    private void stubValidationSuccess(String methodName) {
-        when(userValidations.validateUserExists(eq(USER_ID))).thenReturn(user);
+    private void stubValidationSuccess() {
+        when(userValidations.validateUserExists(USER_ID)).thenReturn(user);
         when(toscaOperationFacade.getToscaElement(eq(COMPONENT_ID), any(ComponentParametersView.class))).thenReturn(componentSuccessEither);
     }
 
     private void stubGetToscaFullElementSuccess() {
-        when(toscaOperationFacade.getToscaFullElement(eq(COMPONENT_ID))).thenReturn(buildElementEither());
+        when(toscaOperationFacade.getToscaFullElement(COMPONENT_ID)).thenReturn(buildElementEither());
     }
 
     private void stubGetToscaElementSuccess() {
-        when(toscaOperationFacade.getToscaElement(eq(COMPONENT_ID))).thenReturn(componentSuccessEither);
+        when(toscaOperationFacade.getToscaElement(COMPONENT_ID)).thenReturn(componentSuccessEither);
     }
 
     private Either<Component, StorageOperationStatus> buildElementEither() {
@@ -503,46 +612,6 @@ public class PolicyBusinessLogicTest {
         return targets;
     }
 
-
-
-    private static PolicyTypeDefinition buildPolicyType() {
-        PolicyTypeDefinition policyType = new PolicyTypeDefinition();
-        policyType.setType(POLICY_TYPE_NAME);
-        return policyType;
-    }
-
-    private static PolicyDefinition buildPolicy(String policyName) {
-        PolicyDefinition policy = new PolicyDefinition();
-        policy.setUniqueId(POLICY_ID);
-        policy.setPolicyTypeName(POLICY_TYPE_NAME);
-        policy.setComponentName(COMPONENT_NAME);
-        policy.setName(policyName);
-        return policy;
-    }
-
-    private static Resource buildResource() {
-        Resource resource = new Resource();
-        resource.setUniqueId(COMPONENT_ID);
-        resource.setName(COMPONENT_NAME);
-        resource.setCreatorUserId(USER_ID);
-        resource.setLastUpdaterUserId(USER_ID);
-        resource.setState(LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT);
-        resource.setIsDeleted(false);
-        resource.setResourceType(ResourceTypeEnum.VF);
-        resource.setToscaType(ToscaElementTypeEnum.TOPOLOGY_TEMPLATE.getValue());
-        resource.setComponentType(ComponentTypeEnum.RESOURCE);
-        Map<String, PolicyDefinition> policies = new HashMap<>();
-        policies.put(POLICY_ID, policy);
-        resource.setPolicies(policies);
-        return resource;
-    }
-
-    private static User buildUser() {
-        User user = new User();
-        user.setUserId(USER_ID);
-        return user;
-    }
-
     private Map<PolicyTargetType, List<String>> getTargetListFakeType() {
         Map<PolicyTargetType, List<String>> targets = new HashMap<>();
         targets.put(PolicyTargetType.TYPE_DOES_NOT_EXIST, Collections.singletonList(UNIQUE_ID_EXSISTS));
index 5b45851..049f8a5 100644 (file)
@@ -91,10 +91,18 @@ import org.springframework.web.context.WebApplicationContext;
 
 class ServiceBusinessLogicBaseTestSetup extends BaseBusinessLogicMock {
 
-    protected ServiceBusinessLogic bl;
     protected static final String SERVICE_CATEGORY = "Mobility";
     protected static final String INSTANTIATION_TYPE = "A-la-carte";
+    protected static final String CERTIFIED_VERSION = "1.0";
+    protected static final String UNCERTIFIED_VERSION = "0.2";
+    protected static final String COMPONNET_ID = "myUniqueId";
+    protected static final String GENERIC_SERVICE_NAME = "org.openecomp.resource.abstract.nodes.service";
+    protected static final String SERVICE_ROLE = JsonPresentationFields.SERVICE_ROLE.getPresentation();
+    protected static final String SERVICE_TYPE = JsonPresentationFields.SERVICE_TYPE.getPresentation();
+    protected static final String SERVICE_FUNCTION = JsonPresentationFields.SERVICE_FUNCTION.getPresentation();
     protected final ServletContext servletContext = Mockito.mock(ServletContext.class);
+    protected final ComponentValidator componentValidator = Mockito.mock(ComponentValidator.class);
+    protected ServiceBusinessLogic bl;
     protected UserBusinessLogic mockUserAdmin = Mockito.mock(UserBusinessLogic.class);
     protected WebAppContextWrapper webAppContextWrapper = Mockito.mock(WebAppContextWrapper.class);
     protected WebApplicationContext webAppContext = Mockito.mock(WebApplicationContext.class);
@@ -112,37 +120,26 @@ class ServiceBusinessLogicBaseTestSetup extends BaseBusinessLogicMock {
     protected ResourceAdminEvent auditArchive2 = Mockito.mock(ResourceAdminEvent.class);
     protected ResourceAdminEvent auditRestore = Mockito.mock(ResourceAdminEvent.class);
     protected ModelOperation modelOperation = Mockito.mock(ModelOperation.class);
-    IElementOperation mockElementDao = new ElementOperationMock();
-    DistributionEngine distributionEngine =  Mockito.mock(DistributionEngine.class);
-    ServiceDistributionValidation serviceDistributionValidation = Mockito.mock(ServiceDistributionValidation.class);
-    ComponentInstanceBusinessLogic componentInstanceBusinessLogic = Mockito.mock(ComponentInstanceBusinessLogic.class);
-    ForwardingPathValidator forwardingPathValidator = Mockito.mock(ForwardingPathValidator.class);
-    UiComponentDataConverter uiComponentDataConverter = Mockito.mock(UiComponentDataConverter.class);
     protected ServiceTypeValidator serviceTypeValidator = new ServiceTypeValidator(componentsUtils);
-    protected ServiceCategoryValidator serviceCategoryValidator = new ServiceCategoryValidator(componentsUtils, mockElementDao);
     protected ServiceRoleValidator serviceRoleValidator = new ServiceRoleValidator(componentsUtils);
     protected ServiceFunctionValidator serviceFunctionValidator = new ServiceFunctionValidator(componentsUtils);
     protected ServiceInstantiationTypeValidator serviceInstantiationTypeValidator = new ServiceInstantiationTypeValidator(componentsUtils);
-    protected ComponentDescriptionValidator componentDescriptionValidator =  new ComponentDescriptionValidator(componentsUtils);
-    protected ComponentProjectCodeValidator componentProjectCodeValidator =  new ComponentProjectCodeValidator(componentsUtils);
+    protected ComponentDescriptionValidator componentDescriptionValidator = new ComponentDescriptionValidator(componentsUtils);
+    protected ComponentProjectCodeValidator componentProjectCodeValidator = new ComponentProjectCodeValidator(componentsUtils);
     protected ComponentIconValidator componentIconValidator = new ComponentIconValidator(componentsUtils);
     protected ComponentContactIdValidator componentContactIdValidator = new ComponentContactIdValidator(componentsUtils);
     protected ComponentTagsValidator componentTagsValidator = new ComponentTagsValidator(componentsUtils);
     protected ComponentNameValidator componentNameValidator = new ComponentNameValidator(componentsUtils, toscaOperationFacade);
-    protected final ComponentValidator componentValidator = Mockito.mock(ComponentValidator.class);
-    protected ServiceValidator serviceValidator = createServiceValidator();
-
     protected User user = null;
     protected Resource genericService = null;
-
-    protected static final String CERTIFIED_VERSION = "1.0";
-    protected static final String UNCERTIFIED_VERSION = "0.2";
-    protected static final String COMPONNET_ID = "myUniqueId";
-    protected static final String GENERIC_SERVICE_NAME = "org.openecomp.resource.abstract.nodes.service";
-
-    protected static final String SERVICE_ROLE = JsonPresentationFields.SERVICE_ROLE.getPresentation();
-    protected static final String SERVICE_TYPE = JsonPresentationFields.SERVICE_TYPE.getPresentation();
-    protected static final String SERVICE_FUNCTION = JsonPresentationFields.SERVICE_FUNCTION.getPresentation();
+    IElementOperation mockElementDao = new ElementOperationMock();
+    protected ServiceCategoryValidator serviceCategoryValidator = new ServiceCategoryValidator(componentsUtils, mockElementDao);
+    protected ServiceValidator serviceValidator = createServiceValidator();
+    DistributionEngine distributionEngine = Mockito.mock(DistributionEngine.class);
+    ServiceDistributionValidation serviceDistributionValidation = Mockito.mock(ServiceDistributionValidation.class);
+    ComponentInstanceBusinessLogic componentInstanceBusinessLogic = Mockito.mock(ComponentInstanceBusinessLogic.class);
+    ForwardingPathValidator forwardingPathValidator = Mockito.mock(ForwardingPathValidator.class);
+    UiComponentDataConverter uiComponentDataConverter = Mockito.mock(UiComponentDataConverter.class);
 
     public ServiceBusinessLogicBaseTestSetup() {
 
@@ -150,19 +147,17 @@ class ServiceBusinessLogicBaseTestSetup extends BaseBusinessLogicMock {
 
     protected ServiceValidator createServiceValidator() {
         List<ComponentFieldValidator> componentFieldValidators = Arrays.asList(componentContactIdValidator,
-                componentDescriptionValidator,
-                componentIconValidator, componentNameValidator,
-                new ComponentProjectCodeValidator(componentsUtils),
-                componentTagsValidator);
+            componentDescriptionValidator,
+            componentIconValidator, componentNameValidator,
+            new ComponentProjectCodeValidator(componentsUtils),
+            componentTagsValidator);
 
         List<ServiceFieldValidator> serviceFieldValidators = Arrays.asList(serviceCategoryValidator, new ServiceEnvironmentContextValidator(),
-                serviceInstantiationTypeValidator, new ServiceNamingPolicyValidator(componentsUtils),
-                serviceRoleValidator, serviceTypeValidator);
+            serviceInstantiationTypeValidator, new ServiceNamingPolicyValidator(componentsUtils),
+            serviceRoleValidator, serviceTypeValidator);
         return new ServiceValidator(componentsUtils, componentFieldValidators, serviceFieldValidators);
     }
 
-
-
     @BeforeEach
     public void setup() {
 
@@ -188,7 +183,8 @@ class ServiceBusinessLogicBaseTestSetup extends BaseBusinessLogicMock {
         when(catalogOperation.updateCatalog(Mockito.any(), Mockito.any())).thenReturn(ActionStatus.OK);
         // artifact bussinesslogic
         ArtifactDefinition artifactDef = new ArtifactDefinition();
-        when(artifactBl.createArtifactPlaceHolderInfo(Mockito.any(), Mockito.anyString(), Mockito.anyMap(), Mockito.any(User.class), Mockito.any(ArtifactGroupTypeEnum.class))).thenReturn(artifactDef);
+        when(artifactBl.createArtifactPlaceHolderInfo(Mockito.any(), Mockito.anyString(), Mockito.anyMap(), Mockito.any(User.class),
+            Mockito.any(ArtifactGroupTypeEnum.class))).thenReturn(artifactDef);
 
         // createService
         Service serviceResponse = createServiceObject(true);
@@ -204,27 +200,22 @@ class ServiceBusinessLogicBaseTestSetup extends BaseBusinessLogicMock {
         Either<Resource, StorageOperationStatus> findLatestGeneric = Either.left(genericService);
         when(toscaOperationFacade.getLatestCertifiedNodeTypeByToscaResourceName(GENERIC_SERVICE_NAME)).thenReturn(findLatestGeneric);
 
-
-        bl = new ServiceBusinessLogic(elementDao, groupOperation, groupInstanceOperation,
-                groupTypeOperation, groupBusinessLogic, interfaceOperation, interfaceLifecycleTypeOperation,
-                artifactBl, distributionEngine, componentInstanceBusinessLogic,
-                serviceDistributionValidation, forwardingPathValidator, uiComponentDataConverter,
-                artifactToscaOperation, componentContactIdValidator,
-                componentNameValidator, componentTagsValidator, componentValidator,
-                componentIconValidator, componentProjectCodeValidator, componentDescriptionValidator, modelOperation);
+        bl = new ServiceBusinessLogic(elementDao, groupOperation, groupInstanceOperation, groupTypeOperation, groupBusinessLogic, interfaceOperation,
+            interfaceLifecycleTypeOperation, artifactBl, distributionEngine, componentInstanceBusinessLogic, serviceDistributionValidation,
+            forwardingPathValidator, uiComponentDataConverter, artifactToscaOperation, componentContactIdValidator, componentNameValidator,
+            componentTagsValidator, componentValidator, componentIconValidator, componentProjectCodeValidator, componentDescriptionValidator,
+            modelOperation, serviceRoleValidator, serviceInstantiationTypeValidator, serviceCategoryValidator, serviceValidator, null);
         bl.setComponentContactIdValidator(componentContactIdValidator);
         bl.setComponentIconValidator(componentIconValidator);
         bl.setComponentTagsValidator(componentTagsValidator);
         bl.setComponentNameValidator(componentNameValidator);
         bl.setComponentDescriptionValidator(componentDescriptionValidator);
         bl.setComponentProjectCodeValidator(componentProjectCodeValidator);
-        bl.setServiceCategoryValidator(serviceCategoryValidator);
         bl.setServiceTypeValidator(serviceTypeValidator);
         bl.setServiceFunctionValidator(serviceFunctionValidator);
         bl.setElementDao(mockElementDao);
         bl.setUserAdmin(mockUserAdmin);
         bl.setArtifactBl(artifactBl);
-        bl.setServiceValidator(createServiceValidator());
         bl.setGraphLockOperation(graphLockOperation);
         bl.setJanusGraphDao(mockJanusGraphDao);
         bl.setToscaOperationFacade(toscaOperationFacade);
@@ -241,7 +232,7 @@ class ServiceBusinessLogicBaseTestSetup extends BaseBusinessLogicMock {
 
     }
 
-    protected Resource setupGenericServiceMock(){
+    protected Resource setupGenericServiceMock() {
         Resource genericService = new Resource();
         genericService.setVersion("1.0");
         genericService.setToscaResourceName(GENERIC_SERVICE_NAME);
@@ -377,7 +368,8 @@ class ServiceBusinessLogicBaseTestSetup extends BaseBusinessLogicMock {
         Mockito.when(toscaOperationFacade.getToscaElement(Mockito.anyString())).thenReturn(eitherService);
 
         Either<List<DistributionDeployEvent>, ActionStatus> emptyEventList = Either.left(Collections.emptyList());
-        Mockito.when(auditingDao.getDistributionDeployByStatus(Mockito.anyString(), Mockito.eq("DResult"), Mockito.anyString())).thenReturn(emptyEventList);
+        Mockito.when(auditingDao.getDistributionDeployByStatus(Mockito.anyString(), Mockito.eq("DResult"), Mockito.anyString()))
+            .thenReturn(emptyEventList);
     }
 
     private void assertResponse(Either<Service, ResponseFormat> createResponse, ActionStatus expectedStatus, String... variables) {
@@ -386,7 +378,7 @@ class ServiceBusinessLogicBaseTestSetup extends BaseBusinessLogicMock {
 
     protected void assertComponentException(ComponentException e, ActionStatus expectedStatus, String... variables) {
         ResponseFormat actualResponse = e.getResponseFormat() != null ?
-                e.getResponseFormat() : componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams());
+            e.getResponseFormat() : componentsUtils.getResponseFormat(e.getActionStatus(), e.getParams());
         assertResponse(actualResponse, expectedStatus, variables);
     }
 
index ac73a0d..1d6a3ff 100644 (file)
@@ -19,15 +19,15 @@ package org.openecomp.sdc.be.components.impl;
 import static org.assertj.core.api.Java6Assertions.assertThat;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.anyBoolean;
 import static org.mockito.Mockito.anyList;
 import static org.mockito.Mockito.anyMap;
 import static org.mockito.Mockito.anyString;
+import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.eq;
-import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
+import static org.openecomp.sdc.be.components.impl.ServiceImportBusinessLogic.CREATE_RESOURCE;
 
 import fj.data.Either;
 import java.io.IOException;
@@ -50,8 +50,8 @@ import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
+import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
-import org.openecomp.sdc.be.components.csar.CsarBusinessLogic;
 import org.openecomp.sdc.be.components.csar.CsarInfo;
 import org.openecomp.sdc.be.components.impl.artifact.ArtifactOperationInfo;
 import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
@@ -61,9 +61,9 @@ import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus;
 import org.openecomp.sdc.be.datatypes.components.ResourceMetadataDataDefinition;
 import org.openecomp.sdc.be.datatypes.elements.GetInputValueDataDefinition;
 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
+import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
 import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
 import org.openecomp.sdc.be.externalapi.servlet.ArtifactExternalServlet;
-import org.openecomp.sdc.be.impl.ComponentsUtils;
 import org.openecomp.sdc.be.impl.ServletUtils;
 import org.openecomp.sdc.be.info.NodeTypeInfoToUpdateArtifacts;
 import org.openecomp.sdc.be.model.ArtifactDefinition;
@@ -96,13 +96,11 @@ import org.openecomp.sdc.be.model.UploadPropInfo;
 import org.openecomp.sdc.be.model.UploadReqInfo;
 import org.openecomp.sdc.be.model.UploadResourceInfo;
 import org.openecomp.sdc.be.model.User;
-import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade;
 import org.openecomp.sdc.be.model.operations.api.ICapabilityTypeOperation;
 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
 import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
 import org.openecomp.sdc.be.servlets.AbstractValidationsServlet;
 import org.openecomp.sdc.be.tosca.CsarUtils;
-import org.openecomp.sdc.be.user.UserBusinessLogic;
 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
 import org.openecomp.sdc.common.api.ArtifactTypeEnum;
 import org.openecomp.sdc.common.api.Constants;
@@ -111,19 +109,14 @@ import org.openecomp.sdc.exception.ResponseFormat;
 class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTestSetup {
 
     @InjectMocks
-    private static ServiceImportBusinessLogic serviceImportBusinessLogic;
-
-    private ServiceBusinessLogic serviceBusinessLogic = mock(ServiceBusinessLogic.class);
-    private CsarBusinessLogic csarBusinessLogic = mock(CsarBusinessLogic.class);
-    private ToscaOperationFacade toscaOperationFacade = mock(ToscaOperationFacade.class);
-    private ServiceImportParseLogic serviceImportParseLogic = mock(ServiceImportParseLogic.class);
-    private ArtifactDefinition artifactDefinition = mock(ArtifactDefinition.class);
-    private UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class);
-    private ComponentInstanceBusinessLogic componentInstanceBusinessLogic = mock(ComponentInstanceBusinessLogic.class);
-    private ComponentsUtils componentsUtils = mock(ComponentsUtils.class);
-    private ServletUtils servletUtils = mock(ServletUtils.class);
-    private ResourceImportManager resourceImportManager = mock(ResourceImportManager.class);
-    private ArtifactsBusinessLogic artifactsBusinessLogic = mock(ArtifactsBusinessLogic.class);
+    private ServiceImportBusinessLogic sIBL;
+
+    @Mock
+    private ArtifactDefinition artifactDefinition;
+    @Mock
+    private ServletUtils servletUtils;
+    @Mock
+    private ResourceImportManager resourceImportManager;
 
     private AbstractValidationsServlet servlet = new ArtifactExternalServlet(userBusinessLogic,
         componentInstanceBusinessLogic, componentsUtils, servletUtils, resourceImportManager, artifactsBusinessLogic);
@@ -145,28 +138,69 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         when(artifactDefinition.getMandatory()).thenReturn(true);
         when(artifactDefinition.getArtifactName()).thenReturn("creatorFullName");
         when(artifactDefinition.getArtifactType()).thenReturn("TOSCA_CSAR");
-
-        sIB1.setServiceBusinessLogic(serviceBusinessLogic);
-        sIB1.setCsarBusinessLogic(csarBusinessLogic);
-        sIB1.setServiceImportParseLogic(serviceImportParseLogic);
-        sIB1.setToscaOperationFacade(toscaOperationFacade);
-        sIB1.setComponentsUtils(componentsUtils);
-        sIB1.setCsarArtifactsAndGroupsBusinessLogic(csarArtifactsAndGroupsBusinessLogic);
-
     }
 
     @Test
-    void testGetComponentsUtils() {
-        assertNotNull(serviceImportBusinessLogic.getComponentsUtils());
-    }
+    void testCreateService_OK() {
+        Service oldService = createServiceObject(true);
+        String payloadName = "valid_vf";
+        Map<String, byte[]> payload = crateCsarFromPayload();
+        Service newService = createServiceObject(true);
+        newService.setComponentInstances(creatComponentInstances());
 
-    @Test
-    void testSetComponentsUtils() {
-        assertNotNull(serviceImportBusinessLogic);
+        when(serviceBusinessLogic.validateServiceBeforeCreate(eq(newService), any(User.class), any(AuditingActionEnum.class)))
+            .thenReturn(Either.left(newService));
+        when(toscaOperationFacade.validateCsarUuidUniqueness(anyString())).thenReturn(StorageOperationStatus.OK);
+        CsarInfo csarInfo = getCsarInfo();
+        when(csarBusinessLogic.getCsarInfo(any(Service.class), any(), any(User.class), any(Map.class), anyString())).thenReturn(csarInfo);
+        when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class), any(Service.class)))
+            .thenReturn(Either.left(new HashMap<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>>()));
+        when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(), any(CsarInfo.class), any(), any(Service.class)))
+            .thenReturn(getParsedToscaYamlInfo());
+        when(serviceBusinessLogic.lockComponentByName(newService.getSystemName(), oldService, CREATE_RESOURCE)).thenReturn(Either.left(true));
+        when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(createOldResource()));
+        when(serviceImportParseLogic.createServiceTransaction(oldService, csarInfo.getModifier(), false)).thenReturn(newService);
+        when(serviceImportParseLogic.createInputsOnService(eq(oldService), anyMap())).thenReturn(newService);
+        Assertions.assertDoesNotThrow(() -> {
+            when(serviceImportParseLogic.createSubstitutionFilterOnService(eq(oldService), any())).thenReturn(newService);
+        });
+        when(serviceImportParseLogic.getNodeTypesFromTemplate(anyMap())).thenReturn(getNodeTypes());
+        when(serviceImportParseLogic.createNodeTypeResourceFromYaml(anyString(), any(Map.Entry.class), any(User.class), anyMap(), any(Service.class),
+            anyBoolean(), any(), anyList(), anyBoolean(), any(CsarInfo.class), anyBoolean())).thenReturn(
+            new ImmutablePair<>(new Resource(), ActionStatus.OK));
+        when(serviceImportParseLogic.getComponentWithInstancesFilter()).thenReturn(new ComponentParametersView());
+        when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class))).thenReturn(Either.left(newService));
+        when(serviceImportParseLogic.getComponentFilterAfterCreateRelations()).thenReturn(new ComponentParametersView());
+        when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class))).thenReturn(Either.left(newService));
+        when(serviceImportParseLogic.findAvailableRequirement(anyString(), anyString(), any(UploadComponentInstanceInfo.class),
+            any(ComponentInstance.class), anyString())).thenReturn(Either.left(new RequirementDefinition()));
+        when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class), any(ComponentInstance.class),
+            any(UploadReqInfo.class))).thenReturn(new CapabilityDefinition());
+        when(componentsUtils.getResponseFormat(eq(ActionStatus.OK), anyString())).thenReturn(new ResponseFormat(200));
+        when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(newService));
+        doNothing().when(compositionBusinessLogic).setPositionsForComponentInstances(any(Service.class), anyString());
+        when(groupBusinessLogic.validateUpdateVfGroupNames(anyMap(), anyString())).thenReturn(Either.left(new HashMap<>()));
+        when(csarArtifactsAndGroupsBusinessLogic.deleteVFModules(any(Service.class), any(CsarInfo.class), anyBoolean(), anyBoolean()))
+            .thenReturn(Either.left(newService));
+        when(serviceImportParseLogic.getServiceWithGroups(anyString())).thenReturn(newService);
+        when(mockJanusGraphDao.commit()).thenReturn(JanusGraphOperationStatus.OK);
+        when(graphLockOperation.unlockComponentByName(anyString(), anyString(), any(NodeTypeEnum.class))).thenReturn(StorageOperationStatus.OK);
+
+        Service result = sIBL.createService(oldService, AuditingActionEnum.CREATE_RESOURCE, user, payload, payloadName);
+        assertNotNull(result);
+        assertNotNull(result.getComponentInstances());
+        assertEquals(1, result.getComponentInstances().size());
+        assertNotNull(result.getComponentInstances().get(0));
+        assertNotNull(result.getComponentInstances().get(0).getCapabilities());
+        assertEquals(1, result.getComponentInstances().get(0).getCapabilities().size());
+        assertNotNull(result.getComponentInstances().get(0).getRequirements());
+        assertEquals(1, result.getComponentInstances().get(0).getRequirements().size());
+        assertNotNull(result.getCategories());
+        assertEquals(1, result.getCategories().size());
     }
 
     @Test
-    void testCreateService() {
+    void testCreateService_Fail_NotFoundNodeTypesArtifacts() {
         Service oldService = createServiceObject(true);
         String payloadName = "valid_vf";
         Map<String, byte[]> payload = crateCsarFromPayload();
@@ -175,16 +209,14 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         when(serviceBusinessLogic.validateServiceBeforeCreate(any(Service.class), any(User.class), any(AuditingActionEnum.class)))
             .thenReturn(Either.left(newService));
         when(toscaOperationFacade.validateCsarUuidUniqueness(anyString())).thenReturn(StorageOperationStatus.OK);
-        when(csarBusinessLogic.getCsarInfo(any(Service.class), any(),
-            any(User.class), any(Map.class), anyString())).thenReturn(getCsarInfo());
-        when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class),
-            any(Service.class))).thenReturn(Either.right(ActionStatus.GENERAL_ERROR));
-        when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(),
-            any(CsarInfo.class), anyString(), any(Service.class))).thenReturn(getParsedToscaYamlInfo());
-
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.createService(oldService,
-            AuditingActionEnum.CREATE_RESOURCE, user, payload, payloadName));
+        when(csarBusinessLogic.getCsarInfo(any(Service.class), any(), any(User.class), any(Map.class), anyString())).thenReturn(getCsarInfo());
+        when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class), any(Service.class)))
+            .thenReturn(Either.right(ActionStatus.GENERAL_ERROR));
+        when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(), any(CsarInfo.class), anyString(),
+            any(Service.class))).thenReturn(getParsedToscaYamlInfo());
 
+        Assertions.assertThrows(ComponentException.class,
+            () -> sIBL.createService(oldService, AuditingActionEnum.CREATE_RESOURCE, user, payload, payloadName));
     }
 
     @Test
@@ -200,7 +232,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
             any(Map.class), anyString())).thenReturn(csarInfo);
         when(serviceImportParseLogic.findNodeTypesArtifactsToHandle(any(Map.class), any(CsarInfo.class),
             any(Service.class))).thenReturn(Either.left(map));
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.createServiceFromCsar(oldService,
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceFromCsar(oldService,
             user, payload, csarUUID));
     }
 
@@ -219,14 +251,13 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         map.put("tosca_definitions_version", "123");
         nodeTypesInfo.get(nodeName).setMappedToscaTemplate(map);
         ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
-        when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString()))
-            .thenReturn(Either.left(resource));
+        when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(resource));
         when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), any(Map.class),
             eq(csarInfo), anyString(), any(Component.class))).thenReturn(parsedToscaYamlInfo);
         when(serviceBusinessLogic.lockComponentByName(anyString(), any(Service.class), anyString()))
             .thenReturn(Either.left(true));
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.createServiceFromYaml(oldService,
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceFromYaml(oldService,
             topologyTemplateYaml, yamlName, nodeTypesInfo, csarInfo,
             nodeTypesArtifactsToCreate, false, true, nodeName));
     }
@@ -245,9 +276,8 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
         csfyp.setNodeTypesInfo(nodeTypesInfo);
         csfyp.setParsedToscaYamlInfo(parsedToscaYamlInfo);
-        when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString()))
-            .thenReturn(Either.left(resource));
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.createServiceAndRIsFromYaml(oldService,
+        when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(resource));
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceAndRIsFromYaml(oldService,
             false, nodeTypesArtifactsToCreate, false, true, csfyp));
     }
 
@@ -265,9 +295,8 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         ParsedToscaYamlInfo parsedToscaYamlInfo = getParsedToscaYamlInfo();
         csfyp.setNodeTypesInfo(nodeTypesInfo);
         csfyp.setParsedToscaYamlInfo(parsedToscaYamlInfo);
-        when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString()))
-            .thenReturn(Either.left(resource));
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.createServiceAndRIsFromYaml(oldService,
+        when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(resource));
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.createServiceAndRIsFromYaml(oldService,
             false, nodeTypesArtifactsToCreate, false, true, csfyp));
     }
 
@@ -295,11 +324,9 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         nodeTypeInfoToUpdateArtifacts.setNodeTypesArtifactsToHandle(nodeTypesArtifactsToHandle);
 
         Assertions.assertNotNull(
-            sIB1.createOrUpdateArtifacts(operation, createdArtifacts, yamlFileName, csarInfo,
+            sIBL.createOrUpdateArtifacts(operation, createdArtifacts, yamlFileName, csarInfo,
                 preparedResource, nodeTypeInfoToUpdateArtifacts, true, true)
         );
-
-
     }
 
     @Test
@@ -324,7 +351,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
             .createResourceArtifactsFromCsar(any(CsarInfo.class), any(Resource.class), anyString(), anyString(),
                 anyList())).thenReturn(Either.left(resource));
         Assertions.assertNotNull(
-            sIB1.handleVfCsarArtifacts(resource,
+            sIBL.handleVfCsarArtifacts(resource,
                 csarInfo, createdArtifacts, artifactOperation, true, true));
     }
 
@@ -350,7 +377,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
             .createResourceArtifactsFromCsar(any(CsarInfo.class), any(Resource.class), anyString(), anyString(),
                 anyList())).thenReturn(Either.left(resource));
         Assertions.assertNotNull(
-            sIB1.handleVfCsarArtifacts(resource,
+            sIBL.handleVfCsarArtifacts(resource,
                 csarInfo, createdArtifacts, artifactOperation, true, true));
     }
 
@@ -366,7 +393,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         resource.setDeploymentArtifacts(deploymentArtifacts);
         Assertions.assertNotNull(resource);
         Assertions.assertNotNull(csarInfo);
-        sIB1.createOrUpdateSingleNonMetaArtifactToComstants(resource, csarInfo, artifactOperation, true, true);
+        sIBL.createOrUpdateSingleNonMetaArtifactToComstants(resource, csarInfo, artifactOperation, true, true);
 
     }
 
@@ -377,7 +404,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
         ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
 
-        Either<Resource, ResponseFormat> result = sIB1.createOrUpdateNonMetaArtifacts(csarInfo, resource,
+        Either<Resource, ResponseFormat> result = sIBL.createOrUpdateNonMetaArtifacts(csarInfo, resource,
             createdArtifacts, true, true, artifactOperation);
         assertEquals(result.left().value(), resource);
     }
@@ -402,22 +429,10 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
 
         Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>,
-            ResponseFormat> result = sIB1.findVfCsarArtifactsToHandle(resource, artifactPathAndNameList, user);
+            ResponseFormat> result = sIBL.findVfCsarArtifactsToHandle(resource, artifactPathAndNameList, user);
         assertNotNull(result.left().value());
     }
 
-    @Test
-    void testIsNonMetaArtifact() {
-        ArtifactDefinition artifactDefinition = new ArtifactDefinition();
-        artifactDefinition.setMandatory(false);
-        artifactDefinition.setArtifactName("creatorFullName");
-        artifactDefinition.setArtifactType("TOSCA_CSAR");
-
-        boolean nonMetaArtifact = sIB1.isNonMetaArtifact(artifactDefinition);
-        assertTrue(nonMetaArtifact);
-
-    }
-
     @Test
     void testOrganizeVfCsarArtifactsByArtifactOperation() {
         List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
@@ -431,7 +446,8 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Resource resource = createParseResourceObject(false);
 
         Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>, ResponseFormat>
-            enumMapResponseFormatEither = sIB1.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifactsToHandle,
+            enumMapResponseFormatEither = sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList,
+            existingArtifactsToHandle,
             resource, user);
         assertNotNull(enumMapResponseFormatEither.left().value());
     }
@@ -448,8 +464,8 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         existingArtifactsToHandle.add(artifactDefinition);
         Resource resource = createParseResourceObject(false);
         Assertions.assertNotNull(
-            sIB1.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifactsToHandle, resource, user));
-
+            sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifactsToHandle, resource,
+                user));
     }
 
     @Test
@@ -464,9 +480,8 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
             EnumMap<>(ArtifactsBusinessLogic.ArtifactOperationEnum.class);
         vfCsarArtifactsToHandle.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE, artifactPathAndNameList);
         Assertions.assertNotNull(
-            sIB1.processCsarArtifacts(csarInfo,
+            sIBL.processCsarArtifacts(csarInfo,
                 resource, createdArtifacts, true, true, resStatus, vfCsarArtifactsToHandle));
-
     }
 
     @Test
@@ -494,30 +509,15 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Either<ArtifactDefinition, Operation> artifactDefinitionOperationEither = Either.left(artifactDefinition);
         when(csarArtifactsAndGroupsBusinessLogic.createOrUpdateCsarArtifactFromJson(any(Resource.class), any(User.class),
             any(Map.class), any(ArtifactOperationInfo.class))).thenReturn(Either.left(artifactDefinitionOperationEither));
+        when(artifactsBusinessLogic.handleDelete(anyString(), anyString(), any(User.class), any(Component.class), anyBoolean(), anyBoolean()))
+            .thenReturn(Either.left(artifactDefinition));
         Assertions.assertNotNull(
-            sIB1.createOrUpdateSingleNonMetaArtifact(resource, csarInfo, artifactPath,
+            sIBL.createOrUpdateSingleNonMetaArtifact(resource, csarInfo, artifactPath,
                 artifactFileName, artifactType, artifactGroupType, artifactLabel,
                 artifactDisplayName, artifactDescription, artifactId, artifactOperation,
                 createdArtifacts, true, true, true));
     }
 
-    @Test
-    void testHandleNodeTypeArtifacts() {
-        Resource nodeTypeResource = createParseResourceObject(true);
-        nodeTypeResource.setLifecycleState(LifecycleStateEnum.CERTIFIED);
-        Map<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>> nodeTypeArtifactsToHandle = new HashMap<>();
-        List<ArtifactDefinition> artifactDefinitions = new ArrayList<>();
-        ArtifactDefinition artifactDefinition = new ArtifactDefinition();
-        artifactDefinition.setArtifactName("artifactName");
-        artifactDefinitions.add(artifactDefinition);
-        nodeTypeArtifactsToHandle.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE,
-            artifactDefinitions);
-        List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
-        Assertions.assertNotNull(
-            sIB1.handleNodeTypeArtifacts(nodeTypeResource, nodeTypeArtifactsToHandle,
-                createdArtifacts, user, true, true));
-    }
-
     @Test
     void testCreateOrUpdateServiceArtifacts() throws IOException {
         ArtifactsBusinessLogic.ArtifactOperationEnum operation = ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE;
@@ -543,7 +543,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         when(csarArtifactsAndGroupsBusinessLogic.updateResourceArtifactsFromCsar(any(CsarInfo.class), any(Service.class),
             anyString(), anyString(), anyList(), anyBoolean(), anyBoolean())).thenReturn(Either.left(preparedService));
         Assertions.assertNotNull(
-            sIB1.createOrUpdateArtifacts(operation, createdArtifacts, yamlFileName, csarInfo,
+            sIBL.createOrUpdateArtifacts(operation, createdArtifacts, yamlFileName, csarInfo,
                 preparedService, nodeTypeInfoToUpdateArtifacts, true, true));
     }
 
@@ -563,8 +563,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         when(csarArtifactsAndGroupsBusinessLogic.deleteVFModules(any(Service.class), any(CsarInfo.class), anyBoolean(), anyBoolean())).thenReturn(
             Either.left(service));
         Assertions.assertNotNull(
-            sIB1.handleVfCsarArtifacts(service, csarInfo, createdArtifacts, artifactOperation, true, true));
-
+            sIBL.handleVfCsarArtifacts(service, csarInfo, createdArtifacts, artifactOperation, true, true));
     }
 
     @Test
@@ -588,7 +587,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         when(csarArtifactsAndGroupsBusinessLogic.createResourceArtifactsFromCsar(any(CsarInfo.class), any(Service.class),
             anyString(), anyString(), anyList())).thenReturn(Either.left(service));
         Assertions.assertNotNull(
-            sIB1.handleVfCsarArtifacts(service,
+            sIBL.handleVfCsarArtifacts(service,
                 csarInfo, createdArtifacts, artifactOperation, true, true));
     }
 
@@ -599,7 +598,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
         ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE);
 
-        Either<Service, ResponseFormat> result = sIB1.createOrUpdateNonMetaArtifacts(csarInfo,
+        Either<Service, ResponseFormat> result = sIBL.createOrUpdateNonMetaArtifacts(csarInfo,
             service, createdArtifacts, true, true, artifactOperation);
         assertEquals(result.left().value(), service);
     }
@@ -624,7 +623,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         List<CsarUtils.NonMetaArtifactInfo> artifactPathAndNameList = new ArrayList<>();
 
         Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>,
-            ResponseFormat> result = sIB1.findVfCsarArtifactsToHandle(service, artifactPathAndNameList, user);
+            ResponseFormat> result = sIBL.findVfCsarArtifactsToHandle(service, artifactPathAndNameList, user);
         assertNotNull(result.left().value());
     }
 
@@ -641,7 +640,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Service service = createServiceObject(true);
 
         Either<EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<CsarUtils.NonMetaArtifactInfo>>, ResponseFormat>
-            enumMapResponseFormatEither = sIB1.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList,
+            enumMapResponseFormatEither = sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList,
             existingArtifactsToHandle, service, user);
         assertNotNull(enumMapResponseFormatEither.left().value());
     }
@@ -658,7 +657,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         existingArtifactsToHandle.add(artifactDefinition);
         Service service = createServiceObject(true);
         Assertions.assertNotNull(
-            sIB1.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifactsToHandle, service, user));
+            sIBL.organizeVfCsarArtifactsByArtifactOperation(artifactPathAndNameList, existingArtifactsToHandle, service, user));
 
     }
 
@@ -674,16 +673,15 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         objects.add(getNonMetaArtifactInfo());
         vfCsarArtifactsToHandle.put(ArtifactsBusinessLogic.ArtifactOperationEnum.CREATE, objects);
         Assertions.assertNotNull(
-            sIB1.processCsarArtifacts(csarInfo,
-                service, createdArtifacts, true, true, resStatus, vfCsarArtifactsToHandle));
-
+            sIBL.processCsarArtifacts(csarInfo, service, createdArtifacts, true, true, resStatus, vfCsarArtifactsToHandle));
     }
 
     @Test
     void testGetValidArtifactNames() {
         CsarInfo csarInfo = getCsarInfo();
         Map<String, Set<List<String>>> collectedWarningMessages = new HashMap<>();
-        Either<List<CsarUtils.NonMetaArtifactInfo>, String> result = sIB1.getValidArtifactNames(csarInfo, collectedWarningMessages);
+        Either<List<CsarUtils.NonMetaArtifactInfo>, String> result = sIBL.getValidArtifactNames(csarInfo,
+            collectedWarningMessages);
         assertNotNull(result.left().value());
     }
 
@@ -713,8 +711,10 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Either<ArtifactDefinition, Operation> artifactDefinitionOperationEither = Either.left(artifactDefinition);
         when(csarArtifactsAndGroupsBusinessLogic.createOrUpdateCsarArtifactFromJson(any(Service.class), any(User.class),
             anyMap(), any(ArtifactOperationInfo.class))).thenReturn(Either.left(artifactDefinitionOperationEither));
+        when(artifactsBusinessLogic.handleDelete(anyString(), anyString(), any(User.class), any(Component.class), anyBoolean(), anyBoolean()))
+            .thenReturn(Either.left(artifactDefinition));
         Assertions.assertNotNull(
-            sIB1.createOrUpdateSingleNonMetaArtifact(service, csarInfo, artifactPath, artifactFileName,
+            sIBL.createOrUpdateSingleNonMetaArtifact(service, csarInfo, artifactPath, artifactFileName,
                 artifactType, artifactGroupType, artifactLabel, artifactDisplayName,
                 artifactDescription, artifactId, artifactOperation, createdArtifacts,
                 true, true, true));
@@ -729,8 +729,10 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         String artifactLabel = "", artifactDisplayName = "", artifactDescription = "", artifactId = "artifactId";
         ArtifactOperationInfo artifactOperation = new ArtifactOperationInfo(true, true, ArtifactsBusinessLogic.ArtifactOperationEnum.UPDATE);
         List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
+        when(artifactsBusinessLogic.handleDelete(anyString(), anyString(), any(User.class), any(Component.class), anyBoolean(), anyBoolean()))
+            .thenReturn(Either.left(artifactDefinition));
         Assertions.assertNotNull(
-            sIB1.createOrUpdateSingleNonMetaArtifact(service, csarInfo, artifactPath, artifactFileName,
+            sIBL.createOrUpdateSingleNonMetaArtifact(service, csarInfo, artifactPath, artifactFileName,
                 artifactType, artifactGroupType, artifactLabel, artifactDisplayName,
                 artifactDescription, artifactId, artifactOperation, createdArtifacts,
                 true, true, true));
@@ -740,29 +742,28 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
     void testCreateGroupsOnResource() {
         Service service = createServiceObject(true);
         Map<String, GroupDefinition> groups = new HashMap<>();
-        Assertions.assertNotNull(
-            sIB1.createGroupsOnResource(service, groups));
+        Assertions.assertNotNull(sIBL.createGroupsOnResource(service, groups));
     }
 
     @Test
     void testCreateGroupsOnResourceNull() {
         Service service = createServiceObject(true);
         Map<String, GroupDefinition> groups = new HashMap<>();
-        Assertions.assertNotNull(sIB1.createGroupsOnResource(service, groups));
+        Assertions.assertNotNull(sIBL.createGroupsOnResource(service, groups));
     }
 
     @Test
     void testUpdateGroupsMembersUsingResource() {
         Service service = createServiceObject(true);
         Map<String, GroupDefinition> groups = getGroups();
-        Assertions.assertNotNull(sIB1.updateGroupsMembersUsingResource(groups, service));
+        Assertions.assertNotNull(sIBL.updateGroupsMembersUsingResource(groups, service));
     }
 
     @Test
     void testUpdateGroupsMembersUsingResource_left() {
         Service service = createServiceObject(true);
         Map<String, GroupDefinition> groups = getGroups();
-        Assertions.assertNotNull(sIB1.updateGroupsMembersUsingResource(groups, service));
+        Assertions.assertNotNull(sIBL.updateGroupsMembersUsingResource(groups, service));
     }
 
     @Test
@@ -782,7 +783,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         CsarInfo csarInfo = getCsarInfo();
         Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
+        Assertions.assertThrows(ComponentException.class, () -> sIBL
             .createRIAndRelationsFromYaml(yamlName, resource, uploadComponentInstanceInfoMap,
                 topologyTemplateYaml, nodeTypesNewCreatedArtifacts, nodeTypesInfo,
                 csarInfo, nodeTypesArtifactsToCreate, nodeName));
@@ -795,10 +796,10 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         resource.setComponentInstances(creatComponentInstances());
         resource.setResourceType(ResourceTypeEnum.VF);
         Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
-        uploadResInstancesMap.put("uploadResInstancesMap", getuploadComponentInstanceInfo());
+        uploadResInstancesMap.put("uploadResInstancesMap", getUploadComponentInstanceInfo());
         when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(resource);
         when(toscaOperationFacade.getToscaFullElement(anyString())).thenReturn(Either.left(resource));
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
+        Assertions.assertThrows(ComponentException.class, () -> sIBL
             .createResourceInstancesRelations(user, yamlName, resource, uploadResInstancesMap));
     }
 
@@ -809,10 +810,10 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         resource.setComponentInstances(creatComponentInstances());
         resource.setResourceType(ResourceTypeEnum.VF);
         Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
-        uploadResInstancesMap.put("uploadResInstancesMap", getuploadComponentInstanceInfo());
+        uploadResInstancesMap.put("uploadResInstancesMap", getUploadComponentInstanceInfo());
         when(serviceImportParseLogic.getResourceAfterCreateRelations(any(Resource.class))).thenReturn(resource);
         when(toscaOperationFacade.getToscaFullElement(anyString())).thenReturn(Either.left(resource));
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
+        Assertions.assertThrows(ComponentException.class, () -> sIBL
             .createResourceInstancesRelations(user, yamlName, resource, uploadResInstancesMap));
     }
 
@@ -842,7 +843,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         uploadComponentInstanceInfo.setName("zxjTestImportServiceAb");
         Assertions.assertNotNull(resource);
         Assertions.assertNotNull(yamlName);
-        sIB1.processComponentInstance(yamlName, resource, componentInstancesList, allDataTypes.left().value(), instProperties,
+        sIBL.processComponentInstance(yamlName, resource, componentInstancesList, allDataTypes.left().value(), instProperties,
             instCapabilties, instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes,
             originCompMap, instInputs, instNodeFilter, uploadComponentInstanceInfo);
     }
@@ -867,7 +868,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
         uploadComponentInstanceInfo.setName("zxjTestImportServiceAb0");
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.processComponentInstance(yamlName,
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.processComponentInstance(yamlName,
             resource, componentInstancesList, null, instProperties, instCapabilties,
             instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes, originCompMap,
             instInputs, instNodeFilter, uploadComponentInstanceInfo));
@@ -896,7 +897,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         dataTypeDefinition.setName("dataTypeDefinitionName");
         allDataTypes.put("dataTypeDefinitionMap", dataTypeDefinition);
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
+        Assertions.assertThrows(ComponentException.class, () -> sIBL
             .addInputsValuesToRi(uploadComponentInstanceInfo, resource, originResource,
                 currentCompInstance, instInputs, allDataTypes));
     }
@@ -919,7 +920,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         List<UploadPropInfo> propertyList = getPropertyList();
         Assertions.assertNotNull(resource);
         Assertions.assertNotNull(currPropertiesMap);
-        sIB1.processProperty(resource, currentCompInstance, allDataTypes, currPropertiesMap, instPropList, propertyList);
+        sIBL.processProperty(resource, currentCompInstance, allDataTypes, currPropertiesMap, instPropList, propertyList);
     }
 
     @Test
@@ -930,8 +931,8 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         when(toscaOperationFacade.getToscaFullElement(anyString()))
             .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
-            .handleSubstitutionMappings(resource, uploadResInstancesMap));
+        Assertions.assertThrows(ComponentException.class,
+            () -> sIBL.handleSubstitutionMappings(resource, uploadResInstancesMap));
     }
 
     @Test
@@ -942,8 +943,8 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         when(toscaOperationFacade.getToscaFullElement(anyString()))
             .thenReturn(Either.left(resource));
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
-            .handleSubstitutionMappings(resource, uploadResInstancesMap));
+        Assertions.assertThrows(ComponentException.class,
+            () -> sIBL.handleSubstitutionMappings(resource, uploadResInstancesMap));
     }
 
     @Test
@@ -959,8 +960,8 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Map<String, Resource> nodeNamespaceMap = new HashMap<>();
         nodeNamespaceMap.put("resources", originResource);
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
-            .createResourceInstances(yamlName, resource, uploadResInstancesMap, nodeNamespaceMap));
+        Assertions.assertThrows(ComponentException.class,
+            () -> sIBL.createResourceInstances(yamlName, resource, uploadResInstancesMap, nodeNamespaceMap));
     }
 
     @Test
@@ -980,7 +981,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         CsarInfo csarInfo = getCsarInfo();
         Assertions.assertNotNull(resource);
 
-        sIB1.handleNodeTypes(yamlName, resource, topologyTemplateYaml, needLock, nodeTypesArtifactsToHandle,
+        sIBL.handleNodeTypes(yamlName, resource, topologyTemplateYaml, needLock, nodeTypesArtifactsToHandle,
             nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo, nodeName);
     }
 
@@ -997,7 +998,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         nodesInfo.put(nodeName, nodeTypeInfo);
         CsarInfo csarInfo = getCsarInfo();
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.handleNestedVfc(resource,
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.handleNestedVfc(resource,
             nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
     }
 
@@ -1017,27 +1018,10 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         when(serviceImportParseLogic.validateNestedDerivedFromDuringUpdate(any(Resource.class), any(Resource.class),
             anyBoolean())).thenReturn(Either.left(true));
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.handleComplexVfc(resource,
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.handleComplexVfc(resource,
             nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName, yamlName));
     }
 
-    @Test
-    void testCreateResourcesFromYamlNodeTypesList1() {
-        String yamlName = "group.yml";
-        Resource resource = createParseResourceObject(false);
-        Map<String, Object> mappedToscaTemplate = new HashMap<>();
-        boolean needLock = true;
-        Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToHandle = new HashMap<>();
-        List<ArtifactDefinition> nodeTypesNewCreatedArtifacts = new ArrayList<>();
-        Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
-        CsarInfo csarInfo = getCsarInfo();
-
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
-            .createResourcesFromYamlNodeTypesList(yamlName, resource, mappedToscaTemplate, needLock,
-                nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo));
-
-    }
-
     @Test
     void testCreateNodeTypes1() {
         String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
@@ -1067,7 +1051,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         nodeTypes.put(nodeName, "");
         Assertions.assertNotNull(resource);
 
-        sIB1.createNodeTypes(yamlName,
+        sIBL.createNodeTypes(yamlName,
             resource, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
             nodeTypesInfo, csarInfo, mapToConvert, nodeTypes);
     }
@@ -1101,7 +1085,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
             anyMap(), anyList(), anyBoolean(), any(CsarInfo.class),
             anyString(), anyBoolean())).thenReturn(immutablePair);
         Assertions.assertNotNull(
-            sIB1.createNodeTypeResourceFromYaml(yamlName, nodeNameValue, user, mapToConvert,
+            sIBL.createNodeTypeResourceFromYaml(yamlName, nodeNameValue, user, mapToConvert,
                 resourceVf, needLock, nodeTypeArtifactsToHandle, nodeTypesNewCreatedArtifacts,
                 forceCertificationAllowed, csarInfo, isNested));
     }
@@ -1119,7 +1103,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Map<String, EnumMap<ArtifactsBusinessLogic.ArtifactOperationEnum, List<ArtifactDefinition>>> nodeTypesArtifactsToCreate = new HashMap<>();
         String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
 
-        Assertions.assertNotNull(sIB1
+        Assertions.assertNotNull(sIBL
             .createRIAndRelationsFromYaml(yamlName, service, uploadComponentInstanceInfoMap,
                 topologyTemplateYaml, nodeTypesNewCreatedArtifacts, nodeTypesInfo,
                 csarInfo, nodeTypesArtifactsToCreate, nodeName));
@@ -1150,8 +1134,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
             any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
         when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
         when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(service));
-        Assertions.assertNotNull(sIB1
-            .createServiceInstancesRelations(user, yamlName, service, uploadResInstancesMap));
+        Assertions.assertNotNull(sIBL.createServiceInstancesRelations(user, yamlName, service, uploadResInstancesMap));
     }
 
     @Test
@@ -1161,8 +1144,8 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         service.setComponentInstances(creatComponentInstances());
         Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
-            .createServiceInstancesRelations(user, yamlName, service, uploadResInstancesMap));
+        Assertions.assertThrows(ComponentException.class,
+            () -> sIBL.createServiceInstancesRelations(user, yamlName, service, uploadResInstancesMap));
     }
 
     @Test
@@ -1191,7 +1174,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         uploadComponentInstanceInfo.setName("zxjTestImportServiceAb");
         Assertions.assertNotNull(service);
 
-        sIB1.processComponentInstance(yamlName, service, componentInstancesList, allDataTypes.left().value(),
+        sIBL.processComponentInstance(yamlName, service, componentInstancesList, allDataTypes.left().value(),
             instProperties, instCapabilties, instRequirements, instDeploymentArtifacts,
             instArtifacts, instAttributes, originCompMap, instInputs, instNodeFilter,
             uploadComponentInstanceInfo);
@@ -1217,7 +1200,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
         uploadComponentInstanceInfo.setName("zxjTestImportServiceAb0");
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.processComponentInstance(yamlName,
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.processComponentInstance(yamlName,
             service, componentInstancesList, null, instProperties, instCapabilties,
             instRequirements, instDeploymentArtifacts, instArtifacts, instAttributes, originCompMap,
             instInputs, instNodeFilter, uploadComponentInstanceInfo));
@@ -1245,7 +1228,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Map<String, List<ComponentInstanceInput>> instInputs = new HashMap<>();
         Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
+        Assertions.assertThrows(ComponentException.class, () -> sIBL
             .addInputsValuesToRi(uploadComponentInstanceInfo, resource, originResource,
                 currentCompInstance, instInputs, allDataTypes));
     }
@@ -1277,7 +1260,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         propertyList.add(propertyInfo);
         Assertions.assertNotNull(resource);
 
-        sIB1.processProperty(resource, currentCompInstance, allDataTypes, currPropertiesMap, instPropList, propertyList);
+        sIBL.processProperty(resource, currentCompInstance, allDataTypes, currPropertiesMap, instPropList, propertyList);
     }
 
     @Test
@@ -1286,8 +1269,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         List<InputDefinition> inputs = new ArrayList<>();
         GetInputValueDataDefinition getInputIndex = new GetInputValueDataDefinition();
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.processGetInput(getInputValues,
-            inputs, getInputIndex));
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.processGetInput(getInputValues, inputs, getInputIndex));
     }
 
     @Test
@@ -1302,7 +1284,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         getInputIndex.setInputName("InputName");
         Assertions.assertNotNull(inputs);
 
-        sIB1.processGetInput(getInputValues, inputs, getInputIndex);
+        sIBL.processGetInput(getInputValues, inputs, getInputIndex);
     }
 
     @Test
@@ -1323,11 +1305,11 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Map<String, List<ComponentInstanceProperty>> instProperties = new HashMap<>();
         Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
         ResponseFormat responseFormat = new ResponseFormat();
-        when(serviceImportParseLogic.findInputByName(anyList(), any(GetInputValueDataDefinition.class)))
+        when(serviceImportParseLogic.findInputByName(eq(inputs), any(GetInputValueDataDefinition.class)))
             .thenReturn(inputDefinition);
         when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
         Assertions.assertNotNull(
-            sIB1.addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource,
+            sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource,
                 currentCompInstance, instProperties, allDataTypes));
     }
 
@@ -1343,9 +1325,8 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         ResponseFormat responseFormat = new ResponseFormat();
         when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
         Assertions.assertNotNull(
-            sIB1.addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource, currentCompInstance,
+            sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, resource, originResource, currentCompInstance,
                 instProperties, allDataTypes));
-
     }
 
     @Test
@@ -1370,7 +1351,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         when(serviceImportParseLogic.findInputByName(anyList(), any(GetInputValueDataDefinition.class)))
             .thenReturn(inputDefinition);
         Assertions.assertNotNull(
-            sIB1.addPropertyValuesToRi(uploadComponentInstanceInfo, service, originResource,
+            sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, service, originResource,
                 currentCompInstance, instProperties, allDataTypes));
     }
 
@@ -1386,7 +1367,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         ResponseFormat responseFormat = new ResponseFormat();
         when(componentsUtils.getResponseFormat(any(ActionStatus.class))).thenReturn(responseFormat);
         Assertions.assertNotNull(
-            sIB1.addPropertyValuesToRi(uploadComponentInstanceInfo, service, originResource, currentCompInstance,
+            sIBL.addPropertyValuesToRi(uploadComponentInstanceInfo, service, originResource, currentCompInstance,
                 instProperties, allDataTypes));
     }
 
@@ -1399,8 +1380,8 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         ComponentInstance currentCompInstance = new ComponentInstance();
         Resource originResource = createParseResourceObject(false);
         Assertions.assertNotNull(originResource);
-        sIB1.processComponentInstanceCapabilities(null, instCapabilties,
-            uploadComponentInstanceInfo, currentCompInstance, originResource);
+        sIBL.processComponentInstanceCapabilities(null, instCapabilties, uploadComponentInstanceInfo, currentCompInstance,
+            originResource);
     }
 
     @Test
@@ -1412,8 +1393,8 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Resource originResource = createParseResourceObject(false);
         Assertions.assertNotNull(originResource);
 
-        sIB1.processComponentInstanceCapabilities(null, instCapabilties, uploadComponentInstanceInfo,
-            currentCompInstance, originResource);
+        sIBL.processComponentInstanceCapabilities(null, instCapabilties, uploadComponentInstanceInfo, currentCompInstance,
+            originResource);
     }
 
     @Test
@@ -1422,7 +1403,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Map<String, List<CapabilityDefinition>> originCapabilities = new HashMap<>();
         Map<String, Map<String, UploadPropInfo>> newPropertiesMap = new HashMap<>();
         Assertions.assertNull(allDataTypes);
-        sIB1.updateCapabilityPropertiesValues(null, originCapabilities, newPropertiesMap, null);
+        sIBL.updateCapabilityPropertiesValues(null, originCapabilities, newPropertiesMap);
     }
 
     @Test
@@ -1431,7 +1412,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Map<String, UploadPropInfo> newProperties = new HashMap<>();
         Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
         Assertions.assertNotNull(allDataTypes);
-        sIB1.updatePropertyValues(properties, newProperties, allDataTypes);
+        sIBL.updatePropertyValues(properties, newProperties, allDataTypes);
     }
 
     @Test
@@ -1443,8 +1424,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Map<String, DataTypeDefinition> allDataTypes = new HashMap<>();
         when(serviceBusinessLogic.validatePropValueBeforeCreate(any(IPropertyInputCommon.class), anyString(), anyBoolean(), anyMap())).thenReturn(
             "qw");
-        Assertions.assertNotNull(
-            sIB1.updatePropertyValue(property, propertyInfo, allDataTypes));
+        Assertions.assertNotNull(sIBL.updatePropertyValue(property, propertyInfo, allDataTypes));
     }
 
     @Test
@@ -1455,17 +1435,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         currentCompInstance.setComponentUid("currentCompInstance");
         when(toscaOperationFacade.getToscaFullElement(anyString()))
             .thenReturn(Either.left(createParseResourceObject(true)));
-        Assertions.assertNotNull(
-            sIB1.getOriginResource(yamlName, originCompMap, currentCompInstance));
-    }
-
-    @Test
-    void testHandleSubstitutionMappings2() {
-        Service service = createServiceObject(true);
-        Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
-        Assertions.assertNotNull(service);
-
-        sIB1.handleSubstitutionMappings(service, uploadResInstancesMap);
+        Assertions.assertNotNull(sIBL.getOriginResource(yamlName, originCompMap, currentCompInstance));
     }
 
     @Test
@@ -1475,8 +1445,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = getUploadResInstancesMap();
 
         when(toscaOperationFacade.deleteAllCalculatedCapabilitiesRequirements(any())).thenReturn(StorageOperationStatus.OK);
-        Assertions.assertNotNull(
-            sIB1.updateCalculatedCapReqWithSubstitutionMappings(resource, uploadResInstancesMap));
+        Assertions.assertNotNull(sIBL.updateCalculatedCapReqWithSubstitutionMappings(resource, uploadResInstancesMap));
     }
 
     @Test
@@ -1487,7 +1456,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Map<ComponentInstance, Map<String, List<RequirementDefinition>>> updatedInstRequirement = new HashMap<>();
         Assertions.assertNotNull(componentInstances);
 
-        sIB1.fillUpdatedInstCapabilitiesRequirements(componentInstances, uploadResInstancesMap,
+        sIBL.fillUpdatedInstCapabilitiesRequirements(componentInstances, uploadResInstancesMap,
             updatedInstCapabilities, updatedInstRequirement);
     }
 
@@ -1506,7 +1475,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         capabilitiesNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
         Assertions.assertNotNull(instance);
 
-        sIB1.fillUpdatedInstCapabilities(updatedInstCapabilties, instance, capabilitiesNamesToUpdate);
+        sIBL.fillUpdatedInstCapabilities(updatedInstCapabilties, instance, capabilitiesNamesToUpdate);
     }
 
     @Test
@@ -1526,7 +1495,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
             "requirementsNamesToUpdate");
         Assertions.assertNotNull(instance);
 
-        sIB1.fillUpdatedInstRequirements(updatedInstRequirements, instance, requirementsNamesToUpdate);
+        sIBL.fillUpdatedInstRequirements(updatedInstRequirements, instance, requirementsNamesToUpdate);
     }
 
     @Test
@@ -1535,7 +1504,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Service service = createServiceObject(true);
 
         Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
-        UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
+        UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
         uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
         List<ComponentInstance> componentInstancesList = creatComponentInstances();
         ComponentInstance componentInstance = new ComponentInstance();
@@ -1561,7 +1530,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
         Assertions.assertNotNull(service);
 
-        sIB1.addRelationsToRI(yamlName, service, uploadResInstancesMap, componentInstancesList, relations);
+        sIBL.addRelationsToRI(yamlName, service, uploadResInstancesMap, componentInstancesList, relations);
     }
 
     @Test
@@ -1569,12 +1538,12 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         String yamlName = "group.yml";
         Service service = createServiceObject(true);
         Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
-        UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
+        UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
         uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
         List<ComponentInstance> componentInstancesList = new ArrayList<>();
         List<RequirementCapabilityRelDef> relations = new ArrayList<>();
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.addRelationsToRI(yamlName,
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.addRelationsToRI(yamlName,
             service, uploadResInstancesMap, componentInstancesList, relations));
     }
 
@@ -1584,7 +1553,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Service service = createServiceObject(true);
         service.setComponentInstances(creatComponentInstances());
 
-        UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
+        UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
         List<RequirementCapabilityRelDef> relations = new ArrayList<>();
         RequirementDefinition requirementDefinition = new RequirementDefinition();
         requirementDefinition.setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
@@ -1598,8 +1567,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         when(serviceImportParseLogic.findAvailableCapabilityByTypeOrName(any(RequirementDefinition.class),
             any(ComponentInstance.class), any(UploadReqInfo.class))).thenReturn(capabilityDefinition);
         when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
-        Assertions.assertNotNull(
-            sIB1.addRelationToRI(yamlName, service, nodesInfoValue, relations));
+        Assertions.assertNotNull(sIBL.addRelationToRI(yamlName, service, nodesInfoValue, relations));
     }
 
     @Test
@@ -1609,11 +1577,10 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         List<ComponentInstance> componentInstancesList = new ArrayList<>();
         service.setComponentInstances(componentInstancesList);
         ResponseFormat responseFormat = new ResponseFormat();
-        UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
+        UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
         List<RequirementCapabilityRelDef> relations = new ArrayList<>();
         when(componentsUtils.getResponseFormat(any(ActionStatus.class), anyString())).thenReturn(responseFormat);
-        Assertions.assertNotNull(
-            sIB1.addRelationToRI(yamlName, service, nodesInfoValue, relations));
+        Assertions.assertNotNull(sIBL.addRelationToRI(yamlName, service, nodesInfoValue, relations));
 
     }
 
@@ -1624,8 +1591,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         when(serviceImportParseLogic.getComponentFilterAfterCreateRelations()).thenReturn(componentParametersView);
         when(toscaOperationFacade.getToscaElement(anyString(), any(ComponentParametersView.class)))
             .thenReturn(Either.left(createServiceObject(true)));
-        Assertions.assertNotNull(
-            sIB1.getResourceAfterCreateRelations(service));
+        Assertions.assertNotNull(sIBL.getResourceAfterCreateRelations(service));
     }
 
     @Test
@@ -1633,20 +1599,20 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         String yamlName = "group.yml";
         Service service = createServiceObject(true);
         Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
-        UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
+        UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
         uploadResInstancesMap.put("uploadResInstancesMap", nodesInfoValue);
         Map<String, Resource> nodeNamespaceMap = new HashMap<>();
         Resource resource = createParseResourceObject(true);
         resource.setToscaResourceName("toscaResourceName");
         nodeNamespaceMap.put("nodeNamespaceMap", resource);
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
-            .createServiceInstances(yamlName, service, uploadResInstancesMap, nodeNamespaceMap));
+        Assertions.assertThrows(ComponentException.class,
+            () -> sIBL.createServiceInstances(yamlName, service, uploadResInstancesMap, nodeNamespaceMap));
     }
 
     @Test
     void testCreateAndAddResourceInstance() {
-        UploadComponentInstanceInfo uploadComponentInstanceInfo = getuploadComponentInstanceInfo();
+        UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
         String yamlName = "group.yml";
         Resource resource = createParseResourceObject(false);
         Resource originResource = createParseResourceObject(true);
@@ -1656,14 +1622,14 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Map<String, Resource> existingnodeTypeMap = new HashMap<>();
         Map<ComponentInstance, Resource> resourcesInstancesMap = new HashMap<>();
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
+        Assertions.assertThrows(ComponentException.class, () -> sIBL
             .createAndAddResourceInstance(uploadComponentInstanceInfo, yamlName, resource,
                 nodeNamespaceMap, existingnodeTypeMap, resourcesInstancesMap));
     }
 
     @Test
     void testCreateAndAddResourceInstances() {
-        UploadComponentInstanceInfo uploadComponentInstanceInfo = getuploadComponentInstanceInfo();
+        UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
         String yamlName = "group.yml";
         Service service = createServiceObject(true);
         service.setServiceType("services");
@@ -1674,7 +1640,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Map<String, Resource> existingnodeTypeMap = new HashMap<>();
         Map<ComponentInstance, Resource> resourcesInstancesMap = new HashMap<>();
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
+        Assertions.assertThrows(ComponentException.class, () -> sIBL
             .createAndAddResourceInstance(uploadComponentInstanceInfo, yamlName, service,
                 nodeNamespaceMap, existingnodeTypeMap, resourcesInstancesMap));
     }
@@ -1682,7 +1648,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
     @Test
     void testValidateResourceInstanceBeforeCreate() {
         String yamlName = "group.yml";
-        UploadComponentInstanceInfo uploadComponentInstanceInfo = getuploadComponentInstanceInfo();
+        UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
         Resource originResource = createParseResourceObject(true);
         ResourceMetadataDataDefinition componentMetadataDataDefinition = new ResourceMetadataDataDefinition();
         componentMetadataDataDefinition.setState(LifecycleStateEnum.CERTIFIED.name());
@@ -1694,10 +1660,9 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         originResource.setResourceType(ResourceTypeEnum.VF);
         Map<String, Resource> nodeNamespaceMap = new HashMap<>();
         nodeNamespaceMap.put("resources", originResource);
-        when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString()))
-            .thenReturn(Either.left(originResource));
+        when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(originResource));
         Assertions.assertNotNull(
-            sIB1.validateResourceInstanceBeforeCreate(yamlName, uploadComponentInstanceInfo, nodeNamespaceMap));
+            sIBL.validateResourceInstanceBeforeCreate(yamlName, uploadComponentInstanceInfo, nodeNamespaceMap));
     }
 
     @Test
@@ -1712,20 +1677,19 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
         CsarInfo csarInfo = getCsarInfo();
         String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
-        when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString()))
-            .thenReturn(Either.left(createOldResource()));
+        when(toscaOperationFacade.getLatestResourceByToscaResourceName(anyString())).thenReturn(Either.left(createOldResource()));
         Assertions.assertNotNull(service);
 
-        sIB1.handleServiceNodeTypes(yamlName, service, topologyTemplateYaml, needLock,
-            nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts, nodeTypesInfo,
-            csarInfo, nodeName);
+        sIBL.handleServiceNodeTypes(yamlName, service, topologyTemplateYaml, needLock, nodeTypesArtifactsToHandle,
+            nodeTypesNewCreatedArtifacts,
+            nodeTypesInfo, csarInfo, nodeName);
     }
 
     @Test
     void testValidateResourceNotExisted() {
         String type = "org.openecomp.resource.vf";
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.validateResourceNotExisted(type));
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.validateResourceNotExisted(type));
     }
 
     @Test
@@ -1737,7 +1701,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         CsarInfo csarInfo = getCsarInfo();
         String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.handleNestedVF(service,
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.handleNestedVF(service,
             nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
     }
 
@@ -1750,7 +1714,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         CsarInfo csarInfo = getCsarInfo();
         String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.handleNestedVfc(service,
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.handleNestedVfc(service,
             nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo, csarInfo, nodeName));
     }
 
@@ -1769,7 +1733,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         when(serviceImportParseLogic.validateNestedDerivedFromDuringUpdate(any(Resource.class), any(Resource.class), anyBoolean()))
             .thenReturn(Either.left(true));
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
+        Assertions.assertThrows(ComponentException.class, () -> sIBL
             .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
                 csarInfo, nodeName, yamlName));
     }
@@ -1787,7 +1751,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         when(toscaOperationFacade.getFullLatestComponentByToscaResourceName(anyString()))
             .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND));
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
+        Assertions.assertThrows(ComponentException.class, () -> sIBL
             .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
                 csarInfo, nodeName, yamlName));
     }
@@ -1806,7 +1770,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Resource oldComplexVfc = createParseResourceObject(false);
         Resource newComplexVfc = createParseResourceObject(true);
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
+        Assertions.assertThrows(ComponentException.class, () -> sIBL
             .handleComplexVfc(nodeTypesArtifactsToHandle, createdArtifacts, nodesInfo,
                 csarInfo, nodeName, yamlName, oldComplexVfc, newComplexVfc));
     }
@@ -1836,7 +1800,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
             any(Resource.class), any(AuditingActionEnum.class), anyBoolean())).thenReturn(Either.left(true));
         when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class)))
             .thenReturn(Either.left(newResource));
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
+        Assertions.assertThrows(ComponentException.class, () -> sIBL
             .updateResourceFromYaml(oldResource, newResource, actionEnum, createdArtifacts,
                 yamlFileName, yamlFileContent, csarInfo, nodeTypesInfo,
                 nodeTypesArtifactsToHandle, nodeName, isNested));
@@ -1861,14 +1825,13 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
 
         when(csarBusinessLogic.getParsedToscaYamlInfo(anyString(), anyString(), anyMap(), any(CsarInfo.class),
             anyString(), any(Component.class))).thenReturn(getParsedToscaYamlInfo());
-        when(serviceBusinessLogic.fetchAndSetDerivedFromGenericType(any(Resource.class))).thenReturn(resource);
-        when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class)
-            , any(ComponentTypeEnum.class))).thenReturn(Either.left(false));
+        when(serviceBusinessLogic.fetchAndSetDerivedFromGenericType(any(Component.class))).thenReturn(resource);
+        when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class)))
+            .thenReturn(Either.left(false));
         when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.createResourceFromYaml(resource,
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.createResourceFromYaml(resource,
             topologyTemplateYaml, yamlName, nodeTypesInfo, csarInfo,
             nodeTypesArtifactsToCreate, shouldLock, inTransaction, nodeName));
-
     }
 
     @Test
@@ -1898,12 +1861,12 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         when(serviceBusinessLogic.lockComponentByName(anyString(), any(), anyString()))
             .thenReturn(Either.left(true));
 
-        when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class)
-            , any(ComponentTypeEnum.class))).thenReturn(Either.left(false));
+        when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class)))
+            .thenReturn(Either.left(false));
 
         when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
+        Assertions.assertThrows(ComponentException.class, () -> sIBL
             .createResourceAndRIsFromYaml(yamlName, resource, parsedToscaYamlInfo, actionEnum,
                 isNormative, createdArtifacts, topologyTemplateYaml, nodeTypesInfo, csarInfo,
                 nodeTypesArtifactsToCreate, shouldLock, inTransaction, nodeName));
@@ -1918,7 +1881,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         groupDefinition.setUniqueId("groupDefinitionUniqueId");
         groupDefinition.setName("groupDefinition");
         groupDefinitionList.add(groupDefinition);
-        Assertions.assertNotNull(sIB1.createGroupsOnResource(resource, groups));
+        Assertions.assertNotNull(sIBL.createGroupsOnResource(resource, groups));
     }
 
     @Test
@@ -1926,7 +1889,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Resource resource = createParseResourceObject(false);
         Map<String, GroupDefinition> groups = null;
 
-        Either<Resource, ResponseFormat> result = sIB1.createGroupsOnResource(resource, groups);
+        Either<Resource, ResponseFormat> result = sIBL.createGroupsOnResource(resource, groups);
         assertEquals(result.left().value(), resource);
     }
 
@@ -1934,14 +1897,14 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
     void testUpdateGroupsMembersUsingResource2() {
         Resource resource = createParseResourceObject(true);
         Map<String, GroupDefinition> groups = getGroups();
-        Assertions.assertNotNull(sIB1.updateGroupsMembersUsingResource(groups, resource));
+        Assertions.assertNotNull(sIBL.updateGroupsMembersUsingResource(groups, resource));
     }
 
     @Test
     void testUpdateGroupsMembersUsingResource_left2() {
         Resource resource = createParseResourceObject(true);
         Map<String, GroupDefinition> groups = getGroups();
-        Assertions.assertNotNull(sIB1.updateGroupsMembersUsingResource(groups, resource));
+        Assertions.assertNotNull(sIBL.updateGroupsMembersUsingResource(groups, resource));
     }
 
     @Test
@@ -1955,7 +1918,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         members.put("zxjTestImportServiceAb", getGroupsYaml());
         Assertions.assertNotNull(component);
 
-        sIB1.updateGroupMembers(groups, updatedGroupDefinition, component, componentInstances, groupName, members);
+        sIBL.updateGroupMembers(groups, updatedGroupDefinition, component, componentInstances, groupName, members);
     }
 
     @Test
@@ -1968,7 +1931,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Map<String, String> members = new HashMap<>();
         members.put("zxjTestImportServiceAb", getGroupsYaml());
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.updateGroupMembers(groups,
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.updateGroupMembers(groups,
             updatedGroupDefinition, component, componentInstances, groupName, members));
     }
 
@@ -1977,11 +1940,10 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Resource resource = createParseResourceObject(false);
         resource.setComponentType(ComponentTypeEnum.RESOURCE);
         boolean isNormative = true;
-        when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any()))
+        when(toscaOperationFacade.validateComponentNameExists(anyString(), any(ResourceTypeEnum.class), any(ComponentTypeEnum.class)))
             .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.createResourceTransaction(resource,
-            user, isNormative));
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.createResourceTransaction(resource, user, isNormative));
     }
 
     @Test
@@ -1989,22 +1951,18 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Resource resource = createParseResourceObject(false);
         resource.setComponentType(ComponentTypeEnum.RESOURCE);
         boolean isNormative = true;
-        when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any()))
-            .thenReturn(Either.left(true));
+        when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any())).thenReturn(Either.left(true));
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
-            .createResourceTransaction(resource, user, isNormative));
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.createResourceTransaction(resource, user, isNormative));
     }
 
     @Test
     void setCreateResourceTransaction_Left() {
         Resource resource = createParseResourceObject(false);
         resource.setComponentType(ComponentTypeEnum.RESOURCE);
-        when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any()))
-            .thenReturn(Either.left(false));
+        when(toscaOperationFacade.validateComponentNameExists(anyString(), any(), any())).thenReturn(Either.left(false));
         when(toscaOperationFacade.createToscaComponent(any(Resource.class))).thenReturn(Either.left(resource));
-        Assertions.assertNotNull(
-            sIB1.createResourceTransaction(resource, user, false));
+        Assertions.assertNotNull(sIBL.createResourceTransaction(resource, user, false));
     }
 
     @Test
@@ -2017,9 +1975,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
             any(Resource.class), any(AuditingActionEnum.class), anyBoolean())).thenReturn(Either.left(true));
         when(toscaOperationFacade.overrideComponent(any(Resource.class), any(Resource.class)))
             .thenReturn(Either.left(newResource));
-        Assertions.assertNotNull(
-            sIB1.updateExistingResourceByImport(newResource, oldResource, user,
-                true, false, true));
+        Assertions.assertNotNull(sIBL.updateExistingResourceByImport(newResource, oldResource, user, true, false, true));
     }
 
     @Test
@@ -2027,7 +1983,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Resource newResource = createNewResource();
         Resource oldResource = createOldResource();
 
-        sIB1.createNewResourceToOldResource(newResource, oldResource, user);
+        sIBL.createNewResourceToOldResource(newResource, oldResource, user);
         assertEquals(newResource.getSystemName(), oldResource.getSystemName());
     }
 
@@ -2042,7 +1998,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
         CsarInfo csarInfo = getCsarInfo();
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1
+        Assertions.assertThrows(ComponentException.class, () -> sIBL
             .createResourcesFromYamlNodeTypesList(yamlName, service, mappedToscaTemplate, needLock,
                 nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts, nodeTypesInfo, csarInfo));
     }
@@ -2072,7 +2028,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         nodeTypes.put("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test",
             nodeTypeInfo);
 
-        Assertions.assertThrows(ComponentException.class, () -> sIB1.createNodeTypes(yamlName,
+        Assertions.assertThrows(ComponentException.class, () -> sIBL.createNodeTypes(yamlName,
             service, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
             nodeTypesInfo, csarInfo, mapToConvert, nodeTypes));
     }
@@ -2111,10 +2067,9 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
             anyBoolean())).thenReturn(getResourceCreated());
         Assertions.assertNotNull(service);
 
-        sIB1.createNodeTypes(yamlName,
+        sIBL.createNodeTypes(yamlName,
             service, needLock, nodeTypesArtifactsToHandle, nodeTypesNewCreatedArtifacts,
             nodeTypesInfo, csarInfo, mapToConvert, nodeTypes);
-
     }
 
     protected ImmutablePair<Resource, ActionStatus> getResourceCreated() {
@@ -2206,7 +2161,7 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         return propertyList;
     }
 
-    protected Map<String, NodeTypeInfo> getNodeTypesInfo() {
+    private Map<String, NodeTypeInfo> getNodeTypesInfo() {
         Map<String, NodeTypeInfo> nodeTypesInfo = new HashMap<>();
         NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
         Map<String, Object> mappedToscaTemplate = new HashMap<>();
@@ -2218,9 +2173,21 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         return nodeTypesInfo;
     }
 
-    protected Map<String, UploadComponentInstanceInfo> getUploadResInstancesMap() {
+    private Map<String, Object> getNodeTypes() {
+        Map<String, Object> nodeTypesInfo = new HashMap<>();
+        NodeTypeInfo nodeTypeInfo = new NodeTypeInfo();
+        Map<String, Object> mappedToscaTemplate = new HashMap<>();
+        nodeTypeInfo.setNested(true);
+        nodeTypeInfo.setTemplateFileName("templateFileName");
+        nodeTypeInfo.setMappedToscaTemplate(mappedToscaTemplate);
+        String nodeName = "org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test";
+        nodeTypesInfo.put(nodeName, nodeTypeInfo);
+        return nodeTypesInfo;
+    }
+
+    private Map<String, UploadComponentInstanceInfo> getUploadResInstancesMap() {
         Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
-        UploadComponentInstanceInfo uploadComponentInstanceInfo = getuploadComponentInstanceInfo();
+        UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
         Map<String, String> capabilitiesNamesToUpdate = new HashMap<>();
         capabilitiesNamesToUpdate.put("mme_ipu_vdu.feature", "capabilitiesNamesToUpdate");
         Map<String, String> requirementsNamesToUpdate = new HashMap<>();
@@ -2324,10 +2291,10 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         return componentInstances;
     }
 
-    protected CreateServiceFromYamlParameter getCsfyp() {
+    private CreateServiceFromYamlParameter getCsfyp() {
         CreateServiceFromYamlParameter csfyp = new CreateServiceFromYamlParameter();
         List<ArtifactDefinition> createdArtifacts = new ArrayList<>();
-        Map<String, NodeTypeInfo> nodeTypesInfo = new HashedMap();
+        Map<String, NodeTypeInfo> nodeTypesInfo = getNodeTypesInfo();
 
         csfyp.setNodeName("org.openecomp.resource.derivedFrom.zxjTestImportServiceAb.test");
         csfyp.setTopologyTemplateYaml(getMainTemplateContent("service_import_template.yml"));
@@ -2341,12 +2308,11 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
         return csfyp;
     }
 
-    protected ParsedToscaYamlInfo getParsedToscaYamlInfo() {
+    private ParsedToscaYamlInfo getParsedToscaYamlInfo() {
         ParsedToscaYamlInfo parsedToscaYamlInfo = new ParsedToscaYamlInfo();
         Map<String, InputDefinition> inputs = new HashMap<>();
         Map<String, UploadComponentInstanceInfo> instances = new HashMap<>();
-        UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
-        uploadComponentInstanceInfo.setName("uploadComponentInstanceInfo");
+        UploadComponentInstanceInfo uploadComponentInstanceInfo = getUploadComponentInstanceInfo();
         instances.put("instances", uploadComponentInstanceInfo);
         Map<String, GroupDefinition> groups = new HashMap<>();
         Map<String, PolicyDefinition> policies = new HashMap<>();
@@ -2369,13 +2335,12 @@ class ServiceImportBusinessLogicTest extends ServiceImportBussinessLogicBaseTest
 
     protected CsarInfo getCsarInfo() {
         String csarUuid = "0010";
-        User user = new User();
+        User user = new User("jh0003");
         Map<String, byte[]> csar = crateCsarFromPayload();
         String vfReousrceName = "resouceName";
         String mainTemplateName = "mainTemplateName";
         String mainTemplateContent = getMainTemplateContent("service_import_template.yml");
-        CsarInfo csarInfo = new CsarInfo(user, csarUuid, csar, vfReousrceName, mainTemplateName, mainTemplateContent, false);
-        return csarInfo;
+        return new CsarInfo(user, csarUuid, csar, vfReousrceName, mainTemplateName, mainTemplateContent, false);
     }
 
     protected CsarUtils.NonMetaArtifactInfo getNonMetaArtifactInfo() {
index 5dfa287..8ff8163 100644 (file)
@@ -37,15 +37,18 @@ import java.util.List;
 import java.util.Map;
 import javax.servlet.ServletContext;
 import org.junit.jupiter.api.BeforeEach;
+import org.mockito.Mock;
 import org.mockito.Mockito;
 import org.openecomp.sdc.ElementOperationMock;
-import org.openecomp.sdc.be.auditing.impl.AuditingManager;
 import org.openecomp.sdc.be.components.csar.CsarArtifactsAndGroupsBusinessLogic;
+import org.openecomp.sdc.be.components.csar.CsarBusinessLogic;
 import org.openecomp.sdc.be.components.csar.CsarInfo;
 import org.openecomp.sdc.be.components.distribution.engine.DistributionEngine;
 import org.openecomp.sdc.be.components.impl.exceptions.ComponentException;
 import org.openecomp.sdc.be.components.impl.generic.GenericTypeBusinessLogic;
 import org.openecomp.sdc.be.components.impl.utils.CreateServiceFromYamlParameter;
+import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic;
+import org.openecomp.sdc.be.components.merge.resource.ResourceDataMergeBusinessLogic;
 import org.openecomp.sdc.be.components.path.ForwardingPathValidator;
 import org.openecomp.sdc.be.components.validation.NodeFilterValidator;
 import org.openecomp.sdc.be.components.validation.ServiceDistributionValidation;
@@ -107,7 +110,6 @@ import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade
 import org.openecomp.sdc.be.model.operations.api.IElementOperation;
 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
 import org.openecomp.sdc.be.model.operations.impl.GraphLockOperation;
-import org.openecomp.sdc.be.resources.data.auditing.ResourceAdminEvent;
 import org.openecomp.sdc.be.user.Role;
 import org.openecomp.sdc.be.user.UserBusinessLogic;
 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
@@ -133,24 +135,33 @@ public class ServiceImportBussinessLogicBaseTestSetup extends BaseBusinessLogicM
     private static final String RESOURCE_SUBCATEGORY = "Router";
     protected final ServletContext servletContext = Mockito.mock(ServletContext.class);
     protected final ComponentValidator componentValidator = Mockito.mock(ComponentValidator.class);
-    protected ServiceImportBusinessLogic sIB1;
-    protected UserBusinessLogic mockUserAdmin = Mockito.mock(UserBusinessLogic.class);
+    final DistributionEngine distributionEngine = Mockito.mock(DistributionEngine.class);
+    final ServiceDistributionValidation serviceDistributionValidation = Mockito.mock(ServiceDistributionValidation.class);
+    final ComponentInstanceBusinessLogic componentInstanceBusinessLogic = Mockito.mock(ComponentInstanceBusinessLogic.class);
+    final ForwardingPathValidator forwardingPathValidator = Mockito.mock(ForwardingPathValidator.class);
+    final UiComponentDataConverter uiComponentDataConverter = Mockito.mock(UiComponentDataConverter.class);
+    final NodeFilterOperation serviceFilterOperation = Mockito.mock(NodeFilterOperation.class);
+    final NodeFilterValidator serviceFilterValidator = Mockito.mock(NodeFilterValidator.class);
+    //    final ServiceBusinessLogic serviceBusinessLogic = Mockito.mock(ServiceBusinessLogic.class);
+    final CsarBusinessLogic csarBusinessLogic = Mockito.mock(CsarBusinessLogic.class);
+    final LifecycleBusinessLogic lifecycleBusinessLogic = Mockito.mock(LifecycleBusinessLogic.class);
+    final CompositionBusinessLogic compositionBusinessLogic = Mockito.mock(CompositionBusinessLogic.class);
+    final ResourceDataMergeBusinessLogic resourceDataMergeBusinessLogic = Mockito.mock(ResourceDataMergeBusinessLogic.class);
+    final ComponentNodeFilterBusinessLogic componentNodeFilterBusinessLogic = Mockito.mock(ComponentNodeFilterBusinessLogic.class);
+    protected UserBusinessLogic userBusinessLogic = Mockito.mock(UserBusinessLogic.class);
     protected WebAppContextWrapper webAppContextWrapper = Mockito.mock(WebAppContextWrapper.class);
     protected WebApplicationContext webAppContext = Mockito.mock(WebApplicationContext.class);
     protected ResponseFormatManager responseManager = null;
-    protected ComponentsUtils componentsUtils = new ComponentsUtils(Mockito.mock(AuditingManager.class));
+    protected ComponentsUtils componentsUtils = Mockito.mock(ComponentsUtils.class);
     protected AuditCassandraDao auditingDao = Mockito.mock(AuditCassandraDao.class);
-    protected ArtifactsBusinessLogic artifactBl = Mockito.mock(ArtifactsBusinessLogic.class);
+    protected ArtifactsBusinessLogic artifactsBusinessLogic = Mockito.mock(ArtifactsBusinessLogic.class);
     protected GraphLockOperation graphLockOperation = Mockito.mock(GraphLockOperation.class);
     protected JanusGraphDao mockJanusGraphDao = Mockito.mock(JanusGraphDao.class);
     protected ToscaOperationFacade toscaOperationFacade = Mockito.mock(ToscaOperationFacade.class);
     protected CsarArtifactsAndGroupsBusinessLogic csarArtifactsAndGroupsBusinessLogic = Mockito.mock(CsarArtifactsAndGroupsBusinessLogic.class);
     protected GenericTypeBusinessLogic genericTypeBusinessLogic = Mockito.mock(GenericTypeBusinessLogic.class);
     protected UserValidations userValidations = Mockito.mock(UserValidations.class);
-    protected ResourceAdminEvent auditArchive1 = Mockito.mock(ResourceAdminEvent.class);
     protected CatalogOperation catalogOperation = Mockito.mock(CatalogOperation.class);
-    protected ResourceAdminEvent auditArchive2 = Mockito.mock(ResourceAdminEvent.class);
-    protected ResourceAdminEvent auditRestore = Mockito.mock(ResourceAdminEvent.class);
     protected ServiceImportParseLogic serviceImportParseLogic = Mockito.mock(ServiceImportParseLogic.class);
     protected ServiceTypeValidator serviceTypeValidator = new ServiceTypeValidator(componentsUtils);
     protected ServiceRoleValidator serviceRoleValidator = new ServiceRoleValidator(componentsUtils);
@@ -164,16 +175,11 @@ public class ServiceImportBussinessLogicBaseTestSetup extends BaseBusinessLogicM
     protected ComponentNameValidator componentNameValidator = new ComponentNameValidator(componentsUtils, toscaOperationFacade);
     protected User user = null;
     protected Resource genericService = null;
+    @Mock
+    protected ServiceBusinessLogic serviceBusinessLogic;
     IElementOperation mockElementDao = new ElementOperationMock();
     protected ServiceCategoryValidator serviceCategoryValidator = new ServiceCategoryValidator(componentsUtils, mockElementDao);
     protected ServiceValidator serviceValidator = createServiceValidator();
-    DistributionEngine distributionEngine = Mockito.mock(DistributionEngine.class);
-    ServiceDistributionValidation serviceDistributionValidation = Mockito.mock(ServiceDistributionValidation.class);
-    ComponentInstanceBusinessLogic componentInstanceBusinessLogic = Mockito.mock(ComponentInstanceBusinessLogic.class);
-    ForwardingPathValidator forwardingPathValidator = Mockito.mock(ForwardingPathValidator.class);
-    UiComponentDataConverter uiComponentDataConverter = Mockito.mock(UiComponentDataConverter.class);
-    NodeFilterOperation serviceFilterOperation = Mockito.mock(NodeFilterOperation.class);
-    NodeFilterValidator serviceFilterValidator = Mockito.mock(NodeFilterValidator.class);
 
     public ServiceImportBussinessLogicBaseTestSetup() {
 
@@ -205,7 +211,7 @@ public class ServiceImportBussinessLogicBaseTestSetup extends BaseBusinessLogicM
         user.setLastName("Hendrix");
         user.setRole(Role.ADMIN.name());
 
-        when(mockUserAdmin.getUser("jh0003", false)).thenReturn(user);
+        when(userBusinessLogic.getUser("jh0003", false)).thenReturn(user);
         when(userValidations.validateUserExists("jh0003")).thenReturn(user);
         when(userValidations.validateUserNotEmpty(eq(user), anyString())).thenReturn(user);
         // Servlet Context attributes
@@ -218,7 +224,7 @@ public class ServiceImportBussinessLogicBaseTestSetup extends BaseBusinessLogicM
         when(catalogOperation.updateCatalog(Mockito.any(), Mockito.any())).thenReturn(ActionStatus.OK);
         // artifact bussinesslogic
         ArtifactDefinition artifactDef = new ArtifactDefinition();
-        when(artifactBl.createArtifactPlaceHolderInfo(Mockito.any(), Mockito.anyString(), Mockito.anyMap(), Mockito.any(User.class),
+        when(artifactsBusinessLogic.createArtifactPlaceHolderInfo(Mockito.any(), Mockito.anyString(), Mockito.anyMap(), Mockito.any(User.class),
             Mockito.any(ArtifactGroupTypeEnum.class))).thenReturn(artifactDef);
 
         // createService
@@ -250,14 +256,6 @@ public class ServiceImportBussinessLogicBaseTestSetup extends BaseBusinessLogicM
 
         when(serviceImportParseLogic.isArtifactDeletionRequired(anyString(), any(), anyBoolean())).thenReturn(true);
 
-        sIB1 = new ServiceImportBusinessLogic(elementDao, groupOperation, groupInstanceOperation,
-            groupTypeOperation, groupBusinessLogic, interfaceOperation, interfaceLifecycleTypeOperation,
-            artifactBl, distributionEngine, componentInstanceBusinessLogic,
-            serviceDistributionValidation, forwardingPathValidator, uiComponentDataConverter, serviceFilterOperation,
-            serviceFilterValidator, artifactToscaOperation, componentContactIdValidator,
-            componentNameValidator, componentTagsValidator, componentValidator,
-            componentIconValidator, componentProjectCodeValidator, componentDescriptionValidator);
-
         mockAbstract();
 
         responseManager = ResponseFormatManager.getInstance();
@@ -267,6 +265,7 @@ public class ServiceImportBussinessLogicBaseTestSetup extends BaseBusinessLogicM
         Service service = new Service();
         service.setUniqueId("sid");
         service.setName("Service");
+        service.setSystemName("SystemName");
         CategoryDefinition category = new CategoryDefinition();
         category.setName(SERVICE_CATEGORY);
         category.setIcons(Collections.singletonList("defaulticon"));
@@ -323,6 +322,7 @@ public class ServiceImportBussinessLogicBaseTestSetup extends BaseBusinessLogicM
 
     protected Resource createParseResourceObject(boolean afterCreate) {
         Resource resource = new Resource();
+        resource.setUniqueId(COMPONNET_ID);
         resource.setName(RESOURCE_NAME);
         resource.setToscaResourceName(RESOURCE_TOSCA_NAME);
         resource.addCategory(RESOURCE_CATEGORY1, RESOURCE_SUBCATEGORY);
@@ -371,9 +371,9 @@ public class ServiceImportBussinessLogicBaseTestSetup extends BaseBusinessLogicM
         return groups;
     }
 
-    protected UploadComponentInstanceInfo getuploadComponentInstanceInfo() {
+    protected UploadComponentInstanceInfo getUploadComponentInstanceInfo() {
         UploadComponentInstanceInfo uploadComponentInstanceInfo = new UploadComponentInstanceInfo();
-        uploadComponentInstanceInfo.setType("resources");
+        uploadComponentInstanceInfo.setType("My-Resource_Tosca_Name");
         Collection<String> directives = new Collection<String>() {
             @Override
             public int size() {
index f723a15..1b5b7d8 100644 (file)
@@ -18,6 +18,9 @@
 package org.openecomp.sdc.be.components.impl;
 
 
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -27,17 +30,13 @@ import org.mockito.junit.jupiter.MockitoExtension;
 import org.openecomp.sdc.be.model.Service;
 import org.openecomp.sdc.be.model.UploadServiceInfo;
 
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertNull;
-
 @ExtendWith(MockitoExtension.class)
 class ServiceImportManagerTest {
 
+    private final ServiceBusinessLogic serviceBusinessLogic = Mockito.mock(ServiceBusinessLogic.class);
     @InjectMocks
     private ServiceImportManager serviceImportManager;
 
-    public static final ServiceBusinessLogic serviceBusinessLogic = Mockito.mock(ServiceBusinessLogic.class);
-
     @BeforeEach
     public void setup() {
         serviceImportManager = new ServiceImportManager();
index d16dc23..0306ce0 100644 (file)
@@ -126,7 +126,9 @@ class ServiceImportParseLogicTest extends ServiceImportBussinessLogicBaseTestSet
     private ServiceImportParseLogic testSubject;
 
     private ServiceImportParseLogic createTestSubject() {
-        return new ServiceImportParseLogic();
+        return new ServiceImportParseLogic(serviceBusinessLogic, componentsUtils, toscaOperationFacade, lifecycleBusinessLogic, inputsBusinessLogic,
+            null, null, interfaceTypeOperation, capabilityTypeOperation, componentNodeFilterBusinessLogic,
+            groupBusinessLogic);
     }
 
     @BeforeEach
@@ -145,15 +147,7 @@ class ServiceImportParseLogicTest extends ServiceImportBussinessLogicBaseTestSet
         responseManager = ResponseFormatManager.getInstance();
 
         testSubject = createTestSubject();
-        testSubject.setComponentsUtils(componentsUtils);
-        testSubject.setToscaOperationFacade(toscaOperationFacade);
         serviceBusinessLogic.setElementDao(elementDao);
-        testSubject.setServiceBusinessLogic(serviceBusinessLogic);
-        testSubject.setCapabilityTypeOperation(capabilityTypeOperation);
-        testSubject.setInterfaceTypeOperation(interfaceTypeOperation);
-        testSubject.setInputsBusinessLogic(inputsBusinessLogic);
-        testSubject.setLifecycleBusinessLogic(lifecycleBusinessLogic);
-        testSubject.setComponentNodeFilterBusinessLogic(componentNodeFilterBusinessLogic);
     }
 
     @Test
@@ -1865,7 +1859,7 @@ class ServiceImportParseLogicTest extends ServiceImportBussinessLogicBaseTestSet
         Resource resource = createResourceObject(false);
 
         Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
-        UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
+        UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
         nodesInfoValue.getRequirements().get("requirements").get(0).setName("zxjtestimportserviceab0.mme_ipu_vdu.dependency.test");
         uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
         List<ComponentInstance> componentInstancesList = creatComponentInstances();
@@ -1897,7 +1891,7 @@ class ServiceImportParseLogicTest extends ServiceImportBussinessLogicBaseTestSet
         String yamlName = "group.yml";
         Resource resource = createParseResourceObject(true);
         Map<String, UploadComponentInstanceInfo> uploadResInstancesMap = new HashMap<>();
-        UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
+        UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
         uploadResInstancesMap.put("uploadComponentInstanceInfo", nodesInfoValue);
         List<ComponentInstance> componentInstancesList = new ArrayList<>();
         List<RequirementCapabilityRelDef> relations = new ArrayList<>();
@@ -1912,7 +1906,7 @@ class ServiceImportParseLogicTest extends ServiceImportBussinessLogicBaseTestSet
         String yamlName = "yamlName";
         Resource resource = createParseResourceObject(true);
         resource.setComponentInstances(creatComponentInstances());
-        UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
+        UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
         List<RequirementCapabilityRelDef> relations = new ArrayList<>();
 
         Assertions.assertNotNull(
@@ -1925,7 +1919,7 @@ class ServiceImportParseLogicTest extends ServiceImportBussinessLogicBaseTestSet
         Resource resource = createParseResourceObject(false);
         List<ComponentInstance> componentInstancesList = new ArrayList<>();
         resource.setComponentInstances(componentInstancesList);
-        UploadComponentInstanceInfo nodesInfoValue = getuploadComponentInstanceInfo();
+        UploadComponentInstanceInfo nodesInfoValue = getUploadComponentInstanceInfo();
         List<RequirementCapabilityRelDef> relations = new ArrayList<>();
         Assertions.assertNotNull(
             testSubject.addRelationToRI(yamlName, resource, nodesInfoValue, relations));
index e9c1d40..ab4e638 100644 (file)
@@ -33,7 +33,6 @@ import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
-import org.junit.jupiter.api.BeforeAll;
 import org.junit.jupiter.api.BeforeEach;
 import org.openecomp.sdc.be.components.BeConfDependentTest;
 import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic;
@@ -41,7 +40,6 @@ import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic;
 import org.openecomp.sdc.be.components.path.beans.JanusGraphTestSetup;
 import org.openecomp.sdc.be.components.path.utils.GraphTestUtils;
 import org.openecomp.sdc.be.components.validation.service.ServiceValidator;
-import org.openecomp.sdc.be.config.ConfigurationManager;
 import org.openecomp.sdc.be.dao.api.ActionStatus;
 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphClient;
 import org.openecomp.sdc.be.dao.janusgraph.JanusGraphDao;
@@ -65,8 +63,6 @@ import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder;
 import org.openecomp.sdc.be.tosca.CapabilityRequirementConverter;
 import org.openecomp.sdc.be.user.Role;
 import org.openecomp.sdc.common.datastructure.UserContext;
-import org.openecomp.sdc.common.impl.ExternalConfiguration;
-import org.openecomp.sdc.common.impl.FSConfigurationSource;
 import org.openecomp.sdc.common.util.ThreadLocalsHolder;
 import org.openecomp.sdc.common.util.ValidationUtils;
 import org.openecomp.sdc.exception.ResponseFormat;
@@ -123,7 +119,6 @@ public abstract class BaseForwardingPathTest extends BeConfDependentTest impleme
         userRole.add(user.getRole());
         UserContext userContext = new UserContext(user.getUserId(), userRole, user.getFirstName(), user.getLastName());
         ThreadLocalsHolder.setUserContext(userContext);
-        bl.setServiceValidator(serviceValidator);
     }
 
     private void initGraph() {
@@ -144,7 +139,6 @@ public abstract class BaseForwardingPathTest extends BeConfDependentTest impleme
     private Service createTestService() {
         when(catalogOperation.updateCatalog(any(), any())).thenReturn(ActionStatus.OK);
         bl.setCatalogOperations(catalogOperation);
-        bl.setServiceValidator(serviceValidator);
         createCategory();
         createServiceCategory(CATEGORY_NAME);
         initGraph();
index d7f70ae..25c1f76 100644 (file)
@@ -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.
@@ -22,6 +22,7 @@ package org.openecomp.sdc.be.tosca;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.assertj.core.api.Assertions.assertThatExceptionOfType;
+import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.mockito.Mockito.when;
 
 import fj.data.Either;
@@ -30,10 +31,10 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import org.junit.Test;
-import org.junit.runner.RunWith;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
 import org.mockito.Mock;
-import org.mockito.junit.MockitoJUnitRunner;
+import org.mockito.junit.jupiter.MockitoExtension;
 import org.openecomp.sdc.be.components.impl.exceptions.SdcResourceNotFoundException;
 import org.openecomp.sdc.be.datatypes.elements.PolicyTargetType;
 import org.openecomp.sdc.be.model.Component;
@@ -44,140 +45,139 @@ import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
 import org.openecomp.sdc.be.tosca.model.ToscaMetadata;
 import org.openecomp.sdc.be.tosca.model.ToscaPolicyTemplate;
 
-@RunWith(MockitoJUnitRunner.class)
-public class PolicyExportParserImplTest {
-
-       private static final String[] POLICY_KEYS = {"policy_key_1","policy_key_2"};
-       private static final String[] VERSIONS = {"version_1","version_1"};
-       private static final String[] POLICY_NAMES = {"name_1","name_2"};
-       private static final String[] POLICY_UUIDS = {"policyUUID_1","policyUUID_2"};
-       private static final String[] INVARIANT_UUIDS = {"invariantUUID_1","invariantUUID_2"};
-       private static final String[] POLICY_TYPE_NAMES = {"policyTypeName_1","policyTypeName_2"};
-       private static final String[] POLICY_COMPONENT_INSTANCES = {"policyComponentInstanceId"};
-       private static final String POLICY_COMPONENT_INSTANCES_NAME = "policyComponentInstanceName";
-       private static final String[] POLICY_GROUPS = {"policyGroupId"};
-       private static final String POLICY_GROUP_NAME = "PolicyGroupName";
-       
-       private PolicyExportParser policiyExportParser;
-    
-       @Mock
-       private ApplicationDataTypeCache applicationDataTypeCache;
-       @Mock
-       private PropertyConvertor propertyConvertor;
-       
-       @Mock
-       private Component component;
-               
-       @Test
-       public void failToGetAllDataTypes() {
-               
-               when(applicationDataTypeCache.getAll(null)).thenReturn(Either.right(null));
-               assertThatExceptionOfType(SdcResourceNotFoundException.class).isThrownBy(() -> policiyExportParser = new PolicyExportParserImpl(
-                       applicationDataTypeCache,
-                propertyConvertor));
-       }
-       
-       @Test
-       public void noPoliciesInComponent() {
-               
-               when(applicationDataTypeCache.getAll(null)).thenReturn(Either.left(null));
-               when(component.getPolicies()).thenReturn(null);
-               policiyExportParser = new PolicyExportParserImpl(applicationDataTypeCache, propertyConvertor);
-               Map<String, ToscaPolicyTemplate> policies = policiyExportParser.getPolicies(component);
-               assertThat(policies).isEqualTo(null);
-       }
-       
-       @Test
-       public void onePoliciesInComponent() {
-               
-               List<Integer> constIndexes = Arrays.asList(new Integer[] {0});
-           testPoliciesInComponent(constIndexes);
-       }
-       
-       @Test
-       public void twoPoliciesInComponent() {
-               
-               List<Integer> constIndexes = Arrays.asList(new Integer[] {0,1});                
-               testPoliciesInComponent(constIndexes);          
-       }
-
-       private void testPoliciesInComponent(List<Integer> constIndexes) {
-               when(applicationDataTypeCache.getAll(null)).thenReturn(Either.left(null));
-               Map<String, PolicyDefinition> policiesToAdd = getPolicies(constIndexes);
-               
-               when(component.getPolicies()).thenReturn(policiesToAdd);
-               when(component.getComponentInstances()).thenReturn(getComponentInstances());
-               when(component.getGroups()).thenReturn(getGroups());
-               policiyExportParser = new PolicyExportParserImpl(applicationDataTypeCache, propertyConvertor);
-               
-               Map<String, ToscaPolicyTemplate> policies = policiyExportParser.getPolicies(component);
-               
-               for(Integer i : constIndexes) {
-                       
-                       
-                       ToscaPolicyTemplate toscaPolicyTemplate = policies.get(POLICY_NAMES[i]);
-                       ToscaMetadata metadata = (ToscaMetadata) toscaPolicyTemplate.getMetadata();
-                       
-                       assertThat(metadata.getInvariantUUID()).isEqualTo(INVARIANT_UUIDS[i]);
-                       assertThat(metadata.getUUID()).isEqualTo(POLICY_UUIDS[i]);
-                       assertThat(metadata.getName()).isEqualTo(POLICY_NAMES[i]);
-                       assertThat(metadata.getVersion()).isEqualTo(VERSIONS[i]);
-                       
-                       String type = toscaPolicyTemplate.getType();
-                       assertThat(type).isEqualTo(POLICY_TYPE_NAMES[i]);
-                       
-                       List<String> targets = toscaPolicyTemplate.getTargets();
-                       assertThat(targets.get(0)).isEqualTo(POLICY_COMPONENT_INSTANCES_NAME);
-                       assertThat(targets.get(1)).isEqualTo(POLICY_GROUP_NAME);                        
-               }               
-       }       
-
-       private List<GroupDefinition> getGroups() {
-               List<GroupDefinition> groups = new ArrayList<>();
-               GroupDefinition groupDefinition = new GroupDefinition();
-               groupDefinition.setUniqueId(POLICY_GROUPS[0]);
-               groupDefinition.setName(POLICY_GROUP_NAME);
-               groups.add(groupDefinition);
-               return groups;
-       }
-
-       private List<ComponentInstance> getComponentInstances() {
-               List<ComponentInstance> componentInstances = new ArrayList<>();
-               ComponentInstance componentInstance = new ComponentInstance();
-               componentInstance.setUniqueId(POLICY_COMPONENT_INSTANCES[0]);
-               componentInstance.setName(POLICY_COMPONENT_INSTANCES_NAME);
-               componentInstances.add(componentInstance);
-               return componentInstances;
-       }
-
-       private Map<String, PolicyDefinition> getPolicies(List<Integer> indexes) {
-               Map<String, PolicyDefinition> policies = new HashMap<>();
-               
-               for (int index : indexes) {
-                       
-                       PolicyDefinition policyDefinition = new PolicyDefinition();
-                       
-                       // Set type
-                       policyDefinition.setPolicyTypeName(POLICY_TYPE_NAMES[index]);
-                       
-                       // Set Metadata
-                       policyDefinition.setInvariantUUID(INVARIANT_UUIDS[index]);
-                       policyDefinition.setPolicyUUID(POLICY_UUIDS[index]);
-                       policyDefinition.setName(POLICY_NAMES[index]);
-                       policyDefinition.setVersion(VERSIONS[index]);
-                       
-                       // Set targets
-                       policyDefinition.setTargets(getTargers());                      
-                       
-                       policies.put(POLICY_KEYS[index],policyDefinition);
-               }               
-               return policies;
-       }
-
-       private Map<PolicyTargetType, List<String>> getTargers() {
-               Map<PolicyTargetType, List<String>> targets = new HashMap<>();
-               targets.put(PolicyTargetType.COMPONENT_INSTANCES, Arrays.asList(POLICY_COMPONENT_INSTANCES));
-               targets.put(PolicyTargetType.GROUPS, Arrays.asList(POLICY_GROUPS));
-               return targets;
-       }       
+@ExtendWith(MockitoExtension.class)
+class PolicyExportParserImplTest {
+
+    private static final String[] POLICY_KEYS = {"policy_key_1", "policy_key_2"};
+    private static final String[] VERSIONS = {"version_1", "version_1"};
+    private static final String[] POLICY_NAMES = {"name_1", "name_2"};
+    private static final String[] POLICY_UUIDS = {"policyUUID_1", "policyUUID_2"};
+    private static final String[] INVARIANT_UUIDS = {"invariantUUID_1", "invariantUUID_2"};
+    private static final String[] POLICY_TYPE_NAMES = {"policyTypeName_1", "policyTypeName_2"};
+    private static final String[] POLICY_COMPONENT_INSTANCES = {"policyComponentInstanceId"};
+    private static final String POLICY_COMPONENT_INSTANCES_NAME = "policyComponentInstanceName";
+    private static final String[] POLICY_GROUPS = {"policyGroupId"};
+    private static final String POLICY_GROUP_NAME = "PolicyGroupName";
+
+    private PolicyExportParser policiyExportParser;
+
+    @Mock
+    private ApplicationDataTypeCache applicationDataTypeCache;
+    @Mock
+    private PropertyConvertor propertyConvertor;
+
+    @Mock
+    private Component component;
+
+    @Test
+    void failToGetAllDataTypes() {
+
+        when(applicationDataTypeCache.getAll(null)).thenReturn(Either.right(null));
+        assertThatExceptionOfType(SdcResourceNotFoundException.class).isThrownBy(() -> policiyExportParser = new PolicyExportParserImpl(
+            applicationDataTypeCache,
+            propertyConvertor));
+    }
+
+    @Test
+    void noPoliciesInComponent() {
+
+        when(applicationDataTypeCache.getAll(null)).thenReturn(Either.left(null));
+        when(component.getPolicies()).thenReturn(null);
+        policiyExportParser = new PolicyExportParserImpl(applicationDataTypeCache, propertyConvertor);
+        Map<String, ToscaPolicyTemplate> policies = policiyExportParser.getPolicies(component);
+        assertNull(policies);
+    }
+
+    @Test
+    void onePoliciesInComponent() {
+
+        List<Integer> constIndexes = Arrays.asList(new Integer[]{0});
+        testPoliciesInComponent(constIndexes);
+    }
+
+    @Test
+    void twoPoliciesInComponent() {
+
+        List<Integer> constIndexes = Arrays.asList(new Integer[]{0, 1});
+        testPoliciesInComponent(constIndexes);
+    }
+
+    private void testPoliciesInComponent(List<Integer> constIndexes) {
+        when(applicationDataTypeCache.getAll(null)).thenReturn(Either.left(null));
+        Map<String, PolicyDefinition> policiesToAdd = getPolicies(constIndexes);
+
+        when(component.getPolicies()).thenReturn(policiesToAdd);
+        when(component.getComponentInstances()).thenReturn(getComponentInstances());
+        when(component.getGroups()).thenReturn(getGroups());
+        policiyExportParser = new PolicyExportParserImpl(applicationDataTypeCache, propertyConvertor);
+
+        Map<String, ToscaPolicyTemplate> policies = policiyExportParser.getPolicies(component);
+
+        for (Integer i : constIndexes) {
+
+            ToscaPolicyTemplate toscaPolicyTemplate = policies.get(POLICY_NAMES[i]);
+            ToscaMetadata metadata = (ToscaMetadata) toscaPolicyTemplate.getMetadata();
+
+            assertThat(metadata.getInvariantUUID()).isEqualTo(INVARIANT_UUIDS[i]);
+            assertThat(metadata.getUUID()).isEqualTo(POLICY_UUIDS[i]);
+            assertThat(metadata.getName()).isEqualTo(POLICY_NAMES[i]);
+            assertThat(metadata.getVersion()).isEqualTo(VERSIONS[i]);
+
+            String type = toscaPolicyTemplate.getType();
+            assertThat(type).isEqualTo(POLICY_TYPE_NAMES[i]);
+
+            List<String> targets = toscaPolicyTemplate.getTargets();
+            assertThat(targets.get(0)).isEqualTo(POLICY_COMPONENT_INSTANCES_NAME);
+            assertThat(targets.get(1)).isEqualTo(POLICY_GROUP_NAME);
+        }
+    }
+
+    private List<GroupDefinition> getGroups() {
+        List<GroupDefinition> groups = new ArrayList<>();
+        GroupDefinition groupDefinition = new GroupDefinition();
+        groupDefinition.setUniqueId(POLICY_GROUPS[0]);
+        groupDefinition.setName(POLICY_GROUP_NAME);
+        groups.add(groupDefinition);
+        return groups;
+    }
+
+    private List<ComponentInstance> getComponentInstances() {
+        List<ComponentInstance> componentInstances = new ArrayList<>();
+        ComponentInstance componentInstance = new ComponentInstance();
+        componentInstance.setUniqueId(POLICY_COMPONENT_INSTANCES[0]);
+        componentInstance.setName(POLICY_COMPONENT_INSTANCES_NAME);
+        componentInstances.add(componentInstance);
+        return componentInstances;
+    }
+
+    private Map<String, PolicyDefinition> getPolicies(List<Integer> indexes) {
+        Map<String, PolicyDefinition> policies = new HashMap<>();
+
+        for (int index : indexes) {
+
+            PolicyDefinition policyDefinition = new PolicyDefinition();
+
+            // Set type
+            policyDefinition.setPolicyTypeName(POLICY_TYPE_NAMES[index]);
+
+            // Set Metadata
+            policyDefinition.setInvariantUUID(INVARIANT_UUIDS[index]);
+            policyDefinition.setPolicyUUID(POLICY_UUIDS[index]);
+            policyDefinition.setName(POLICY_NAMES[index]);
+            policyDefinition.setVersion(VERSIONS[index]);
+
+            // Set targets
+            policyDefinition.setTargets(getTargets());
+
+            policies.put(POLICY_KEYS[index], policyDefinition);
+        }
+        return policies;
+    }
+
+    private Map<PolicyTargetType, List<String>> getTargets() {
+        Map<PolicyTargetType, List<String>> targets = new HashMap<>();
+        targets.put(PolicyTargetType.COMPONENT_INSTANCES, Arrays.asList(POLICY_COMPONENT_INSTANCES));
+        targets.put(PolicyTargetType.GROUPS, Arrays.asList(POLICY_GROUPS));
+        return targets;
+    }
 }