Catalog alignment
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / components / ComponentBusinessLogicTest.java
index 5f72b0a..125c5f6 100644 (file)
 package org.openecomp.sdc.be.components;
 
 import fj.data.Either;
-import org.junit.BeforeClass;
 import org.junit.Test;
 import org.junit.runner.RunWith;
-import org.mockito.InjectMocks;
-import org.mockito.Mock;
 import org.mockito.junit.MockitoJUnitRunner;
 import org.openecomp.sdc.be.DummyConfigurationManager;
-import org.openecomp.sdc.be.components.impl.ArtifactsBusinessLogic;
 import org.openecomp.sdc.be.components.impl.ComponentBusinessLogic;
 import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic;
 import org.openecomp.sdc.be.components.utils.ComponentBusinessLogicMock;
 import org.openecomp.sdc.be.components.utils.ResourceBuilder;
-import org.openecomp.sdc.be.config.ConfigurationManager;
 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
 import org.openecomp.sdc.be.model.ArtifactDefinition;
+import org.openecomp.sdc.be.model.Component;
 import org.openecomp.sdc.be.model.ComponentInstance;
 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.category.CategoryDefinition;
+import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
 import org.openecomp.sdc.be.ui.model.UiComponentDataTransfer;
+import org.openecomp.sdc.be.ui.model.UiLeftPaletteComponent;
 import org.openecomp.sdc.common.api.ArtifactGroupTypeEnum;
 import org.openecomp.sdc.exception.ResponseFormat;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.when;
+import static org.openecomp.sdc.be.components.impl.utils.TestGenerationUtils.getComponentsUtils;
+import static org.openecomp.sdc.common.util.GeneralUtility.getCategorizedComponents;
 
 @RunWith(MockitoJUnitRunner.class)
 public class ComponentBusinessLogicTest extends ComponentBusinessLogicMock {
@@ -61,7 +64,8 @@ public class ComponentBusinessLogicTest extends ComponentBusinessLogicMock {
 
     private ComponentBusinessLogic testInstance = new ComponentBusinessLogic(elementDao, groupOperation, groupInstanceOperation,
         groupTypeOperation, groupBusinessLogic, interfaceOperation, interfaceLifecycleTypeOperation, artifactsBusinessLogic,
-        artifactToscaOperation) {
+        artifactToscaOperation,componentContactIdValidator, componentNameValidator, componentTagsValidator, componentValidator,
+            componentIconValidator, componentProjectCodeValidator, componentDescriptionValidator) {
         @Override
         public Either<List<String>, ResponseFormat> deleteMarkedComponents() {
             return null;
@@ -83,10 +87,8 @@ public class ComponentBusinessLogicTest extends ComponentBusinessLogicMock {
         }
     };
 
-    @BeforeClass
-    public static void setUp() throws Exception {
-        new DummyConfigurationManager();
-    }
+
+    DummyConfigurationManager dummyConfigurationManager = new DummyConfigurationManager();;
 
     @SuppressWarnings("unchecked")
     @Test
@@ -98,7 +100,7 @@ public class ComponentBusinessLogicTest extends ComponentBusinessLogicMock {
         Map<String, Object> artifactsFromConfig = new HashMap<>();
         artifactsFromConfig.put(ARTIFACT_LABEL, buildArtifactMap("artifact:not normalized.yml"));
         artifactsFromConfig.put(ARTIFACT_LABEL2, buildArtifactMap("alreadyNormalized.csar"));
-        when(ConfigurationManager.getConfigurationManager().getConfiguration().getToscaArtifacts()).thenReturn(artifactsFromConfig);
+        when(dummyConfigurationManager.getConfigurationMock().getToscaArtifacts()).thenReturn(artifactsFromConfig);
         when(artifactsBusinessLogic.createArtifactPlaceHolderInfo(resource.getUniqueId(), ARTIFACT_LABEL, (Map<String, Object>) artifactsFromConfig.get(ARTIFACT_LABEL), USER, ArtifactGroupTypeEnum.TOSCA))
                 .thenReturn(buildArtifactDef(ARTIFACT_LABEL));
         when(artifactsBusinessLogic.createArtifactPlaceHolderInfo(resource.getUniqueId(), ARTIFACT_LABEL2, (Map<String, Object>) artifactsFromConfig.get(ARTIFACT_LABEL2), USER, ArtifactGroupTypeEnum.TOSCA))
@@ -124,4 +126,110 @@ public class ComponentBusinessLogicTest extends ComponentBusinessLogicMock {
         artifactDefinition.setArtifactLabel(artifactLabel);
         return artifactDefinition;
     }
+
+    @Test
+    public void categorizeOneResource(){
+        List<Component> componentList = new ArrayList<>();
+        String subCategoryName = "Load Balancer";
+        String categoryName = "Application L4+";
+        Component component = initComponent(ComponentTypeEnum.RESOURCE, subCategoryName, categoryName);
+        componentList.add(component);
+        Map<String,Map<String,List<UiLeftPaletteComponent>>> response = getCategorizedComponents(getComponentsUtils().convertComponentToUiLeftPaletteComponentObject(componentList));
+        assertThat(response.get(categoryName).get(subCategoryName).size()).isEqualTo(1);
+    }
+
+    @Test
+    public void categorizeResourcesSameCategoryDifferentSubcategory(){
+        List<Component> componentList = new ArrayList<>();
+        String categoryName = "Application L4+";
+        String subCategoryName = "Load Balancer";
+        Component component = initComponent(ComponentTypeEnum.RESOURCE, subCategoryName, categoryName);
+        componentList.add(component);
+        String subCategoryName2 = "Database";
+        Component component2 = initComponent(ComponentTypeEnum.RESOURCE, subCategoryName2, categoryName);
+        componentList.add(component2);
+        Map<String,Map<String,List<UiLeftPaletteComponent>>> response = getCategorizedComponents(getComponentsUtils().convertComponentToUiLeftPaletteComponentObject(componentList));
+        assertThat(response.get(categoryName).get(subCategoryName).size()).isEqualTo(1);
+        assertThat(response.get(categoryName).get(subCategoryName2).size()).isEqualTo(1);
+    }
+
+    @Test
+    public void categorizeResourceAndServiceSameCategoryDifferentSubcategory(){
+        List<Component> componentList = new ArrayList<>();
+        String categoryName = "Generic";
+        String subCategoryName = "Load Balancer";
+        Component component = initComponent(ComponentTypeEnum.RESOURCE, subCategoryName, categoryName);
+        componentList.add(component);
+        Component component2 = initComponent(ComponentTypeEnum.SERVICE, null, categoryName);
+        componentList.add(component2);
+        Map<String,Map<String,List<UiLeftPaletteComponent>>> response = getCategorizedComponents(getComponentsUtils().convertComponentToUiLeftPaletteComponentObject(componentList));
+        assertThat(response.get(categoryName).get(subCategoryName).size()).isEqualTo(1);
+        assertThat(response.get("Generic").get("Generic").size()).isEqualTo(1);
+    }
+
+    @Test
+    public void categorizeResourcesSameCategorySameSubcategory(){
+        List<Component> componentList = new ArrayList<>();
+        String categoryName = "Application L4+";
+        String subCategoryName = "Load Balancer";
+        Component component = initComponent(ComponentTypeEnum.RESOURCE, subCategoryName, categoryName);
+        componentList.add(component);
+        componentList.add(component);
+        Map<String,Map<String,List<UiLeftPaletteComponent>>> response = getCategorizedComponents(getComponentsUtils().convertComponentToUiLeftPaletteComponentObject(componentList));
+        assertThat(response.get(categoryName).get(subCategoryName).size()).isEqualTo(2);
+    }
+
+    @Test
+    public void categorizeTwoServices(){
+        List<Component> componentList = new ArrayList<>();
+        String categoryName = "Application L4+";
+        String categoryName2 = "IP Mux Demux";
+        Component component = initComponent(ComponentTypeEnum.SERVICE, null, categoryName);
+        componentList.add(component);
+        Component component2 = initComponent(ComponentTypeEnum.SERVICE, null, categoryName2);
+        componentList.add(component2);
+        Map<String,Map<String,List<UiLeftPaletteComponent>>> response = getCategorizedComponents(getComponentsUtils().convertComponentToUiLeftPaletteComponentObject(componentList));
+        assertThat(response.get("Generic").get("Generic").size()).isEqualTo(2);
+    }
+
+    @Test
+    public void categorizeTwoResourcesDiffCategory(){
+        List<Component> componentList = new ArrayList<>();
+        String categoryName = "Application L4+";
+        String categoryName2 = "IP Mux Demux";
+        String subCategoryName = "Load Balancer";
+        Component component = initComponent(ComponentTypeEnum.RESOURCE, subCategoryName, categoryName);
+        componentList.add(component);
+        Component component2 = initComponent(ComponentTypeEnum.RESOURCE, subCategoryName, categoryName2);
+        componentList.add(component2);
+        Map<String,Map<String,List<UiLeftPaletteComponent>>> response = getCategorizedComponents(getComponentsUtils().convertComponentToUiLeftPaletteComponentObject(componentList));
+        assertThat(response.get(categoryName).get(subCategoryName).size()).isEqualTo(1);
+        assertThat(response.get(categoryName2).get(subCategoryName).size()).isEqualTo(1);
+    }
+
+    private Component initComponent(ComponentTypeEnum componentTypeEnum, String subCategoryName, String categoryName) {
+        Component component = null;
+        if(componentTypeEnum == ComponentTypeEnum.RESOURCE){
+            component = new Resource();
+        }
+        if(componentTypeEnum == ComponentTypeEnum.SERVICE){
+            component = new Service();
+        }
+        component.setComponentType(componentTypeEnum);
+        CategoryDefinition categoryDefinition = new CategoryDefinition();
+        SubCategoryDefinition subCategoryDefinition = new SubCategoryDefinition();
+        subCategoryDefinition.setName(subCategoryName);
+        List<SubCategoryDefinition> subCategoryDefinitionList = new ArrayList<>();
+        subCategoryDefinitionList.add(subCategoryDefinition);
+        categoryDefinition.setSubcategories(subCategoryDefinitionList);
+        categoryDefinition.setName(categoryName);
+        List<CategoryDefinition> categoryDefinitionList = new ArrayList<>();
+        categoryDefinitionList.add(categoryDefinition);
+        component.setCategories(categoryDefinitionList);
+        List<String> tags = new ArrayList<>();
+        tags.add("tag1");
+        tags.add("tag2");
+        component.setTags(tags);
+        return component;
+    }
 }