Fix mismatch in requirement name in sub mapping 91/123691/2
authorMichaelMorris <michael.morris@est.tech>
Mon, 30 Aug 2021 11:28:05 +0000 (12:28 +0100)
committerAndr� Schmid <andre.schmid@est.tech>
Thu, 2 Sep 2021 10:57:18 +0000 (10:57 +0000)
Signed-off-by: MichaelMorris <michael.morris@est.tech>
Issue-ID: SDC-3701
Change-Id: I0898d8b16c6e5cda035f33024f26644d7c6b1ef5

catalog-be/src/main/java/org/openecomp/sdc/be/tosca/CapabilityRequirementConverter.java
catalog-be/src/main/java/org/openecomp/sdc/be/tosca/ToscaExportHandler.java
catalog-be/src/test/java/org/openecomp/sdc/be/tosca/ToscaExportHandlerTest.java

index 8cc5868..bf42af8 100644 (file)
@@ -322,7 +322,7 @@ public class CapabilityRequirementConverter {
                 (StringUtils.isEmpty(r.getExternalName()) ?
                     addEntry(componentsCache, toscaRequirements, component, new SubstitutionEntry(r.getName(), r.getParentName(), ""),
                         r.getPreviousName(), r.getOwnerId(), r.getPath()): 
-                    addEntry(componentsCache, toscaRequirements, component, new SubstitutionEntry(r.getExternalName(), r.getName(), ""),
+                    addEntry(componentsCache, toscaRequirements, component, new SubstitutionEntry(r.getExternalName(), r.getPreviousName() == null ? r.getName(): r.getPreviousName(), ""),
                         r.getPreviousName(), r.getOwnerId(), r.getPath(), false))
                     ).findAny();
     }
@@ -667,7 +667,15 @@ public class CapabilityRequirementConverter {
      * @return
      */
     public Either<String, Boolean> buildSubstitutedName(Map<String, Component> componentsCache, Component originComponent, List<String> path,
-                                                        String name, String previousName) {
+                    String name, String previousName) {
+        return buildSubstitutedName(componentsCache, originComponent, path, name, previousName, null);
+    }
+    
+    public Either<String, Boolean> buildSubstitutedName(Map<String, Component> componentsCache, Component originComponent, List<String> path,
+                                                        String name, String previousName, String externalName) {
+        if (StringUtils.isNotEmpty(externalName)) {
+            return Either.left(externalName);
+        }
         if (StringUtils.isNotEmpty(previousName)) {
             return Either.left(name);
         }
index 1b27857..6a1ba4e 100644 (file)
@@ -1379,7 +1379,7 @@ public class ToscaExportHandler {
         }
         final RelationshipInfo relationshipInfo = capabilityRequirementRelationship.getRelation();
         final Either<String, Boolean> capabilityNameEither = capabilityRequirementConverter.buildSubstitutedName(componentCache,
-            toOriginComponent, reducedPath, relationshipInfo.getCapability(), capability.getPreviousName());
+            toOriginComponent, reducedPath, relationshipInfo.getCapability(), capability.getPreviousName(), capability.getExternalName());
         if (capabilityNameEither.isRight()) {
             final String errorMsg = String.format(
                 "Failed to build a substituted capability name for the capability with name %s on a component with uniqueId %s",
@@ -1390,7 +1390,7 @@ public class ToscaExportHandler {
         }
         final Either<String, Boolean> requirementNameEither = capabilityRequirementConverter
             .buildSubstitutedName(componentCache, fromOriginComponent,
-                requirement.getPath(), relationshipInfo.getRequirement(), requirement.getPreviousName());
+                requirement.getPath(), relationshipInfo.getRequirement(), requirement.getPreviousName(), requirement.getExternalName());
         if (requirementNameEither.isRight()) {
             final String errorMsg = String.format("Failed to build a substituted requirement name for the requirement "
                     + "with name %s on a component with uniqueId %s",
index 325a003..d9fc8de 100644 (file)
@@ -1409,14 +1409,14 @@ public class ToscaExportHandlerTest extends BeConfDependentTest {
         when(
             capabilityRequirementConverter
                 .buildSubstitutedName(anyMap(), eq(toOriginComponent), anyList(), eq(capabilityName), eq(
-                    capabilityPreviousName)))
+                    capabilityPreviousName), any()))
             .thenReturn(Either.left(builtCapabilityName));
 
         final String builtRequirementName = "builtRequirementName";
         when(
             capabilityRequirementConverter
                 .buildSubstitutedName(anyMap(), eq(fromOriginComponent), anyList(), eq(requirementName), eq(
-                    requirementPreviousName)))
+                    requirementPreviousName), any()))
             .thenReturn(Either.left(builtRequirementName));
 
         final Map<String, ToscaTemplateRequirement> actualRequirementMap =
@@ -1487,7 +1487,7 @@ public class ToscaExportHandlerTest extends BeConfDependentTest {
 
         when(
             capabilityRequirementConverter
-                .buildSubstitutedName(anyMap(), any(Component.class), anyList(), anyString(), anyString()))
+                .buildSubstitutedName(anyMap(), any(Component.class), anyList(), anyString(), anyString(), any()))
             .thenReturn(Either.right(false));
 
         final String expectedErrorMsg =
@@ -1520,12 +1520,12 @@ public class ToscaExportHandlerTest extends BeConfDependentTest {
 
         when(
             capabilityRequirementConverter
-                .buildSubstitutedName(anyMap(), eq(toOriginComponent), anyList(), eq("cap"), anyString()))
+                .buildSubstitutedName(anyMap(), eq(toOriginComponent), anyList(), eq("cap"), anyString(), any()))
             .thenReturn(Either.left("buildCapNameRes"));
 
         when(
             capabilityRequirementConverter
-                .buildSubstitutedName(anyMap(), eq(fromOriginComponent), anyList(), eq("req"), anyString()))
+                .buildSubstitutedName(anyMap(), eq(fromOriginComponent), anyList(), eq("req"), anyString(), any()))
             .thenReturn(Either.left("buildReqNameRes"));
 
         // default test
@@ -1557,8 +1557,10 @@ public class ToscaExportHandlerTest extends BeConfDependentTest {
         relationship.setRequirement("req");
 
         final String builtCapabilityOrRequirementName = "builtCapabilityOrRequirementName";
-        when(capabilityRequirementConverter.buildSubstitutedName(any(), any(), any(), any(), any()))
+        when(capabilityRequirementConverter.buildSubstitutedName(anyMap(), eq(fromOriginComponent), anyList(), eq("cap"), any(), any()))
             .thenReturn(Either.left(builtCapabilityOrRequirementName));
+        when(capabilityRequirementConverter.buildSubstitutedName(anyMap(), eq(toOriginComponent), anyList(), eq("req"), any(), any()))
+        .thenReturn(Either.left(builtCapabilityOrRequirementName));
 
         final Map<String, ToscaTemplateRequirement> requirementMap = Deencapsulation
             .invoke(testSubject, "buildRequirement", fromOriginComponent, toOriginComponent, capability, requirement,