Add a display name for the category 35/126735/3
authorstasys10 <stasys.jurgaitis@est.tech>
Mon, 29 Nov 2021 19:52:58 +0000 (19:52 +0000)
committerAndr� Schmid <andre.schmid@est.tech>
Thu, 27 Jan 2022 16:59:25 +0000 (16:59 +0000)
Issue-ID: SDC-3858
Change-Id: Ic818b3b4bc4f4e91c9da0cdacb40549a3f071c68
Signed-off-by: stasys10 <stasys.jurgaitis@est.tech>
catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CategoriesImportManager.java
catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CategoriesImportManagerTest.java
catalog-be/src/test/resources/types/categoryTypes.yml
catalog-dao/src/main/java/org/openecomp/sdc/be/dao/neo4j/GraphPropertiesDictionary.java
catalog-dao/src/main/java/org/openecomp/sdc/be/resources/data/category/CategoryData.java
catalog-ui/src/app/models/category.ts
catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts
catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html
common-be/src/main/java/org/openecomp/sdc/be/datatypes/category/CategoryDataDefinition.java
common-be/src/test/java/org/openecomp/sdc/be/datatypes/category/CategoryDataDefinitionTest.java

index 2b8b8df..39ff001 100644 (file)
@@ -228,6 +228,7 @@ public class CategoriesImportManager {
             Map<String, Object> category = (Map<String, Object>) entry.getValue();
             catName = (String) category.get("name");
             catDef.setName(catName);
+            catDef.setDisplayName((String) category.get("displayName"));
             icons = (List<String>) category.get("icons");
             catDef.setIcons(icons);
             String normalizedName = ValidationUtils.normalizeCategoryName4Uniqueness(catName);
index f7d0709..c3975b9 100644 (file)
@@ -20,6 +20,7 @@
 
 package org.openecomp.sdc.be.components.impl;
 
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.when;
@@ -32,15 +33,16 @@ import java.nio.file.Paths;
 import java.util.List;
 import java.util.Map;
 import java.util.Optional;
-import org.junit.Before;
-import org.junit.BeforeClass;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.mockito.InjectMocks;
 import org.mockito.Mockito;
 import org.mockito.MockitoAnnotations;
 import org.mockito.invocation.InvocationOnMock;
 import org.mockito.stubbing.Answer;
 import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.datatypes.category.MetadataKeyDataDefinition;
 import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
 import org.openecomp.sdc.be.impl.ComponentsUtils;
 import org.openecomp.sdc.be.model.category.CategoryDefinition;
@@ -48,14 +50,14 @@ import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
 import org.openecomp.sdc.be.model.operations.api.IElementOperation;
 import org.openecomp.sdc.exception.ResponseFormat;
 
-public class CategoriesImportManagerTest {
+class CategoriesImportManagerTest {
     @InjectMocks
     static CategoriesImportManager importManager = new CategoriesImportManager();
     public static final IElementOperation elementOperation = Mockito.mock(IElementOperation.class);
     public static final ComponentsUtils componentsUtils = Mockito.mock(ComponentsUtils.class);
     private static SubCategoryDefinition subcategory;
 
-    @BeforeClass
+    @BeforeAll
     public static void beforeClass() throws IOException {
         subcategory = new SubCategoryDefinition();
         subcategory.setUniqueId("123");
@@ -78,13 +80,13 @@ public class CategoriesImportManagerTest {
         // when(Mockito.any(SubCategoryDefinition.class).getUniqueId()).thenReturn("123");
     }
 
-    @Before
+    @BeforeEach
     public void initMocks() {
         MockitoAnnotations.openMocks(this);
     }
 
     @Test
-    public void importCategoriesTest() throws IOException {
+    void importCategoriesTest() throws IOException {
         String ymlContent = getYmlContent();
         Either<Map<String, List<CategoryDefinition>>, ResponseFormat> createCapabilityTypes = importManager.createCategories(ymlContent);
         
@@ -104,6 +106,40 @@ public class CategoriesImportManagerTest {
         assertFalse(categoryWithServiceSubstitutionFalse.get().isUseServiceSubstitutionForNestedServices());
     }
 
+    @Test
+    void categoriesNameAndDisplayNameTest() throws IOException {
+        final String categoryName = "Category With DisplayName And metadata";
+        final String expectedCategoryDisplayName = "Display Name For Category";
+        final String ymlContent = getYmlContent();
+        final Either<Map<String, List<CategoryDefinition>>, ResponseFormat> createCapabilityTypes = importManager.createCategories(ymlContent);
+        final Map<String, List<CategoryDefinition>> categories = createCapabilityTypes.left().value();
+
+        final Optional<CategoryDefinition> categoryWithNameAndDisplayName = categories.get("services").stream().filter(category -> category.getName().equals(categoryName)).findAny();
+        final String categoryDisplayName = categoryWithNameAndDisplayName.get().getDisplayName();
+
+        assertTrue(categoryWithNameAndDisplayName.isPresent());
+        assertEquals(expectedCategoryDisplayName, categoryDisplayName);
+    }
+
+    @Test
+    void getMetadataKeysTest() throws IOException {
+        final String categoryName = "Category With DisplayName And metadata";
+        final String expectedMetadataName = "ETSI Version";
+        final String expectedEtsiVersion = "2.5.1";
+        final String ymlContent = getYmlContent();
+        final Either<Map<String, List<CategoryDefinition>>, ResponseFormat> createCapabilityTypes = importManager.createCategories(ymlContent);
+        final Map<String, List<CategoryDefinition>> categories = createCapabilityTypes.left().value();
+
+        final Optional<CategoryDefinition> categoryWithMetadata = categories.get("services").stream().filter(category -> category.getName().equals(categoryName)).findAny();
+        final List<MetadataKeyDataDefinition> categoryMetadataList = categoryWithMetadata.get().getMetadataKeys();
+        final MetadataKeyDataDefinition categoryMetadata = categoryMetadataList.get(0);
+
+        assertEquals(expectedMetadataName, categoryMetadata.getName());
+        assertEquals(expectedEtsiVersion, categoryMetadata.getValidValues().get(0));
+        assertEquals(expectedEtsiVersion, categoryMetadata.getDefaultValue());
+        assertTrue(categoryMetadata.isMandatory());
+    }
+
     private String getYmlContent() throws IOException {
         Path filePath = Paths.get("src/test/resources/types/categoryTypes.yml");
         byte[] fileContent = Files.readAllBytes(filePath);
index 36268b1..293b160 100644 (file)
@@ -19,6 +19,16 @@ services:
       name: "Category With Service Substitution False"
       icons: ['network_l_4']
       useServiceSubstitutionForNestedServices: false
+    Category_With_DisplayName_And_metadata:
+      name: "Category With DisplayName And metadata"
+      displayName: "Display Name For Category"
+      icons: [ 'etsi_nfv_network_service' ]
+      metadataKeys:
+        etsiVersion:
+          name: "ETSI Version"
+          validValues: [ '2.5.1' ]
+          default: '2.5.1'
+          mandatory: true
 resources:
   NetworkLayer23:
     name: "Network Layer 2-3"
index 145bcbd..c689298 100644 (file)
@@ -33,6 +33,7 @@ public enum GraphPropertiesDictionary {
     HEALTH_CHECK               ("healthcheckis",                       String.class,                           true,           true),
     // Resource
     NAME                               ("name",                                        String.class,                           false,          true),
+    DISPLAY_NAME        ("displayName",            String.class,               false,       true),
     TOSCA_RESOURCE_NAME        ("toscaResourceName",           String.class,                           false,          true),
     CATEGORY_NAME              ("categoryName",                        String.class,                           false,          true),
     VERSION                            ("version",                                     String.class,                           false,          true),
index 665e5c7..cd585ab 100644 (file)
@@ -48,6 +48,7 @@ public class CategoryData extends GraphNode {
         this(NodeTypeEnum.getByName((String) properties.get(GraphPropertiesDictionary.LABEL.getProperty())));
         categoryDataDefinition.setUniqueId((String) properties.get(GraphPropertiesDictionary.UNIQUE_ID.getProperty()));
         categoryDataDefinition.setNormalizedName((String) properties.get(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty()));
+        categoryDataDefinition.setDisplayName((String) properties.get(GraphPropertiesDictionary.DISPLAY_NAME.getProperty()));
         categoryDataDefinition.setName((String) properties.get(GraphPropertiesDictionary.NAME.getProperty()));
         final Object useServiceSubstitutionForNestedServicesProperty = properties
             .get(GraphPropertiesDictionary.USE_SERVICE_SUBSTITUTION_FOR_NESTED_SERVICES.getProperty());
@@ -80,6 +81,7 @@ public class CategoryData extends GraphNode {
         Map<String, Object> map = new HashMap<>();
         addIfExists(map, GraphPropertiesDictionary.UNIQUE_ID, categoryDataDefinition.getUniqueId());
         addIfExists(map, GraphPropertiesDictionary.NAME, categoryDataDefinition.getName());
+        addIfExists(map, GraphPropertiesDictionary.DISPLAY_NAME, categoryDataDefinition.getDisplayName());
         addIfExists(map, GraphPropertiesDictionary.NORMALIZED_NAME, categoryDataDefinition.getNormalizedName());
         addIfExists(map, GraphPropertiesDictionary.MODEL, categoryDataDefinition.getModels());
         addIfExists(map, GraphPropertiesDictionary.ICONS, categoryDataDefinition.getIcons());
index 502020a..a6445ca 100644 (file)
@@ -25,6 +25,7 @@
 export interface ICategoryBase {
     //server properties
     name:string;
+    displayName:string;
     normalizedName:string;
     uniqueId:string;
     models:Array<string>;
index a707e56..043f4dd 100644 (file)
@@ -767,6 +767,10 @@ export class GeneralViewModel {
             }
         };
 
+        this.$scope.getCategoryDisplayNameOrName = (mainCategory: any): string => {
+            return mainCategory.displayName ? mainCategory.displayName : mainCategory.name ;
+        }
+
         this.$scope.onBaseTypeChange = (): void => {
             if (!this.$scope.component.derivedFromGenericType) {
                 this.$scope.component.derivedFromGenericVersion = undefined;
index bb0cceb..1fb8d5f 100644 (file)
                                     <option ng-if="component.isService()" data-ng-repeat="mainCategory in categories | orderBy:['name']"
                                             data-ng-selected="component.selectedCategory===mainCategory.name"
                                             value="{{mainCategory.name}}"
-                                            data-tests-id="{{mainCategory.name}}">{{mainCategory.name}}</option>
+                                            data-tests-id="{{mainCategory.name}}">{{getCategoryDisplayNameOrName(mainCategory)}}</option>
                                 </select>
 
                                 <div class="input-error" data-ng-show="validateField(editForm.category)">
index 2a9b2e8..7676881 100644 (file)
@@ -35,6 +35,7 @@ import org.openecomp.sdc.be.datatypes.tosca.ToscaDataDefinition;
 public class CategoryDataDefinition extends ToscaDataDefinition {
 
     private String name;
+    private String displayName;
     private String normalizedName;
     private List<String> models;
     private String uniqueId;
@@ -44,6 +45,7 @@ public class CategoryDataDefinition extends ToscaDataDefinition {
 
     public CategoryDataDefinition(CategoryDataDefinition c) {
         this.name = c.name;
+        this.displayName = c.displayName;
         this.normalizedName = c.normalizedName;
         this.models = c.models;
         this.uniqueId = c.uniqueId;
index 2cb0261..0060133 100644 (file)
 
 package org.openecomp.sdc.be.datatypes.category;
 
-import org.junit.Test;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import java.util.ArrayList;
+import java.util.List;
+import org.junit.jupiter.api.Test;
 
 
+class CategoryDataDefinitionTest {
 
-public class CategoryDataDefinitionTest {
-
-       private CategoryDataDefinition createTestSubject() {
-               return new CategoryDataDefinition();
-       }
-       
        @Test
-       public void testCopyConstructor() throws Exception {
-               CategoryDataDefinition testSubject;
+       void testCategoryDataDefinition() {
+               CategoryDataDefinition categoryDataDefinitionForTest = new CategoryDataDefinition();
+               categoryDataDefinitionForTest.setName("Category name");
+               categoryDataDefinitionForTest.setDisplayName("Category displayName");
+               categoryDataDefinitionForTest.setNormalizedName("Category normalizedName");
+               List modelsList = new ArrayList();
+               modelsList.add("Category models list item");
+               categoryDataDefinitionForTest.setModels(modelsList);
+               categoryDataDefinitionForTest.setUniqueId("Category uniqueId");
+               List iconList = new ArrayList();
+               iconList.add("Category icon list item");
+               categoryDataDefinitionForTest.setIcons(iconList);
+               categoryDataDefinitionForTest.setUseServiceSubstitutionForNestedServices(true);
+               List metadataKeysList = new ArrayList();
+               metadataKeysList.add("Category metadataKeys list item");
+               categoryDataDefinitionForTest.setMetadataKeys(metadataKeysList);
+
+               CategoryDataDefinition categoryDataDefinitionActual = new CategoryDataDefinition(categoryDataDefinitionForTest);
 
-               // default test
-               testSubject = createTestSubject();
-               CategoryDataDefinition categoryDataDefinition = new CategoryDataDefinition(testSubject);
+               assertEquals(categoryDataDefinitionForTest.getName(), categoryDataDefinitionActual.getName());
+               assertEquals(categoryDataDefinitionForTest.getDisplayName(), categoryDataDefinitionActual.getDisplayName());
+               assertEquals(categoryDataDefinitionForTest.getNormalizedName(), categoryDataDefinitionActual.getNormalizedName());
+               assertEquals(categoryDataDefinitionForTest.getModels(), categoryDataDefinitionActual.getModels());
+               assertEquals(categoryDataDefinitionForTest.getUniqueId(), categoryDataDefinitionActual.getUniqueId());
+               assertEquals(categoryDataDefinitionForTest.getIcons(), categoryDataDefinitionActual.getIcons());
+               assertEquals(categoryDataDefinitionForTest.isUseServiceSubstitutionForNestedServices(), categoryDataDefinitionActual.isUseServiceSubstitutionForNestedServices());
+               assertEquals(categoryDataDefinitionForTest.getMetadataKeys(), categoryDataDefinitionActual.getMetadataKeys());
        }
-       
 }