diff options
Diffstat (limited to 'asdctool/src/test')
4 files changed, 0 insertions, 1189 deletions
diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/utils/ValidationTaskResultTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/utils/ValidationTaskResultTest.java deleted file mode 100644 index afbda6e098..0000000000 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/impl/validator/utils/ValidationTaskResultTest.java +++ /dev/null @@ -1,98 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.asdctool.impl.validator.utils; - -import org.junit.Test; -import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; - - -public class ValidationTaskResultTest { - - private ValidationTaskResult createTestSubject() { - return new ValidationTaskResult(new GraphVertex(), "", "", false); - } - - - @Test - public void testGetName() { - ValidationTaskResult testSubject; - String result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getName(); - } - - - @Test - public void testSetName() { - ValidationTaskResult testSubject; - String name = ""; - - // default test - testSubject = createTestSubject(); - testSubject.setName(name); - } - - - @Test - public void testGetResultMessage() { - ValidationTaskResult testSubject; - String result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getResultMessage(); - } - - - @Test - public void testSetResultMessage() { - ValidationTaskResult testSubject; - String resultMessage = ""; - - // default test - testSubject = createTestSubject(); - testSubject.setResultMessage(resultMessage); - } - - - @Test - public void testIsSuccessful() { - ValidationTaskResult testSubject; - boolean result; - - // default test - testSubject = createTestSubject(); - result = testSubject.isSuccessful(); - } - - - @Test - public void testSetSuccessful() { - ValidationTaskResult testSubject; - boolean successful = false; - - // default test - testSubject = createTestSubject(); - testSubject.setSuccessful(successful); - } -} diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1710/UpgradeMigration1710Test.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1710/UpgradeMigration1710Test.java deleted file mode 100644 index 8763a1bf68..0000000000 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1710/UpgradeMigration1710Test.java +++ /dev/null @@ -1,648 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - * Modifications copyright (c) 2019 Nokia - * ================================================================================ - */ -package org.openecomp.sdc.asdctool.migration.tasks.mig1710; - -import com.google.common.collect.Lists; -import fj.data.Either; -import org.junit.AfterClass; -import org.junit.Before; -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.asdctool.migration.core.task.MigrationResult; -import org.openecomp.sdc.asdctool.migration.tasks.handlers.XlsOutputHandler; -import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic; -import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic; -import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException; -import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic; -import org.openecomp.sdc.be.components.scheduledtasks.ComponentsCleanBusinessLogic; -import org.openecomp.sdc.be.config.Configuration; -import org.openecomp.sdc.be.config.ConfigurationManager; -import org.openecomp.sdc.be.dao.api.ActionStatus; -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.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.datatypes.enums.JsonPresentationFields; -import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; -import org.openecomp.sdc.be.datatypes.enums.OriginTypeEnum; -import org.openecomp.sdc.be.impl.ComponentsUtils; -import org.openecomp.sdc.be.model.Component; -import org.openecomp.sdc.be.model.ComponentInstance; -import org.openecomp.sdc.be.model.ComponentParametersView; -import org.openecomp.sdc.be.model.LifecycleStateEnum; -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.jsonjanusgraph.operations.ToscaOperationFacade; -import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; -import org.openecomp.sdc.be.model.operations.impl.CsarOperation; -import org.openecomp.sdc.be.model.operations.impl.UserAdminOperation; -import org.openecomp.sdc.common.api.ConfigurationSource; -import org.openecomp.sdc.common.http.client.api.HttpRequestHandler; -import org.openecomp.sdc.exception.ResponseFormat; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; -import java.util.stream.Stream; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -@RunWith(MockitoJUnitRunner.class) -public class UpgradeMigration1710Test { - - private static final String USER = "jh0003"; - private static final String CONF_LEVEL = "5.0"; - private static final String COMPONENT_UNIQUE_ID = "12345"; - private static final String OLD_VERSION = "1.0"; - private static final String UPDATED_VERSION = "2.0"; - private static final String CSAR_UUID = "1234578"; - private static HttpRequestHandler originHandler; - - private final User user = new User(); - - @InjectMocks - private UpgradeMigration1710 migration = new UpgradeMigration1710(); - @Mock - private UserAdminOperation userAdminOperation; - @Mock - private ToscaOperationFacade toscaOperationFacade; - @Mock - private LifecycleBusinessLogic lifecycleBusinessLogic; - @Mock - private JanusGraphDao janusGraphDao; - @Mock - private ComponentsUtils componentUtils; - @Mock - private CsarOperation csarOperation; - @Mock - private ConfigurationSource configurationSource; - //don't remove - it is intended to avoid the xls file generating - @Mock - private XlsOutputHandler outputHandler; - @Mock - private ResourceBusinessLogic resourceBusinessLogic; - @Mock - private ServiceBusinessLogic serviceBusinessLogic; - @Mock - private ResponseFormat responseFormat; - @Mock - private ComponentsCleanBusinessLogic componentsCleanBusinessLogic; - - private static ConfigurationManager configurationManager; - private static List<String> resources = Stream.of("org.openecomp.resource.cp.extCP").collect(Collectors.toList()); - private static Map<String, List<String>> resourcesForUpgrade; - private static Configuration.EnvironmentContext environmentContext = new Configuration.EnvironmentContext(); - - private Resource resource; - private Service service; - private List<String> vfList = new ArrayList<>(); - - @BeforeClass - public static void setUpClass() { - resourcesForUpgrade = new HashMap<>(); - resourcesForUpgrade.put(CONF_LEVEL, resources); - originHandler = HttpRequestHandler.get(); - } - - @AfterClass - public static void tearDownClass() { - //put the origin handler back - HttpRequestHandler.setTestInstance(originHandler); - } - - @Before - public void setUp() { - user.setUserId(USER); - configurationManager = new ConfigurationManager(configurationSource); - configurationManager.setConfiguration(new Configuration()); - configurationManager.getConfiguration().setSkipUpgradeVSPs(true); - configurationManager.getConfiguration().setSkipUpgradeFailedVfs(true); - configurationManager.getConfiguration().setAutoHealingOwner(USER); - configurationManager.getConfiguration().setSupportAllottedResourcesAndProxy(true); - configurationManager.getConfiguration().setDeleteLockTimeoutInSeconds(10); - configurationManager.getConfiguration().setMaxDeleteComponents(5); - configurationManager.getConfiguration().setEnableAutoHealing(true); - configurationManager.getConfiguration().setToscaConformanceLevel("5.0"); - environmentContext.setDefaultValue("General_Revenue-Bearing"); - configurationManager.getConfiguration().setEnvironmentContext(environmentContext); - HashMap<String, List<String>> resourcesForUpgrade = new HashMap(); - resourcesForUpgrade.put("5.0", Lists.newArrayList("port")); - configurationManager.getConfiguration().setResourcesForUpgrade(resourcesForUpgrade); - - migration.init(); - migration.setNodeTypesSupportOnly(false); - when(componentsCleanBusinessLogic.lockDeleteOperation()).thenReturn(StorageOperationStatus.OK); - - resource = new Resource(); - resource.setCsarUUID(CSAR_UUID); - resource.setVersion(OLD_VERSION); - resource.setUniqueId(COMPONENT_UNIQUE_ID); - - service = new Service(); - service.setVersion(OLD_VERSION); - service.setUniqueId(COMPONENT_UNIQUE_ID); - - vfList.add(COMPONENT_UNIQUE_ID); - - when(responseFormat.getFormattedMessage()) - .thenReturn(""); - when(componentUtils.convertFromStorageResponse(any(), any())).thenCallRealMethod(); - mockChangeComponentState(); - } - - @Test - public void nodeTypesUpgradeFailed() { - migration.setNodeTypesSupportOnly(true); - resolveUserAndDefineUpgradeLevel(); - when(janusGraphDao.getByCriteria(any(), any(), any(), any())) - .thenReturn(Either.right(JanusGraphOperationStatus.NOT_FOUND)); - assertEquals(MigrationResult.MigrationStatus.FAILED, migration.migrate().getMigrationStatus()); - } - - @Test - public void migrationDisabled() { - configurationManager.getConfiguration().setEnableAutoHealing(false); - migration.init(); - assertEquals(MigrationResult.MigrationStatus.COMPLETED, migration.migrate().getMigrationStatus()); - verify(janusGraphDao, times(0)).commit(); - verify(janusGraphDao, times(0)).rollback(); - } - - @Test - public void migrationFailedIfDeleteNodeLockFailed() { - when(componentsCleanBusinessLogic.lockDeleteOperation()) - .thenReturn(StorageOperationStatus.BAD_REQUEST); - assertEquals(MigrationResult.MigrationStatus.FAILED, migration.migrate().getMigrationStatus()); - } - - @Test - public void migrationFailedIfDeleteNodeLockRetryFailed() { - when(componentsCleanBusinessLogic.lockDeleteOperation()) - .thenReturn(StorageOperationStatus.FAILED_TO_LOCK_ELEMENT) - .thenReturn(StorageOperationStatus.BAD_REQUEST); - assertEquals(MigrationResult.MigrationStatus.FAILED, migration.migrate().getMigrationStatus()); - } - - @Test - public void nodeTypesOnlyUpgradePassed() { - migration.setNodeTypesSupportOnly(true); - upgradeAllScenario(false); - assertEquals(MigrationResult.MigrationStatus.COMPLETED, migration.migrate().getMigrationStatus()); - verify(janusGraphDao, times(2)).commit(); - verify(janusGraphDao, times(0)).rollback(); - } - - @Test - public void nodeTypesUpgradePassedAndVFsUpgradeFailedWhenSkipFailedVFsIsNotSupported() { - final boolean failOnVfUpgrade = true; - final boolean upgradeServices = false; - final boolean exceptionOnVfUpgrade = false; - final boolean upgradeVFC = false; - final boolean isFailed = true; - configurationManager.getConfiguration().setSkipUpgradeFailedVfs(false); - migration.init(); - migration.setNodeTypesSupportOnly(false); - resolveUserAndDefineUpgradeLevel(); - upgradeRules(failOnVfUpgrade, exceptionOnVfUpgrade, upgradeServices, upgradeVFC, isFailed); - assertEquals(MigrationResult.MigrationStatus.FAILED, migration.migrate().getMigrationStatus()); - verify(janusGraphDao, times(1)).commit(); - verify(janusGraphDao, times(2)).rollback(); - } - - - @Test - public void upgradeAllVFsUpgradeFailedOnExceptionWhenSkipFailedVFsIsNotSupported() { - final boolean failOnVfUpgrade = false; - final boolean upgradeServices = false; - final boolean exceptionOnVfUpgrade = true; - final boolean upgradeVFC = false; - final boolean isFailed = true; - configurationManager.getConfiguration().setSkipUpgradeFailedVfs(false); - resolveUserAndDefineUpgradeLevel(); - upgradeRules(failOnVfUpgrade, exceptionOnVfUpgrade, upgradeServices, upgradeVFC, isFailed); - migration.init(); - assertEquals(MigrationResult.MigrationStatus.COMPLETED, migration.migrate().getMigrationStatus()); - verify(janusGraphDao, times(2)).commit(); - verify(janusGraphDao, times(0)).rollback(); - } - - @Test - public void upgradeAllIfVFsUpgradeFailedOnExceptionWhenSkipFailedVFsIsSupported() { - final boolean failOnVfUpgrade = false; - final boolean upgradeServices = true; - final boolean exceptionOnFvUpgrade = true; - final boolean upgradeVFC = false; - final boolean isFailed = false; - configurationManager.getConfiguration().setSkipUpgradeFailedVfs(true); - resolveUserAndDefineUpgradeLevel(); - upgradeRules(failOnVfUpgrade, exceptionOnFvUpgrade, upgradeServices, upgradeVFC, isFailed); - assertEquals(MigrationResult.MigrationStatus.COMPLETED, migration.migrate().getMigrationStatus()); - verify(janusGraphDao, times(3)).commit(); - verify(janusGraphDao, times(1)).rollback(); - } - - - @Test - public void upgradeAll() { - upgradeAllScenario(true); - assertEquals(MigrationResult.MigrationStatus.COMPLETED, migration.migrate().getMigrationStatus()); - verify(janusGraphDao, times(4)).commit(); - verify(janusGraphDao, times(0)).rollback(); - } - - @Test - public void upgradeAllWhenDeleteLockRetrySucceeded() { - when(componentsCleanBusinessLogic.lockDeleteOperation()) - .thenReturn(StorageOperationStatus.FAILED_TO_LOCK_ELEMENT) - .thenReturn(StorageOperationStatus.OK); - upgradeAllScenario(true); - assertEquals(MigrationResult.MigrationStatus.COMPLETED, migration.migrate().getMigrationStatus()); - verify(janusGraphDao, times(4)).commit(); - verify(janusGraphDao, times(0)).rollback(); - } - - @Test - public void upgradeAllWhenVspUpgradeIsRequired() { - final boolean failOnVfUpgrade = false; - final boolean upgradeServices = true; - final boolean exceptionOnFvUpgrade = false; - final boolean upgradeVFC = true; - final boolean isFailed = true; - resolveUserAndDefineUpgradeLevel(); - upgradeRules(failOnVfUpgrade, exceptionOnFvUpgrade, upgradeServices, upgradeVFC, isFailed); - configurationManager.getConfiguration().setSkipUpgradeVSPs(false); - assertEquals(MigrationResult.MigrationStatus.COMPLETED, migration.migrate().getMigrationStatus()); - } - - @Test - public void migrationFailedWhenUserNotResolved() { - when(userAdminOperation.getUserData(anyString(), eq(false))).thenReturn(Either.right(ActionStatus.MISSING_INFORMATION)); - when(janusGraphDao.rollback()).thenReturn(JanusGraphOperationStatus.OK); - assertEquals(MigrationResult.MigrationStatus.FAILED, migration.migrate().getMigrationStatus()); - } - - @Test - public void verifyThatCheckedOutResourcesMarkedAsDeletedIfUpgradeFailed() { - mockCheckoutFlow(); - when(resourceBusinessLogic.validateAndUpdateResourceFromCsar(any(Resource.class), any(), any(), any(), - any())) - .thenThrow(new ByResponseFormatComponentException(responseFormat)); - when(resourceBusinessLogic.deleteResource(anyString(), any())) - .thenReturn(responseFormat); - mockChangeComponentState(); - migration.upgradeVFs(vfList, false); - verify(resourceBusinessLogic).deleteResource(anyString(), any()); - } - - @Test - public void verifyThatCheckedOutAllottedResourcesMarkedAsDeletedIfUpgradeFailed() { - mockCheckoutFlow(); - when(resourceBusinessLogic.validateAndUpdateResourceFromCsar(any(Resource.class), any(), any(), any(), - any())) - .thenThrow(new ByResponseFormatComponentException(responseFormat)); - when(resourceBusinessLogic.deleteResource(anyString(), any())) - .thenReturn(responseFormat); - mockChangeComponentState(); - migration.upgradeVFs(vfList, true); - verify(resourceBusinessLogic).deleteResource(anyString(), any()); - } - - @Test - public void verifyThatCheckedOutResourceIsNotMarkedAsDeletedIfUpgradeSucceeded() { - mockCheckoutFlow(); - resource.setVersion(UPDATED_VERSION); - when(resourceBusinessLogic.validateAndUpdateResourceFromCsar(any(Resource.class), any(), any(), any(), - any())) - .thenReturn(resource); - mockChangeComponentState(); - migration.upgradeVFs(vfList, true); - verify(resourceBusinessLogic, times(0)).deleteResource(anyString(), any()); - } - - @Test - public void verifyThatCheckedOutServicesMarkedAsDeletedIfUpgradeFailed() { - List<String> servicesForUpgrade = new ArrayList<>(); - servicesForUpgrade.add(COMPONENT_UNIQUE_ID); - - Either<Resource, StorageOperationStatus> foundServices = Either.left(resource); - mockCheckoutFlow(); - when(toscaOperationFacade.getToscaElement(any(), any(ComponentParametersView.class))) - .thenReturn(Either.left(service)); - when(toscaOperationFacade.getLatestCertifiedByToscaResourceName(any(), any(), any())) - .thenReturn(foundServices); - migration.upgradeServices(servicesForUpgrade, component -> true, "services"); - verify(serviceBusinessLogic, times(0)).deleteService(anyString(), any()); - } - - @Test - public void verifyThatCheckedOutServicesIsNotMarkedAsDeletedIfUpgradeSucceeded() { - List<String> servicesForUpgrade = new ArrayList<>(); - servicesForUpgrade.add(COMPONENT_UNIQUE_ID); - - mockCheckoutFlow(); - when(toscaOperationFacade.getLatestCertifiedByToscaResourceName(anyString(), any(VertexTypeEnum.class), any(JsonParseFlagEnum.class))) - .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); - when(serviceBusinessLogic.deleteService(anyString(), any())) - .thenReturn(responseFormat); - migration.upgradeServices(servicesForUpgrade, component -> true, "services"); - verify(serviceBusinessLogic).deleteService(anyString(), any()); - } - - - @Test - public void unlockDeleteOperationIsPerformedIfItWasLocked() { - migration.isLockDeleteOperationSucceeded(); - migration.unlockDeleteOperation(); - verify(componentsCleanBusinessLogic).unlockDeleteOperation(); - } - - @Test - public void unlockDeleteOperationIsNotPerformedIfItWasNotLocked() { - when(componentsCleanBusinessLogic.lockDeleteOperation()).thenReturn(StorageOperationStatus.GENERAL_ERROR); - migration.isLockDeleteOperationSucceeded(); - migration.unlockDeleteOperation(); - verify(componentsCleanBusinessLogic, times(0)).unlockDeleteOperation(); - } - - @Test - public void deleteLockSucceededAfterRetry() { - when(componentsCleanBusinessLogic.lockDeleteOperation()) - .thenReturn(StorageOperationStatus.FAILED_TO_LOCK_ELEMENT) - .thenReturn(StorageOperationStatus.FAILED_TO_LOCK_ELEMENT) - .thenReturn(StorageOperationStatus.FAILED_TO_LOCK_ELEMENT) - .thenReturn(StorageOperationStatus.OK); - migration.isLockDeleteOperationSucceeded(); - migration.unlockDeleteOperation(); - verify(componentsCleanBusinessLogic).unlockDeleteOperation(); - } - - @Test - public void deleteLockFailedAfterRetry() { - when(componentsCleanBusinessLogic.lockDeleteOperation()) - .thenReturn(StorageOperationStatus.FAILED_TO_LOCK_ELEMENT); - migration.isLockDeleteOperationSucceeded(); - migration.unlockDeleteOperation(); - verify(componentsCleanBusinessLogic, times(0)).unlockDeleteOperation(); - } - - @Test - public void deleteMarkedResourcesWhenLimitIsReached() { - ArrayList<NodeTypeEnum> componentsToClean = new ArrayList<>(); - componentsToClean.add(NodeTypeEnum.Resource); - migration.setUser(user); - migration.setMarkedAsDeletedResourcesCnt(5); - migration.deleteResourcesIfLimitIsReached(); - verify(componentsCleanBusinessLogic).cleanComponents(componentsToClean, true); - } - - @Test - public void deleteMarkedResourcesNotCalledWhenLimitIsNotReached() { - ArrayList<NodeTypeEnum> componentsToClean = new ArrayList<>(); - componentsToClean.add(NodeTypeEnum.Resource); - migration.setUser(user); - migration.setMarkedAsDeletedResourcesCnt(3); - migration.deleteResourcesIfLimitIsReached(); - verify(componentsCleanBusinessLogic, times(0)).cleanComponents(componentsToClean, true); - } - - @Test - public void deleteMarkedServicesWhenLimitIsReached() { - ArrayList<NodeTypeEnum> componentsToClean = new ArrayList<>(); - componentsToClean.add(NodeTypeEnum.Service); - migration.setUser(user); - migration.setMarkedAsDeletedServicesCnt(5); - migration.deleteServicesIfLimitIsReached(); - verify(componentsCleanBusinessLogic).cleanComponents(componentsToClean, true); - } - - @Test - public void deleteMarkedServicesNotCalledWhenLimitIsNotReached() { - ArrayList<NodeTypeEnum> componentsToClean = new ArrayList<>(); - componentsToClean.add(NodeTypeEnum.Service); - migration.setUser(user); - migration.setMarkedAsDeletedServicesCnt(2); - migration.deleteServicesIfLimitIsReached(); - verify(componentsCleanBusinessLogic, times(0)).cleanComponents(componentsToClean, true); - } - - @Test - public void getVfUpgradeStatusWhenUpgradeFailedAndItIsInstance() { - assertEquals(UpgradeMigration1710.UpgradeStatus.NOT_UPGRADED, migration.getVfUpgradeStatus(false, true)); - } - - @Test - public void getVfUpgradeStatusWhenUpgradeFailedAndItIsNotInstance() { - assertEquals(UpgradeMigration1710.UpgradeStatus.NOT_UPGRADED, migration.getVfUpgradeStatus(false, false)); - } - - @Test - public void getVfUpgradeStatusWhenUpgradeSucceededAndItIsInstance() { - assertEquals(UpgradeMigration1710.UpgradeStatus.UPGRADED_AS_INSTANCE, migration.getVfUpgradeStatus(true, true)); - } - - @Test - public void getVfUpgradeStatusWhenUpgradeSucceededAndItIsNotInstance() { - assertEquals(UpgradeMigration1710.UpgradeStatus.UPGRADED, migration.getVfUpgradeStatus(true, false)); - } - - private void resolveUserAndDefineUpgradeLevel() { - when(userAdminOperation.getUserData(anyString(), eq(false))).thenReturn(Either.left(user)); - configurationManager.getConfiguration().setToscaConformanceLevel(CONF_LEVEL); - configurationManager.getConfiguration().setResourcesForUpgrade(resourcesForUpgrade); - } - - private void upgradeAllScenario(boolean upgradeServices) { - final boolean failOnVfUpgrade = false; - final boolean exceptionOnFvUpgrade = false; - final boolean upgradeVFC = false; - final boolean isFailed = false; - final boolean isProxy = true; - - resolveUserAndDefineUpgradeLevel(); - mockCheckoutFlow(); - when(resourceBusinessLogic.validateAndUpdateResourceFromCsar(any(Resource.class), any(), any(), any(), - any())) - .thenReturn(resource); - upgradeRules(failOnVfUpgrade, exceptionOnFvUpgrade, upgradeServices, upgradeVFC, isFailed, isProxy); - } - - private void upgradeRules(boolean failedVfUpgrade, boolean exceptionOnVfUpgrade, boolean upgradeService, - boolean upgradeVFCs, boolean isFailed) { - upgradeRules(failedVfUpgrade, exceptionOnVfUpgrade, upgradeService, upgradeVFCs, isFailed, false); - } - - private void upgradeRules(boolean failedVfUpgrade, boolean exceptionOnVfUpgrade, boolean upgradeService, - boolean upgradeVFCs, boolean isFailed, boolean isProxy) { - - mockNodeTypesUpgrade(); - Either<Component, StorageOperationStatus> foundResource = Either.left(resource); - - if (failedVfUpgrade) { - getToscaElementMockForVfUpgradeFailedScenario(foundResource); - } else { - if (exceptionOnVfUpgrade) { - getToscaElementMockForExceptionOnUpgradeScenario(foundResource, upgradeService); - } else { - when(toscaOperationFacade.getToscaElement(anyString())) - .thenReturn(foundResource); - } - } - //happy flow - if (upgradeService) { - mockForUpgradeServiceScenario(foundResource, upgradeVFCs, isFailed); - } - } - - private void mockNodeTypesUpgrade() { - GraphVertex component = createComponent(); - List<GraphVertex> components = Lists.newArrayList(); - components.add(component); - - when(janusGraphDao.getByCriteria(any(), any(), any(), any())) - .thenReturn(Either.left(components)); - when(janusGraphDao.getParentVertices(any(GraphVertex.class), any(EdgeLabelEnum.class), any(JsonParseFlagEnum.class))) - //1th node to upgrade - .thenReturn(Either.left(components)) - //parent of the 1th node - stop recursion - .thenReturn(Either.right(JanusGraphOperationStatus.NOT_FOUND)); - } - - private GraphVertex createComponent() { - GraphVertex component = new GraphVertex(); - component.setJsonMetadataField(JsonPresentationFields.LIFECYCLE_STATE,LifecycleStateEnum.CERTIFIED.name()); - component.setJsonMetadataField(JsonPresentationFields.UNIQUE_ID,COMPONENT_UNIQUE_ID); - component.setJsonMetadataField(JsonPresentationFields.CI_COMPONENT_VERSION,UPDATED_VERSION); - return component; - } - - private void mockChangeComponentState() { - List<ComponentInstance> instances = Lists.newArrayList(); - instances.add(createComponentInstance()); - - Resource checkedOutResource = new Resource(); - checkedOutResource.setUniqueId("123400"); - checkedOutResource.setComponentInstances(instances); - Either<Resource, ResponseFormat> fromLifeCycle = Either.left(checkedOutResource); - doReturn(fromLifeCycle).when(lifecycleBusinessLogic) - .changeComponentState(any(), any(), any(), any(), any(),eq(true), eq(false)); - } - - private void getToscaElementMockForVfUpgradeFailedScenario(Either<Component, StorageOperationStatus> foundResource) { - when(toscaOperationFacade.getToscaElement(anyString())) - .thenReturn(foundResource) - .thenReturn(foundResource) - .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); - } - - private void mockForUpgradeServiceScenario(Either<Component, StorageOperationStatus> foundResource, boolean upgradeVFC, boolean isFailed) { - Either<Resource, StorageOperationStatus> foundService = Either.left(resource); - if (upgradeVFC) { - when(toscaOperationFacade.getToscaElement(anyString())) - .thenReturn(foundResource) - .thenReturn(foundResource) - .thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); - } - else if (!isFailed) { - when(toscaOperationFacade.getToscaElement(any(), any(ComponentParametersView.class))) - .thenReturn(Either.left(resource)); - when(toscaOperationFacade.getLatestCertifiedByToscaResourceName(any(), any(), any())) - .thenReturn(foundService); - } - } - - private void getToscaElementMockForExceptionOnUpgradeScenario(Either<Component, StorageOperationStatus> foundResource, boolean upgradeService) { - if (upgradeService) { - service.setVersion(UPDATED_VERSION); - Either<Component, StorageOperationStatus> foundService = Either.left(service); - when(toscaOperationFacade.getToscaElement(anyString())) - .thenReturn(foundResource) - .thenReturn(foundResource) - .thenThrow(new RuntimeException()) - .thenReturn(foundService); - } - else { - when(toscaOperationFacade.getToscaElement(anyString())) - .thenReturn(foundResource) - .thenReturn(foundResource) - .thenThrow(new RuntimeException()); - } - } - - private void mockCheckoutFlow() { - GraphVertex component = new GraphVertex(); - component.setJsonMetadataField(JsonPresentationFields.LIFECYCLE_STATE, LifecycleStateEnum.CERTIFIED.name()); - component.setJsonMetadataField(JsonPresentationFields.UNIQUE_ID, COMPONENT_UNIQUE_ID); - List<GraphVertex> components = Lists.newArrayList(); - components.add(component); - - when(toscaOperationFacade.getToscaElement(anyString())).thenReturn(Either.left(resource)); - when(janusGraphDao.getByCriteria(any(), any(), any(), any())) - .thenReturn(Either.left(components)); - when(csarOperation.getCsarLatestVersion(anyString(), any())) - .thenReturn(Either.left("2.0")); - } - - private ComponentInstance createComponentInstance() { - ComponentInstance instance = new ComponentInstance(); - instance.setIcon(""); - instance.setUniqueId(""); - instance.setName(""); - instance.setComponentUid(""); - instance.setCreationTime(1L); - instance.setModificationTime(2L); - instance.setDescription(""); - instance.setPosX(""); - instance.setPosY(""); - instance.setPropertyValueCounter(1); - instance.setNormalizedName(""); - instance.setOriginType(OriginTypeEnum.CVFC); - instance.setCustomizationUUID(""); - instance.setComponentName(""); - instance.setComponentVersion(OLD_VERSION); - instance.setToscaComponentName(""); - instance.setInvariantName(""); - instance.setSourceModelInvariant(""); - instance.setSourceModelName(""); - instance.setSourceModelUuid(""); - instance.setSourceModelUid(""); - instance.setIsProxy(false); - return instance; - } - - -} diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/SdcGroupsMigrationTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/SdcGroupsMigrationTest.java deleted file mode 100644 index 328c5f3459..0000000000 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/SdcGroupsMigrationTest.java +++ /dev/null @@ -1,231 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.asdctool.migration.tasks.mig1902; - -import fj.data.Either; -import org.junit.Before; -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.asdctool.migration.core.task.MigrationResult; -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.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.datatypes.elements.GroupDataDefinition; -import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; -import org.openecomp.sdc.be.model.GroupTypeDefinition; -import org.openecomp.sdc.be.model.PropertyDefinition; -import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; -import org.openecomp.sdc.be.model.operations.impl.GroupTypeOperation; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyMap; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -@RunWith(MockitoJUnitRunner.class) -public class SdcGroupsMigrationTest { - - @Mock - private JanusGraphDao janusGraphDao; - @Mock - private GroupTypeOperation groupTypeOperation; - @Mock - private GraphVertex topologyTemplateVertex; - @Mock - private GraphVertex groupsVertex; - - @InjectMocks - private SdcGroupsMigration groupsMigration; - - @Before - public void setUp() { - groupsMigration = new SdcGroupsMigration(janusGraphDao, groupTypeOperation); - when(janusGraphDao.getVertexById(any())).thenReturn(Either.left(topologyTemplateVertex)); - } - - @Test - public void handleOneContainerWhenErrorHappened() { - when(janusGraphDao.getChildVertex(any(GraphVertex.class), eq(EdgeLabelEnum.GROUPS), eq(JsonParseFlagEnum.ParseAll))) - .thenReturn(Either.right(JanusGraphOperationStatus.MATCH_NOT_FOUND)); - StorageOperationStatus status = groupsMigration.handleOneContainer(topologyTemplateVertex); - assertEquals(StorageOperationStatus.MATCH_NOT_FOUND, status); - } - - @Test - public void handleOneContainerWhenNoGroups() { - when(janusGraphDao.getChildVertex(any(GraphVertex.class), eq(EdgeLabelEnum.GROUPS), eq(JsonParseFlagEnum.ParseAll))) - .thenReturn(Either.right(JanusGraphOperationStatus.NOT_FOUND)); - StorageOperationStatus status = groupsMigration.handleOneContainer(topologyTemplateVertex); - assertEquals(StorageOperationStatus.OK, status); - } - - @Test - public void handleOneContainerWhenGroupsShouldNotBeUpdated() { - when(janusGraphDao.getChildVertex(any(GraphVertex.class), eq(EdgeLabelEnum.GROUPS), eq(JsonParseFlagEnum.ParseAll))) - .thenReturn(Either.left(groupsVertex)); - - doReturn(buildGroupInstancesMap(new String[] {"org.openecomp.groups.heat.HeatStack", "org.openecomp.groups.VfModule"}, new String[]{})) - .when(groupsVertex).getJson(); - StorageOperationStatus status = groupsMigration.handleOneContainer(topologyTemplateVertex); - assertEquals(StorageOperationStatus.OK, status); - verify(janusGraphDao, times(0)).commit(); - - } - - @Test - public void handleOneContainerWhenGroupsShouldBeUpdated() { - mockLatestGroupMapCreating(); - mockUpgradeHappyFlow(); - StorageOperationStatus status = groupsMigration.handleOneContainer(topologyTemplateVertex); - assertEquals(StorageOperationStatus.OK, status); - verify(janusGraphDao, times(1)).commit(); - verify(janusGraphDao, times(0)).rollback(); - } - - private void mockUpgradeHappyFlow() { - when(janusGraphDao.getChildVertex(any(GraphVertex.class), eq(EdgeLabelEnum.GROUPS), eq(JsonParseFlagEnum.ParseAll))) - .thenReturn(Either.left(groupsVertex)); - when(janusGraphDao.updateVertex(any(GraphVertex.class))).thenReturn(Either.left(groupsVertex)); - when(janusGraphDao.commit()).thenReturn(JanusGraphOperationStatus.OK); - doReturn(buildGroupInstancesMap(new String[] {"org.openecomp.groups.NetworkCollection", "org.openecomp.groups.VfcInstanceGroup"}, - new String[] {"old1", "old2"})) - .when(groupsVertex).getJson(); - } - - @Test - public void handleOneContainerWhenGroupsAlreadyUpdated() { - mockLatestGroupMapCreating(); - when(janusGraphDao.getChildVertex(any(GraphVertex.class), eq(EdgeLabelEnum.GROUPS), eq(JsonParseFlagEnum.ParseAll))) - .thenReturn(Either.left(groupsVertex)); - doReturn(buildGroupInstancesMap(new String[] {"org.openecomp.groups.NetworkCollection"}, - new String[] {"a", "b", "c", "d"})) - .when(groupsVertex).getJson(); - StorageOperationStatus status = groupsMigration.handleOneContainer(topologyTemplateVertex); - assertEquals(StorageOperationStatus.OK, status); - verify(janusGraphDao, times(0)).commit(); - verify(janusGraphDao, times(1)).rollback(); - } - - @Test - public void handleOneContainerWhenExceptionIsThrown() { - when(janusGraphDao.getChildVertex(any(GraphVertex.class), eq(EdgeLabelEnum.GROUPS), eq(JsonParseFlagEnum.ParseAll))) - .thenThrow(new RuntimeException()); - StorageOperationStatus status = groupsMigration.handleOneContainer(topologyTemplateVertex); - assertEquals(StorageOperationStatus.GENERAL_ERROR, status); - verify(janusGraphDao, times(0)).commit(); - verify(janusGraphDao, times(1)).rollback(); - - } - - // A temp remark for this test - following Commit hash: 08595ad21b0c409c69e3902232f5575963199e3e [ASDC-641] – Migration workaround for deployment artifact timeout. Reviewer: Lior. -// @Test -// public void migrateWhenExceptionIsThrown() { -// List<GraphVertex> vertexList = new ArrayList<>(); -// vertexList.add(topologyTemplateVertex); -// mockLatestGroupMapCreating(); -// when(janusGraphDao.getByCriteria(eq(VertexTypeEnum.TOPOLOGY_TEMPLATE), eq(null), anyMap(), eq(JsonParseFlagEnum.ParseAll))) -// .thenReturn(Either.left(vertexList)); -// when(janusGraphDao.getChildVertex(any(GraphVertex.class), eq(EdgeLabelEnum.GROUPS), eq(JsonParseFlagEnum.ParseAll))) -// .thenThrow(new RuntimeException()); -// assertEquals(MigrationResult.MigrationStatus.FAILED, groupsMigration.migrate().getMigrationStatus()); -// verify(janusGraphDao, times(0)).commit(); -// verify(janusGraphDao, times(1)).rollback(); -// -// } - - @Test - public void migrateWhenGroupsShouldBeUpdated() { - List<GraphVertex> vertexList = new ArrayList<>(); - vertexList.add(topologyTemplateVertex); - mockLatestGroupMapCreating(); - when(janusGraphDao.getByCriteria(eq(VertexTypeEnum.TOPOLOGY_TEMPLATE), eq(null), anyMap(), eq(JsonParseFlagEnum.ParseAll))) - .thenReturn(Either.left(vertexList)); - mockUpgradeHappyFlow(); - - assertEquals(MigrationResult.MigrationStatus.COMPLETED, groupsMigration.migrate().getMigrationStatus()); - verify(janusGraphDao, times(1)).commit(); - verify(janusGraphDao, times(0)).rollback(); - } - - - private Map<String, GroupDataDefinition> buildGroupInstancesMap(String[] groupTypes, String [] propertyNames) { - Map<String, GroupDataDefinition> groupsMap = new HashMap<>(); - for (String type: groupTypes) { - GroupDataDefinition gr = new GroupDataDefinition(); - gr.setType(type); - - gr.setProperties(createInstanceProperties(propertyNames)); - groupsMap.put(gr.getType(), gr); - } - return groupsMap; - } - - private void mockLatestGroupMapCreating() { - doReturn(Either.left(createTypeDefinition(new String[] {"a", "b", "c", "d"}))) - .when(groupTypeOperation).getLatestGroupTypeByType(eq(SdcGroupsMigration.GroupsForUpgrade.NW_COLLECTION_GROUP_NAME.getToscaType()), eq(false)); - doReturn(Either.left(createTypeDefinition(new String[] {"l", "m", "n", "o", "p"}))) - .when(groupTypeOperation).getLatestGroupTypeByType(eq(SdcGroupsMigration.GroupsForUpgrade.VFC_INSTANCE_GROUP_NAME.getToscaType()), eq(false)); - groupsMigration.loadLatestGroupTypeDefinitions(); - - } - - private GroupTypeDefinition createTypeDefinition(String[] propertyNames) { - GroupTypeDefinition typeDefinition = new GroupTypeDefinition(); - typeDefinition.setProperties(createTypeProperties(propertyNames)); - return typeDefinition; - } - - private List<PropertyDefinition> createTypeProperties(String[] propertyNames) { - List<PropertyDefinition> propertyDefinitionList = new ArrayList<>(); - for (String name: propertyNames) { - PropertyDefinition propertyDefinition = new PropertyDefinition(); - propertyDefinition.setName(name); - propertyDefinitionList.add(propertyDefinition); - } - return propertyDefinitionList; - } - - private List<PropertyDataDefinition> createInstanceProperties(String[] propertyNames) { - List<PropertyDataDefinition> propertyDefinitionList = new ArrayList<>(); - for (String name: propertyNames) { - PropertyDefinition propertyDefinition = new PropertyDefinition(); - propertyDefinition.setName(name); - propertyDefinitionList.add(propertyDefinition); - } - return propertyDefinitionList; - } - -} diff --git a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/SdcResourceIconMigrationTest.java b/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/SdcResourceIconMigrationTest.java deleted file mode 100644 index f54592da08..0000000000 --- a/asdctool/src/test/java/org/openecomp/sdc/asdctool/migration/tasks/mig1902/SdcResourceIconMigrationTest.java +++ /dev/null @@ -1,212 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * SDC - * ================================================================================ - * Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.sdc.asdctool.migration.tasks.mig1902; - -import fj.data.Either; -import org.assertj.core.util.Lists; -import org.assertj.core.util.Maps; -import org.junit.Before; -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.asdctool.migration.core.task.MigrationResult; -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.JsonParseFlagEnum; -import org.openecomp.sdc.be.dao.jsongraph.types.VertexTypeEnum; -import org.openecomp.sdc.be.datatypes.elements.ComponentInstanceDataDefinition; -import org.openecomp.sdc.be.datatypes.elements.CompositionDataDefinition; -import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; -import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; -import org.openecomp.sdc.be.model.jsonjanusgraph.enums.JsonConstantKeysEnum; - -import java.util.HashMap; -import java.util.List; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.anyMap; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.any; -import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -@RunWith(MockitoJUnitRunner.class) -public class SdcResourceIconMigrationTest { - @Mock - private JanusGraphDao janusGraphDao; - - @Mock - private GraphVertex graphVertex; - - @Mock - private GraphVertex topologyTemplateVertex; - - @Mock - private CompositionDataDefinition compositionDataDefinition; - - @Mock - private ComponentInstanceDataDefinition componentInstanceDataDefinition; - - @InjectMocks - private SdcResourceIconMigration iconMigration; - - @Before - public void setUp() { - iconMigration = new SdcResourceIconMigration(janusGraphDao); - when(janusGraphDao.getVertexById(any())).thenReturn(Either.left(topologyTemplateVertex)); - when(janusGraphDao.commit()).thenReturn(JanusGraphOperationStatus.OK); - } - - - @Test - public void migrationFailedWhenNoNodeTypeDefined() { - when(janusGraphDao.getByCriteria(eq(VertexTypeEnum.NODE_TYPE), anyMap(), anyMap(), eq(JsonParseFlagEnum.ParseAll))) - .thenReturn(Either.left(Lists.emptyList())); - assertEquals(MigrationResult.MigrationStatus.FAILED, iconMigration.migrate().getMigrationStatus()); - } - - @Test - public void resourceIsNotUpdatedIfNotVL() { - //iconMigration.handleOneContainer(graphVertex); - mockInstancesNotFoundFlow(); - - iconMigration.updateNodeTypeIconAndStoreInMap(ResourceTypeEnum.VL); - assertFalse(iconMigration.updateIconInsideInstance(componentInstanceDataDefinition)); - } - - - - @Test - public void resourceIsUpdatedIfCP() { - //iconMigration.handleOneContainer(graphVertex); - mockInstancesFoundFlow(); - when(janusGraphDao.updateVertex(any(GraphVertex.class))).thenReturn(Either.left(graphVertex)); - iconMigration.updateNodeTypeIconAndStoreInMap(ResourceTypeEnum.CP); - assertTrue(iconMigration.updateIconInsideInstance(componentInstanceDataDefinition)); - } - - @Test - public void migrateWhenIconsAreUpdated() { - mockInstancesFoundFlow(); - when(janusGraphDao.getByCriteria(eq(VertexTypeEnum.TOPOLOGY_TEMPLATE), eq(null), anyMap(), eq(JsonParseFlagEnum.ParseAll))) - .thenReturn(Either.left(Lists.newArrayList(topologyTemplateVertex))); - when(compositionDataDefinition.getComponentInstances()).thenReturn(Maps.newHashMap("a", componentInstanceDataDefinition)); - doReturn(Maps.newHashMap(JsonConstantKeysEnum.COMPOSITION.getValue(), compositionDataDefinition)).when(topologyTemplateVertex).getJson(); - when(janusGraphDao.updateVertex(any(GraphVertex.class))).thenReturn(Either.left(graphVertex)); - - assertEquals(MigrationResult.MigrationStatus.COMPLETED, iconMigration.migrate().getMigrationStatus()); - verify(janusGraphDao, times(3)).commit(); - } - - @Test - public void migrateWhenIconsNotUpdated() { - mockInstancesNotFoundFlow(); - when(janusGraphDao.getByCriteria(eq(VertexTypeEnum.TOPOLOGY_TEMPLATE), eq(null), anyMap(), eq(JsonParseFlagEnum.ParseAll))) - .thenReturn(Either.left(Lists.newArrayList(topologyTemplateVertex))); - when(compositionDataDefinition.getComponentInstances()).thenReturn(Maps.newHashMap("a", componentInstanceDataDefinition)); - doReturn(Maps.newHashMap(JsonConstantKeysEnum.COMPOSITION.getValue(), compositionDataDefinition)).when(topologyTemplateVertex).getJson(); - - assertEquals(MigrationResult.MigrationStatus.COMPLETED, iconMigration.migrate().getMigrationStatus()); - verify(janusGraphDao, times(2)).commit(); - } - - @Test - public void migrateWhenNoInstancesFound() { - mockInstancesNotFoundFlow(); - when(janusGraphDao.getByCriteria(eq(VertexTypeEnum.TOPOLOGY_TEMPLATE), eq(null), anyMap(), eq(JsonParseFlagEnum.ParseAll))) - .thenReturn(Either.left(Lists.newArrayList(topologyTemplateVertex))); - - assertEquals(MigrationResult.MigrationStatus.COMPLETED, iconMigration.migrate().getMigrationStatus()); - verify(janusGraphDao, times(2)).commit(); - } - - @Test - public void migrationFailedWhenInstanceVertexUpdateFailed() { - mockInstancesFoundFlow(); - when(janusGraphDao.getByCriteria(eq(VertexTypeEnum.TOPOLOGY_TEMPLATE), eq(null), anyMap(), eq(JsonParseFlagEnum.ParseAll))) - .thenReturn(Either.left(Lists.newArrayList(topologyTemplateVertex))); - when(compositionDataDefinition.getComponentInstances()).thenReturn(Maps.newHashMap("a", componentInstanceDataDefinition)); - doReturn(Maps.newHashMap(JsonConstantKeysEnum.COMPOSITION.getValue(), compositionDataDefinition)).when(topologyTemplateVertex).getJson(); - when(janusGraphDao.updateVertex(any(GraphVertex.class))).thenReturn(Either.left(graphVertex)) - .thenReturn(Either.left(graphVertex)) - .thenReturn(Either.right(JanusGraphOperationStatus.GENERAL_ERROR)); - - assertEquals(MigrationResult.MigrationStatus.COMPLETED, iconMigration.migrate().getMigrationStatus()); - verify(janusGraphDao, times(2)).commit(); - } - - @Test - public void migrationCompletedWhenVertexJsonIsEmpty() { - mockInstancesFoundFlow(); - when(janusGraphDao.getByCriteria(eq(VertexTypeEnum.TOPOLOGY_TEMPLATE), eq(null), anyMap(), eq(JsonParseFlagEnum.ParseAll))) - .thenReturn(Either.left(Lists.newArrayList(topologyTemplateVertex))); - doReturn(new HashMap<>()).when(topologyTemplateVertex).getJson(); - when(janusGraphDao.updateVertex(any(GraphVertex.class))).thenReturn(Either.left(graphVertex)); - - assertEquals(MigrationResult.MigrationStatus.COMPLETED, iconMigration.migrate().getMigrationStatus()); - verify(janusGraphDao, times(2)).commit(); - } - - @Test - public void migrationCompletedWhenVertexJsonIsNull() { - mockInstancesFoundFlow(); - when(janusGraphDao.getByCriteria(eq(VertexTypeEnum.TOPOLOGY_TEMPLATE), eq(null), anyMap(), eq(JsonParseFlagEnum.ParseAll))) - .thenReturn(Either.left(Lists.newArrayList(topologyTemplateVertex))); - doReturn(null).when(topologyTemplateVertex).getJson(); - when(janusGraphDao.updateVertex(any(GraphVertex.class))).thenReturn(Either.left(graphVertex)); - - assertEquals(MigrationResult.MigrationStatus.COMPLETED, iconMigration.migrate().getMigrationStatus()); - verify(janusGraphDao, times(2)).commit(); - } - - @Test - public void migrationFailedWhenTypeUpdateFailed() { - mockInstancesFoundFlow(); - when(janusGraphDao.updateVertex(any(GraphVertex.class))).thenReturn(Either.right(JanusGraphOperationStatus.GENERAL_ERROR)); - assertEquals(MigrationResult.MigrationStatus.FAILED, iconMigration.migrate().getMigrationStatus()); - verify(janusGraphDao, times(0)).commit(); - } - - private void mockInstancesNotFoundFlow() { - List<GraphVertex> nodeTypeVertexList = Lists.newArrayList(graphVertex); - when(graphVertex.getMetadataProperty(GraphPropertyEnum.NAME)).thenReturn("vl1"); - when(componentInstanceDataDefinition.getComponentName()).thenReturn("other"); - when(janusGraphDao.getByCriteria(eq(VertexTypeEnum.NODE_TYPE), anyMap(), anyMap(), eq(JsonParseFlagEnum.ParseAll))) - .thenReturn(Either.left(nodeTypeVertexList)); - when(janusGraphDao.updateVertex(any(GraphVertex.class))).thenReturn(Either.left(graphVertex)); - } - - private void mockInstancesFoundFlow() { - when(graphVertex.getMetadataProperty(GraphPropertyEnum.NAME)).thenReturn(String.valueOf("cp1")); - when(componentInstanceDataDefinition.getComponentName()).thenReturn("cp1"); - when(janusGraphDao.getByCriteria(eq(VertexTypeEnum.NODE_TYPE), anyMap(), anyMap(), eq(JsonParseFlagEnum.ParseAll))) - .thenReturn(Either.left(Lists.newArrayList(graphVertex))); - } - - -} |