diff options
Diffstat (limited to 'catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ElementBLTest.java')
-rw-r--r-- | catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ElementBLTest.java | 277 |
1 files changed, 170 insertions, 107 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ElementBLTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ElementBLTest.java index 3d890b9b9f..f312914400 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ElementBLTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/components/impl/ElementBLTest.java @@ -21,29 +21,27 @@ package org.openecomp.sdc.be.components.impl; import fj.data.Either; -import org.apache.commons.lang3.tuple.ImmutablePair; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.ArgumentCaptor; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; import org.openecomp.sdc.be.components.validation.UserValidations; -import org.openecomp.sdc.be.dao.graph.datatype.GraphEdge; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao; +import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; +import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao; +import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; import org.openecomp.sdc.be.dao.jsongraph.types.JsonParseFlagEnum; -import org.openecomp.sdc.be.dao.neo4j.GraphEdgeLabels; +import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; import org.openecomp.sdc.be.dao.neo4j.GraphPropertiesDictionary; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; -import org.openecomp.sdc.be.datatypes.components.ComponentMetadataDataDefinition; -import org.openecomp.sdc.be.datatypes.components.ResourceMetadataDataDefinition; -import org.openecomp.sdc.be.datatypes.components.ServiceMetadataDataDefinition; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; +import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; +import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.Resource; @@ -55,10 +53,8 @@ import org.openecomp.sdc.be.model.category.SubCategoryDefinition; import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade; import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; import org.openecomp.sdc.be.model.operations.impl.ElementOperation; -import org.openecomp.sdc.be.model.operations.impl.UniqueIdBuilder; -import org.openecomp.sdc.be.resources.data.ResourceMetadataData; -import org.openecomp.sdc.be.resources.data.ServiceMetadataData; import org.openecomp.sdc.be.resources.data.category.CategoryData; +import org.openecomp.sdc.be.resources.data.category.SubCategoryData; import org.openecomp.sdc.be.ui.model.UiCategories; import org.openecomp.sdc.be.user.Role; import org.openecomp.sdc.be.user.UserBusinessLogic; @@ -66,6 +62,7 @@ import org.openecomp.sdc.common.util.ValidationUtils; import org.openecomp.sdc.exception.ResponseFormat; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -82,15 +79,27 @@ import static org.mockito.Mockito.when; @RunWith(MockitoJUnitRunner.class) public class ElementBLTest { - private static final String CATAGORY_NAME = "categoryName"; + private static final String CATEGORY_NAME = "categoryName"; private static final String CATEGORY_UNIQUE_ID = "catUniqueId"; - private static final String SERVICE_NOT_DELETED_ID = "notDeletedId"; - private static final String DELETED_SERVICE_ID = "deletedId"; + private static final String SUBCATEGORY_UNIQUE_ID = "subCatUniqeId"; + private static final String PROPER_COMPONENT_ID = "properComponentId"; + private static final String DELETED_COMPONENT_ID = "deletedId"; + private static final String ARCHIVED_COMPONENT_ID = "archivedId"; + private static final String NOT_HIGHEST_VERSION_ID = "notHighestVersionId"; + + private GraphVertex categoryVertex = new GraphVertex(VertexTypeEnum.RESOURCE_CATEGORY); + private List<GraphVertex> deletedAndNotDeletedResourceVertices = new ArrayList<>(); + private List<GraphVertex> archivedAndNotArchivedResourceVertices = new ArrayList<>(); + private List<GraphVertex> notHighestVersionAndHighestVersionResourceVertices = new ArrayList<>(); + private List<GraphVertex> deletedAndNotDeletedServiceVertices = new ArrayList<>(); + + private Resource properResource = new Resource(); + + private Service properService = new Service(); + private List<CategoryData> categories = new ArrayList<>(); - private List<ImmutablePair<ServiceMetadataData, GraphEdge>> services = new ArrayList<>(); - private List<ImmutablePair<ResourceMetadataData, GraphEdge>> resources = new ArrayList<>(); - private Service notDeletedService = new Service(); - private Resource notDeletedResource = new Resource(); + private List<SubCategoryData> subCategories = new ArrayList<>(); + @Mock private JanusGraphGenericDao janusGraphGenericDao; @@ -122,13 +131,12 @@ public class ElementBLTest { @InjectMocks private ElementBusinessLogic elementBusinessLogic; + @Before public void setup() { - - initCategoriesList(); - initServicesList(); - initResourceslist(); - + initCategoriesAndSubCategories(); + initResourcesVerticesLists(); + initServiceVerticesLists(); elementBusinessLogic.setUserValidations(userValidations); elementBusinessLogic.setComponentsUtils(componentsUtils); elementBusinessLogic.setJanusGraphGenericDao(janusGraphGenericDao); @@ -136,106 +144,142 @@ public class ElementBLTest { elementBusinessLogic.setToscaOperationFacade(toscaOperationFacade); when(janusGraphDao.commit()).thenReturn(JanusGraphOperationStatus.OK); + } - private void initCategoriesList() { + private void initCategoriesAndSubCategories() { CategoryData categoryData = new CategoryData(NodeTypeEnum.ServiceNewCategory); categoryData.getCategoryDataDefinition().setUniqueId(CATEGORY_UNIQUE_ID); categories.add(categoryData); + + SubCategoryData subCategoryData = new SubCategoryData(NodeTypeEnum.ResourceNewCategory); + subCategoryData.getSubCategoryDataDefinition().setUniqueId(SUBCATEGORY_UNIQUE_ID); + subCategories.add(subCategoryData); } - private void initServicesList() { - ServiceMetadataData serviceNotDeleted = new ServiceMetadataData(); - ComponentMetadataDataDefinition componentMetadataDataDefinition1 = new ServiceMetadataDataDefinition(); - componentMetadataDataDefinition1.setIsDeleted(false); - componentMetadataDataDefinition1.setHighestVersion(true); - componentMetadataDataDefinition1.setUniqueId(SERVICE_NOT_DELETED_ID); - serviceNotDeleted.setMetadataDataDefinition(componentMetadataDataDefinition1); - services.add(new ImmutablePair<>(serviceNotDeleted, null)); - - ServiceMetadataData deletedService = new ServiceMetadataData(); - ComponentMetadataDataDefinition componentMetadataDataDefinition2 = new ServiceMetadataDataDefinition(); - componentMetadataDataDefinition2.setIsDeleted(true); - componentMetadataDataDefinition2.setHighestVersion(true); - componentMetadataDataDefinition2.setUniqueId(DELETED_SERVICE_ID); - deletedService.setMetadataDataDefinition(componentMetadataDataDefinition2); - services.add(new ImmutablePair<>(deletedService, null)); + private void initServiceVerticesLists() { + Map<String, Object> properServiceMetadataJson = new HashMap<>(); + properServiceMetadataJson.put(JsonPresentationFields.IS_DELETED.getPresentation(), false); + properServiceMetadataJson.put(JsonPresentationFields.HIGHEST_VERSION.getPresentation(), true); + properServiceMetadataJson.put(JsonPresentationFields.IS_ARCHIVED.getPresentation(), false); + GraphVertex properService = new GraphVertex(VertexTypeEnum.TOPOLOGY_TEMPLATE); + properService.setType(ComponentTypeEnum.SERVICE); + properService.setMetadataJson(properServiceMetadataJson); + properService.setUniqueId(PROPER_COMPONENT_ID); + deletedAndNotDeletedServiceVertices.add(properService); + + Map<String, Object> deletedServiceMetadataJson = new HashMap<>(); + deletedServiceMetadataJson.put(JsonPresentationFields.IS_DELETED.getPresentation(), true); + deletedServiceMetadataJson.put(JsonPresentationFields.HIGHEST_VERSION.getPresentation(), true); + deletedServiceMetadataJson.put(JsonPresentationFields.IS_ARCHIVED.getPresentation(), false); + GraphVertex deletedService = new GraphVertex(VertexTypeEnum.TOPOLOGY_TEMPLATE); + deletedService.setType(ComponentTypeEnum.SERVICE); + deletedService.setMetadataJson(deletedServiceMetadataJson); + deletedService.setUniqueId(DELETED_COMPONENT_ID); + deletedAndNotDeletedServiceVertices.add(deletedService); } - private void initResourceslist() { - ResourceMetadataData notDeletedResource = new ResourceMetadataData(); - ComponentMetadataDataDefinition componentMetadataDataDefinition3 = new ResourceMetadataDataDefinition(); - componentMetadataDataDefinition3.setIsDeleted(false); - componentMetadataDataDefinition3.setHighestVersion(true); - componentMetadataDataDefinition3.setUniqueId(SERVICE_NOT_DELETED_ID); - notDeletedResource.setMetadataDataDefinition(componentMetadataDataDefinition3); - resources.add(new ImmutablePair<>(notDeletedResource, null)); - - ResourceMetadataData deletedResource = new ResourceMetadataData(); - ComponentMetadataDataDefinition componentMetadataDataDefinition4 = new ResourceMetadataDataDefinition(); - componentMetadataDataDefinition4.setIsDeleted(true); - componentMetadataDataDefinition4.setHighestVersion(true); - componentMetadataDataDefinition4.setUniqueId(DELETED_SERVICE_ID); - deletedResource.setMetadataDataDefinition(componentMetadataDataDefinition4); - resources.add(new ImmutablePair<>(deletedResource, null)); + private void initResourcesVerticesLists() { + Map<String, Object> properResourceMetadataJson = new HashMap<>(); + properResourceMetadataJson.put(JsonPresentationFields.IS_DELETED.getPresentation(), false); + properResourceMetadataJson.put(JsonPresentationFields.HIGHEST_VERSION.getPresentation(), true); + properResourceMetadataJson.put(JsonPresentationFields.IS_ARCHIVED.getPresentation(), false); + properResourceMetadataJson.put(JsonPresentationFields.RESOURCE_TYPE.getPresentation(), ResourceTypeEnum.VFC.getValue()); + GraphVertex properResource = new GraphVertex(VertexTypeEnum.NODE_TYPE); + properResource.setType(ComponentTypeEnum.RESOURCE); + properResource.setMetadataJson(properResourceMetadataJson); + properResource.setUniqueId(PROPER_COMPONENT_ID); + deletedAndNotDeletedResourceVertices.add(properResource); + archivedAndNotArchivedResourceVertices.add(properResource); + notHighestVersionAndHighestVersionResourceVertices.add(properResource); + + Map<String, Object> deletedResourceMetadataJson = new HashMap<>(); + deletedResourceMetadataJson.put(JsonPresentationFields.IS_DELETED.getPresentation(), true); + deletedResourceMetadataJson.put(JsonPresentationFields.HIGHEST_VERSION.getPresentation(), true); + deletedResourceMetadataJson.put(JsonPresentationFields.IS_ARCHIVED.getPresentation(), false); + deletedResourceMetadataJson.put(JsonPresentationFields.RESOURCE_TYPE.getPresentation(), ResourceTypeEnum.VFC.getValue()); + GraphVertex deletedResource = new GraphVertex(VertexTypeEnum.NODE_TYPE); + deletedResource.setType(ComponentTypeEnum.RESOURCE); + deletedResource.setMetadataJson(deletedResourceMetadataJson); + deletedResource.setUniqueId(DELETED_COMPONENT_ID); + deletedAndNotDeletedResourceVertices.add(deletedResource); + + Map<String, Object> archivedResourceMetadataJson = new HashMap<>(); + archivedResourceMetadataJson.put(JsonPresentationFields.IS_DELETED.getPresentation(), false); + archivedResourceMetadataJson.put(JsonPresentationFields.HIGHEST_VERSION.getPresentation(), true); + archivedResourceMetadataJson.put(JsonPresentationFields.IS_ARCHIVED.getPresentation(), true); + archivedResourceMetadataJson.put(JsonPresentationFields.RESOURCE_TYPE.getPresentation(), ResourceTypeEnum.VFC.getValue()); + GraphVertex archivedResource = new GraphVertex(VertexTypeEnum.NODE_TYPE); + archivedResource.setType(ComponentTypeEnum.RESOURCE); + archivedResource.setMetadataJson(archivedResourceMetadataJson); + archivedResource.setUniqueId(ARCHIVED_COMPONENT_ID); + archivedAndNotArchivedResourceVertices.add(archivedResource); + + Map<String, Object> notHighestVersionResourceMetadataJson = new HashMap<>(); + notHighestVersionResourceMetadataJson.put(JsonPresentationFields.IS_DELETED.getPresentation(), false); + notHighestVersionResourceMetadataJson.put(JsonPresentationFields.HIGHEST_VERSION.getPresentation(), false); + notHighestVersionResourceMetadataJson.put(JsonPresentationFields.IS_ARCHIVED.getPresentation(), false); + notHighestVersionResourceMetadataJson.put(JsonPresentationFields.RESOURCE_TYPE.getPresentation(), ResourceTypeEnum.VFC.getValue()); + GraphVertex notHighestVersionResource = new GraphVertex(VertexTypeEnum.NODE_TYPE); + notHighestVersionResource.setType(ComponentTypeEnum.RESOURCE); + notHighestVersionResource.setMetadataJson(notHighestVersionResourceMetadataJson); + notHighestVersionResource.setUniqueId(NOT_HIGHEST_VERSION_ID); + notHighestVersionAndHighestVersionResourceVertices.add(notHighestVersionResource); } @Test - public void testFetchElementsByCategoryName_filterDeleted() { - ArgumentCaptor<Map> criteriaCapture = ArgumentCaptor.forClass(Map.class); - - when(janusGraphGenericDao - .getByCriteria(eq(NodeTypeEnum.ServiceNewCategory), criteriaCapture.capture(), eq(CategoryData.class))) - .thenReturn(Either.left(categories)); - when(janusGraphGenericDao.getParentNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ServiceNewCategory), - CATEGORY_UNIQUE_ID, GraphEdgeLabels.CATEGORY, NodeTypeEnum.Service, ServiceMetadataData.class)) - .thenReturn(Either.left(services)); - when(toscaOperationFacade.getToscaElement(SERVICE_NOT_DELETED_ID, JsonParseFlagEnum.ParseMetadata)) - .thenReturn(Either.left(notDeletedService)); - - Either<List<Object>, StorageOperationStatus> elementsByCategoryEither = - elementBusinessLogic.fetchByCategoryOrSubCategoryName(CATAGORY_NAME, NodeTypeEnum.ServiceNewCategory, - NodeTypeEnum.Service, false, ServiceMetadataData.class, null); - - List<Object> elementsByCategory = elementsByCategoryEither.left().value(); - assertThat(elementsByCategory.get(0)).isSameAs(notDeletedService); - assertThat(elementsByCategory.size()).isEqualTo(1); - verifyCriteriaProperties(criteriaCapture); + public void testFetchByCategoryOrSubCategoryUid_deletedResource() { + when(janusGraphDao.getVertexById(CATEGORY_UNIQUE_ID, JsonParseFlagEnum.NoParse)).thenReturn(Either.left(categoryVertex)); + when(janusGraphDao.getParentVertices(categoryVertex, EdgeLabelEnum.CATEGORY, JsonParseFlagEnum.ParseMetadata)).thenReturn(Either.left(deletedAndNotDeletedResourceVertices)); + when(toscaOperationFacade.getToscaElement(PROPER_COMPONENT_ID, JsonParseFlagEnum.ParseMetadata)) + .thenReturn(Either.left(properResource)); + Either<List<Component>, StorageOperationStatus> resourcesBySubCategoryUidEither = elementBusinessLogic.fetchByCategoryOrSubCategoryUid(CATEGORY_UNIQUE_ID, NodeTypeEnum.Resource, false, null); + List<Component> resourcesBySubCategoryUid = resourcesBySubCategoryUidEither.left().value(); + assertThat(resourcesBySubCategoryUid.size()).isEqualTo(1); + assertThat(resourcesBySubCategoryUid.get(0)).isSameAs(properResource); } - private void verifyCriteriaProperties(ArgumentCaptor<Map> propsCapture) { - Map<String, Object> props = propsCapture.getValue(); - assertThat(props.size()).isEqualTo(1); - assertThat(props.get(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty())).isEqualTo(ValidationUtils.normalizeCategoryName4Uniqueness(CATAGORY_NAME)); + @Test + public void testFetchByCategoryOrSubCategoryUid_archivedResource() { + when(janusGraphDao.getVertexById(CATEGORY_UNIQUE_ID, JsonParseFlagEnum.NoParse)).thenReturn(Either.left(categoryVertex)); + when(janusGraphDao.getParentVertices(categoryVertex, EdgeLabelEnum.CATEGORY, JsonParseFlagEnum.ParseMetadata)).thenReturn(Either.left(archivedAndNotArchivedResourceVertices)); + when(toscaOperationFacade.getToscaElement(PROPER_COMPONENT_ID, JsonParseFlagEnum.ParseMetadata)) + .thenReturn(Either.left(properResource)); + Either<List<Component>, StorageOperationStatus> resourcesBySubCategoryUidEither = elementBusinessLogic.fetchByCategoryOrSubCategoryUid(CATEGORY_UNIQUE_ID, NodeTypeEnum.Resource, false, null); + List<Component> resourcesBySubCategoryUid = resourcesBySubCategoryUidEither.left().value(); + assertThat(resourcesBySubCategoryUid.size()).isEqualTo(1); + assertThat(resourcesBySubCategoryUid.get(0)).isSameAs(properResource); } @Test - public void testFetchResourcesBySubcategoryUid_filterDeleted() { - - when(janusGraphGenericDao.getParentNodes(UniqueIdBuilder.getKeyByNodeType(NodeTypeEnum.ResourceSubcategory), - CATEGORY_UNIQUE_ID, GraphEdgeLabels.CATEGORY, NodeTypeEnum.Resource, ResourceMetadataData.class)) - .thenReturn(Either.left(resources)); - - when(toscaOperationFacade.getToscaElement(SERVICE_NOT_DELETED_ID, JsonParseFlagEnum.ParseMetadata)) - .thenReturn(Either.left(notDeletedResource)); - - Either<List<Object>, StorageOperationStatus> resourcesBySubCategoryUidEither = elementBusinessLogic.fetchByCategoryOrSubCategoryUid(CATEGORY_UNIQUE_ID, NodeTypeEnum.ResourceSubcategory, - NodeTypeEnum.Resource, false, ResourceMetadataData.class, null); - List<Object> resourcesBySubCategoryUid = resourcesBySubCategoryUidEither.left().value(); + public void testFetchByCategoryOrSubCategoryUid_notHighestResource() { + when(janusGraphDao.getVertexById(CATEGORY_UNIQUE_ID, JsonParseFlagEnum.NoParse)).thenReturn(Either.left(categoryVertex)); + when(janusGraphDao.getParentVertices(categoryVertex, EdgeLabelEnum.CATEGORY, JsonParseFlagEnum.ParseMetadata)).thenReturn(Either.left(notHighestVersionAndHighestVersionResourceVertices)); + when(toscaOperationFacade.getToscaElement(PROPER_COMPONENT_ID, JsonParseFlagEnum.ParseMetadata)) + .thenReturn(Either.left(properResource)); + Either<List<Component>, StorageOperationStatus> resourcesBySubCategoryUidEither = elementBusinessLogic.fetchByCategoryOrSubCategoryUid(CATEGORY_UNIQUE_ID, NodeTypeEnum.Resource, false, null); + List<Component> resourcesBySubCategoryUid = resourcesBySubCategoryUidEither.left().value(); assertThat(resourcesBySubCategoryUid.size()).isEqualTo(1); - assertThat(resourcesBySubCategoryUid.get(0)).isSameAs(notDeletedResource); + assertThat(resourcesBySubCategoryUid.get(0)).isSameAs(properResource); } + @Test - public void testDeleteCategory() { - Either<CategoryDefinition, ResponseFormat> result; - User user = new User(); - String userId = "userId"; - user.setUserId(userId); - when(elementBusinessLogic.validateUserExists(anyString(), anyString(), eq(false))).thenReturn(user); - when(elementOperation.deleteCategory(NodeTypeEnum.ResourceNewCategory, CATEGORY_UNIQUE_ID)).thenReturn(Either.left(categoryDef)); - result = elementBusinessLogic.deleteCategory(CATEGORY_UNIQUE_ID, ComponentTypeEnum.RESOURCE_PARAM_NAME, userId); - Assert.assertTrue(result.isLeft()); + public void testFetchByCategoryOrSubCategoryName_resource() { + Map<String, Object> props = new HashMap<>(); + props.put(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty(), ValidationUtils.normalizeCategoryName4Uniqueness(CATEGORY_NAME)); + when(janusGraphGenericDao.getByCriteria(NodeTypeEnum.ResourceNewCategory, props, SubCategoryData.class)) + .thenReturn(Either.left(subCategories)); + when(janusGraphDao.getVertexById(SUBCATEGORY_UNIQUE_ID, JsonParseFlagEnum.NoParse)).thenReturn(Either.left(categoryVertex)); + when(janusGraphDao.getParentVertices(categoryVertex, EdgeLabelEnum.CATEGORY, JsonParseFlagEnum.ParseMetadata)).thenReturn(Either.left(deletedAndNotDeletedResourceVertices)); + when(toscaOperationFacade.getToscaElement(PROPER_COMPONENT_ID, JsonParseFlagEnum.ParseMetadata)) + .thenReturn(Either.left(properResource)); + Either<List<Component>, StorageOperationStatus> elementsByCategoryEither = + elementBusinessLogic.fetchByCategoryOrSubCategoryName(CATEGORY_NAME, NodeTypeEnum.ResourceNewCategory, + NodeTypeEnum.Resource, false, null); + List<Component> elementsByCategory = elementsByCategoryEither.left().value(); + assertThat(elementsByCategory.get(0)).isSameAs(properResource); + assertThat(elementsByCategory.size()).isEqualTo(1); } @Test @@ -244,7 +288,7 @@ public class ElementBLTest { User user = new User(); String userId = "userId"; user.setUserId(userId); - when(elementBusinessLogic.validateUserExists(anyString(), anyString(), eq(false))).thenReturn(user); + when(elementBusinessLogic.validateUserExists(anyString())).thenReturn(user); when(elementOperation.deleteSubCategory(NodeTypeEnum.ResourceSubcategory, CATEGORY_UNIQUE_ID)).thenReturn(Either.left(subCategoryDef)); result = elementBusinessLogic.deleteSubCategory(CATEGORY_UNIQUE_ID, ComponentTypeEnum.RESOURCE_PARAM_NAME, userId); Assert.assertTrue(result.isLeft()); @@ -269,7 +313,7 @@ public class ElementBLTest { String userId = "userId"; user.setUserId(userId); user.setRole(Role.ADMIN.name()); - when(userAdminManager.getUser(userId, false)).thenReturn(Either.left(user)); + when(userValidations.validateUserExists(eq(userId))).thenReturn(user); when(elementOperation.isCategoryUniqueForType(NodeTypeEnum.ResourceNewCategory, name)).thenReturn(Either.left(true)); when(elementOperation.createCategory(categoryDef, NodeTypeEnum.ResourceNewCategory)).thenReturn(Either.left(categoryDef)); result = elementBusinessLogic.createCategory(categoryDef, ComponentTypeEnum.RESOURCE_PARAM_NAME, userId); @@ -283,7 +327,6 @@ public class ElementBLTest { List<CategoryDefinition> categoryDefList = new ArrayList<>(); when(elementOperation.getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(categoryDefList)); when(elementOperation.getAllCategories(NodeTypeEnum.ServiceNewCategory, false)).thenReturn(Either.left(categoryDefList)); - when(elementOperation.getAllCategories(NodeTypeEnum.ProductCategory, false)).thenReturn(Either.left(categoryDefList)); result = elementBusinessLogic.getAllCategories(userId); Assert.assertTrue(result.isLeft()); } @@ -321,7 +364,7 @@ public class ElementBLTest { String userId = "userId"; user.setUserId(userId); user.setRole(Role.PRODUCT_STRATEGIST.name()); - when(elementBusinessLogic.validateUserExists(userId, "create Grouping", false)).thenReturn(user); + when(elementBusinessLogic.validateUserExists(userId)).thenReturn(user); when(elementOperation.getCategory(NodeTypeEnum.ProductCategory, grandParentCatId)).thenReturn(Either.left(categoryDef)); when(elementOperation.getSubCategory(NodeTypeEnum.ProductSubcategory, parentSubCatId)).thenReturn(Either.left(subCategoryDef)); when(elementOperation.isGroupingUniqueForSubCategory(NodeTypeEnum.ProductGrouping, name, parentSubCatId)).thenReturn(Either.left(true)); @@ -331,4 +374,24 @@ public class ElementBLTest { result = elementBusinessLogic.createGrouping(groupDef, componentTypeParamName, grandParentCatId, parentSubCatId, userId); Assert.assertTrue(result.isLeft()); } + + @Test + public void testFetchByCategoryOrSubCategoryName_service() { + Map<String, Object> props = new HashMap<>(); + props.put(GraphPropertiesDictionary.NORMALIZED_NAME.getProperty(), ValidationUtils.normalizeCategoryName4Uniqueness(CATEGORY_NAME)); + when(janusGraphGenericDao.getByCriteria(NodeTypeEnum.ServiceNewCategory, props, CategoryData.class)) + .thenReturn(Either.left(categories)); + when(janusGraphDao.getVertexById(CATEGORY_UNIQUE_ID, JsonParseFlagEnum.NoParse)).thenReturn(Either.left(categoryVertex)); + when(janusGraphDao.getParentVertices(categoryVertex, EdgeLabelEnum.CATEGORY, JsonParseFlagEnum.ParseMetadata)).thenReturn(Either.left(deletedAndNotDeletedServiceVertices)); + when(toscaOperationFacade.getToscaElement(PROPER_COMPONENT_ID, JsonParseFlagEnum.ParseMetadata)) + .thenReturn(Either.left(properService)); + Either<List<Component>, StorageOperationStatus> elementsByCategoryEither = + elementBusinessLogic.fetchByCategoryOrSubCategoryName(CATEGORY_NAME, NodeTypeEnum.ServiceNewCategory, + NodeTypeEnum.Service, false, null); + List<Component> elementsByCategory = elementsByCategoryEither.left().value(); + assertThat(elementsByCategory.get(0)).isSameAs(properService); + assertThat(elementsByCategory.size()).isEqualTo(1); + } + + } |