From 9bd18657d2048d3396d15a394b4493b283c47e4d Mon Sep 17 00:00:00 2001 From: stasys10 Date: Mon, 29 Nov 2021 19:52:58 +0000 Subject: [PATCH] Add a display name for the category Issue-ID: SDC-3858 Change-Id: Ic818b3b4bc4f4e91c9da0cdacb40549a3f071c68 Signed-off-by: stasys10 --- .../components/impl/CategoriesImportManager.java | 1 + .../impl/CategoriesImportManagerTest.java | 50 +++++++++++++++++++--- .../src/test/resources/types/categoryTypes.yml | 10 +++++ .../be/dao/neo4j/GraphPropertiesDictionary.java | 1 + .../be/resources/data/category/CategoryData.java | 2 + catalog-ui/src/app/models/category.ts | 1 + .../workspace/tabs/general/general-view-model.ts | 4 ++ .../workspace/tabs/general/general-view.html | 2 +- .../datatypes/category/CategoryDataDefinition.java | 2 + .../category/CategoryDataDefinitionTest.java | 44 +++++++++++++------ 10 files changed, 96 insertions(+), 21 deletions(-) diff --git a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CategoriesImportManager.java b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CategoriesImportManager.java index 2b8b8df7ec..39ff0017ab 100644 --- a/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CategoriesImportManager.java +++ b/catalog-be/src/main/java/org/openecomp/sdc/be/components/impl/CategoriesImportManager.java @@ -228,6 +228,7 @@ public class CategoriesImportManager { Map category = (Map) entry.getValue(); catName = (String) category.get("name"); catDef.setName(catName); + catDef.setDisplayName((String) category.get("displayName")); icons = (List) category.get("icons"); catDef.setIcons(icons); String normalizedName = ValidationUtils.normalizeCategoryName4Uniqueness(catName); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CategoriesImportManagerTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CategoriesImportManagerTest.java index f7d0709307..c3975b9f89 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CategoriesImportManagerTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/CategoriesImportManagerTest.java @@ -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>, 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>, ResponseFormat> createCapabilityTypes = importManager.createCategories(ymlContent); + final Map> categories = createCapabilityTypes.left().value(); + + final Optional 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>, ResponseFormat> createCapabilityTypes = importManager.createCategories(ymlContent); + final Map> categories = createCapabilityTypes.left().value(); + + final Optional categoryWithMetadata = categories.get("services").stream().filter(category -> category.getName().equals(categoryName)).findAny(); + final List 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); diff --git a/catalog-be/src/test/resources/types/categoryTypes.yml b/catalog-be/src/test/resources/types/categoryTypes.yml index 36268b1fff..293b16062e 100644 --- a/catalog-be/src/test/resources/types/categoryTypes.yml +++ b/catalog-be/src/test/resources/types/categoryTypes.yml @@ -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" diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/neo4j/GraphPropertiesDictionary.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/neo4j/GraphPropertiesDictionary.java index 145bcbdbc0..c689298fc1 100644 --- a/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/neo4j/GraphPropertiesDictionary.java +++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/dao/neo4j/GraphPropertiesDictionary.java @@ -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), diff --git a/catalog-dao/src/main/java/org/openecomp/sdc/be/resources/data/category/CategoryData.java b/catalog-dao/src/main/java/org/openecomp/sdc/be/resources/data/category/CategoryData.java index 665e5c737d..cd585ab4c4 100644 --- a/catalog-dao/src/main/java/org/openecomp/sdc/be/resources/data/category/CategoryData.java +++ b/catalog-dao/src/main/java/org/openecomp/sdc/be/resources/data/category/CategoryData.java @@ -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 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()); diff --git a/catalog-ui/src/app/models/category.ts b/catalog-ui/src/app/models/category.ts index 502020a57b..a6445cafdd 100644 --- a/catalog-ui/src/app/models/category.ts +++ b/catalog-ui/src/app/models/category.ts @@ -25,6 +25,7 @@ export interface ICategoryBase { //server properties name:string; + displayName:string; normalizedName:string; uniqueId:string; models:Array; diff --git a/catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts b/catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts index a707e563af..043f4dd859 100644 --- a/catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts +++ b/catalog-ui/src/app/view-models/workspace/tabs/general/general-view-model.ts @@ -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; diff --git a/catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html b/catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html index bb0cceb173..1fb8d5f10f 100644 --- a/catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html +++ b/catalog-ui/src/app/view-models/workspace/tabs/general/general-view.html @@ -119,7 +119,7 @@ + data-tests-id="{{mainCategory.name}}">{{getCategoryDisplayNameOrName(mainCategory)}}
diff --git a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/category/CategoryDataDefinition.java b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/category/CategoryDataDefinition.java index 2a9b2e88a2..76768811f0 100644 --- a/common-be/src/main/java/org/openecomp/sdc/be/datatypes/category/CategoryDataDefinition.java +++ b/common-be/src/main/java/org/openecomp/sdc/be/datatypes/category/CategoryDataDefinition.java @@ -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 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; diff --git a/common-be/src/test/java/org/openecomp/sdc/be/datatypes/category/CategoryDataDefinitionTest.java b/common-be/src/test/java/org/openecomp/sdc/be/datatypes/category/CategoryDataDefinitionTest.java index 2cb0261a67..0060133ac4 100644 --- a/common-be/src/test/java/org/openecomp/sdc/be/datatypes/category/CategoryDataDefinitionTest.java +++ b/common-be/src/test/java/org/openecomp/sdc/be/datatypes/category/CategoryDataDefinitionTest.java @@ -20,23 +20,41 @@ 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()); } - } -- 2.16.6