diff options
Diffstat (limited to 'catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArchiveEndpointTest.java')
-rw-r--r-- | catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArchiveEndpointTest.java | 127 |
1 files changed, 85 insertions, 42 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArchiveEndpointTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArchiveEndpointTest.java index 2636048408..c670b517ba 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArchiveEndpointTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArchiveEndpointTest.java @@ -22,30 +22,13 @@ package org.openecomp.sdc.be.servlets; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - import fj.data.Either; -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.GenericType; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.test.JerseyTest; import org.junit.BeforeClass; import org.junit.Test; +import org.mockito.Mockito; +import org.openecomp.sdc.be.catalog.enums.ChangeTypeEnum; import org.openecomp.sdc.be.components.impl.ArchiveBusinessLogic; import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException; import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; @@ -59,19 +42,21 @@ import org.openecomp.sdc.be.dao.api.ActionStatus; import org.openecomp.sdc.be.dao.impl.HealingPipelineDao; import org.openecomp.sdc.be.dao.janusgraph.HealingJanusGraphGenericDao; import org.openecomp.sdc.be.dao.janusgraph.JanusGraphClient; +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.HealingJanusGraphDao; import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphGenericDao; -import org.openecomp.sdc.be.dao.janusgraph.JanusGraphOperationStatus; import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; import org.openecomp.sdc.be.datatypes.enums.GraphPropertyEnum; 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.facade.operations.CatalogOperation; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.impl.ServletUtils; import org.openecomp.sdc.be.impl.WebAppContextWrapper; +import org.openecomp.sdc.be.model.Component; import org.openecomp.sdc.be.model.LifecycleStateEnum; import org.openecomp.sdc.be.model.User; import org.openecomp.sdc.be.model.catalog.CatalogComponent; @@ -102,6 +87,26 @@ import org.springframework.context.annotation.PropertySource; import org.springframework.http.HttpStatus; import org.springframework.web.context.WebApplicationContext; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.client.Entity; +import javax.ws.rs.core.Application; +import javax.ws.rs.core.GenericType; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.doThrow; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + public class ArchiveEndpointTest extends JerseyTest { private static final ServletContext servletContext = mock(ServletContext.class); @@ -113,6 +118,11 @@ public class ArchiveEndpointTest extends JerseyTest { private static final ServletUtils servletUtils = mock(ServletUtils.class); private static final UserBusinessLogic userAdmin = mock(UserBusinessLogic.class); private static final ComponentsUtils componentUtils = mock(ComponentsUtils.class); + private static final CatalogOperation catalogOperations = mock(CatalogOperation.class); +// private static final ToscaOperationFacade toscaOperationFacade = mock(ToscaOperationFacade.class); + private static final ToscaOperationFacade toscaOperationFacade = Mockito.spy(new ToscaOperationFacade()); + + private static final ResponseFormat responseFormat = mock(ResponseFormat.class); private static final ResponseFormat notFoundResponseFormat = mock(ResponseFormat.class); private static final ResponseFormat badRequestResponseFormat = mock(ResponseFormat.class); @@ -137,7 +147,9 @@ public class ArchiveEndpointTest extends JerseyTest { @Bean ArchiveEndpoint archiveEndpoint() { - return new ArchiveEndpoint(archiveBusinessLogic()); + UserBusinessLogic userBusinessLogic = mock(UserBusinessLogic.class); + ComponentsUtils componentsUtils = mock(ComponentsUtils.class); + return new ArchiveEndpoint(userBusinessLogic, componentsUtils, archiveBusinessLogic()); } @Bean @@ -157,7 +169,7 @@ public class ArchiveEndpointTest extends JerseyTest { @Bean ArchiveBusinessLogic archiveBusinessLogic() { - return new ArchiveBusinessLogic(janusGraphDao(), accessValidations(), archiveOperation(), toscaOperationFacade(), componentUtils); + return new ArchiveBusinessLogic(janusGraphDao(), accessValidations(), archiveOperation(), toscaOperationFacade(), componentUtils, catalogOperations); } @Bean @@ -180,7 +192,7 @@ public class ArchiveEndpointTest extends JerseyTest { @Bean ToscaOperationFacade toscaOperationFacade() { - return new ToscaOperationFacade(); + return toscaOperationFacade; } @Bean @@ -281,7 +293,7 @@ public class ArchiveEndpointTest extends JerseyTest { private static final User adminUser = new User("admin", "admin", "admin", "admin@email.com", Role.ADMIN.name(), System.currentTimeMillis()); private static final User designerUser = new User("designer", "designer", "designer", "designer@email.com", Role.DESIGNER.name(), System .currentTimeMillis()); - private static final User otherUser = new User("other", "other", "other", "other@email.com", Role.OPS.name(), System.currentTimeMillis()); + private static final User otherUser = new User("other", "other", "other", "other@email.com", Role.TESTER.name(), System.currentTimeMillis()); @BeforeClass public static void setup() { @@ -307,23 +319,23 @@ public class ArchiveEndpointTest extends JerseyTest { when(componentUtils.getResponseFormat(eq(ActionStatus.MISSING_X_ECOMP_INSTANCE_ID), (String[]) any())).thenReturn(badRequestResponseFormat); when(graphLockOperation.lockComponent(anyString(), any(NodeTypeEnum.class))).thenReturn(StorageOperationStatus.OK); - - Either<User, ActionStatus> adminEither = Either.left(adminUser); - Either<User, ActionStatus> designerEither = Either.left(designerUser); - Either<User, ActionStatus> otherEither = Either.left(otherUser); - - when(userAdmin.getUser(adminUser.getUserId(), false)).thenReturn(adminEither); - when(userAdmin.getUser(designerUser.getUserId(), false)).thenReturn(designerEither); - when(userAdmin.getUser(otherUser.getUserId(), false)).thenReturn(otherEither); + when(userAdmin.getUser(adminUser.getUserId(), false)).thenReturn(adminUser); + when(userAdmin.getUser(designerUser.getUserId(), false)).thenReturn(designerUser); + when(userAdmin.getUser(otherUser.getUserId(), false)).thenReturn(otherUser); //======================================================================================================================== - String appConfigDir = "src/test/resources/config/catalog-be"; + String appConfigDir = "src/test/resources/config"; ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); org.openecomp.sdc.be.config.Configuration configuration = new org.openecomp.sdc.be.config.Configuration(); configuration.setJanusGraphInMemoryGraph(true); + org.openecomp.sdc.be.config.Configuration.HeatDeploymentArtifactTimeout heatDeploymentArtifactTimeout = new org.openecomp.sdc.be.config.Configuration.HeatDeploymentArtifactTimeout(); + heatDeploymentArtifactTimeout.setDefaultMinutes(30);; + configuration.setHeatArtifactDeploymentTimeout(heatDeploymentArtifactTimeout); + configurationManager.setConfiguration(configuration); + configurationManager.setConfiguration(configuration); ExternalConfiguration.setAppName("catalog-be"); } @@ -334,15 +346,31 @@ public class ArchiveEndpointTest extends JerseyTest { } @Test - public void archiveAndGetArchivedComponents_SingleComponent() { - archiveComponent(serviceVertex.getUniqueId(), HttpStatus.OK.value()); + public void archiveAndGetArchivedService_SingleService() { + Component serviceComponent = mock(Component.class); + final String serviceUniqueId = serviceVertex.getUniqueId(); + when(toscaOperationFacade.getToscaElement(serviceUniqueId)).thenReturn(Either.left(serviceComponent)); + when(catalogOperations.updateCatalog(ChangeTypeEnum.ARCHIVE, serviceComponent)).thenReturn(ActionStatus.OK); + archiveService(serviceUniqueId, HttpStatus.OK.value()); assertOnGetArchivedComponents(ComponentTypeEnum.SERVICE_PARAM_NAME, 1); + //restoreService(serviceUniqueId, 200); + } + + @Test + public void archiveAndGetArchivedResource_SingleResource() { + Component component = mock(Component.class); + final String uniqueId = resourceVertex.getUniqueId(); + when(toscaOperationFacade.getToscaElement(uniqueId)).thenReturn(Either.left(component)); + when(catalogOperations.updateCatalog(ChangeTypeEnum.ARCHIVE, component)).thenReturn(ActionStatus.OK); + archiveResource(uniqueId, HttpStatus.OK.value()); + assertOnGetArchivedComponents(ComponentTypeEnum.RESOURCE_PARAM_NAME, 1); + //restoreResource(uniqueId, 200); } @Test public void attemptArchiveCheckedOutService() { checkoutComponent(serviceVertex); - archiveComponent(serviceVertex.getUniqueId(), HttpStatus.CONFLICT.value()); + archiveService(serviceVertex.getUniqueId(), HttpStatus.CONFLICT.value()); } @Test @@ -384,12 +412,12 @@ public class ArchiveEndpointTest extends JerseyTest { */ @Test public void archiveWithInvalidUid() { - archiveComponent("fakeUid", HttpStatus.NOT_FOUND.value()); + archiveService("fakeUid", HttpStatus.NOT_FOUND.value()); } @Test public void restoreWithInvalidUid() { - restoreComponent("fakeUid", HttpStatus.NOT_FOUND.value()); + restoreService("fakeUid", HttpStatus.NOT_FOUND.value()); } @Test @@ -420,10 +448,13 @@ public class ArchiveEndpointTest extends JerseyTest { assertThat(v.getMetadataProperty(GraphPropertyEnum.IS_VSP_ARCHIVED)).isEqualTo(expectedValue); } - private void archiveComponent(String id, int expectedStatus){ archiveOrRestoreComponent(id, ArchiveOperation.Action.ARCHIVE, expectedStatus); } - private void restoreComponent(String id, int expectedStatus){ archiveOrRestoreComponent(id, ArchiveOperation.Action.RESTORE, expectedStatus); } + private void archiveService(String id, int expectedStatus){ archiveOrRestoreService(id, ArchiveOperation.Action.ARCHIVE, expectedStatus); } + private void restoreService(String id, int expectedStatus){ archiveOrRestoreService(id, ArchiveOperation.Action.RESTORE, expectedStatus); } + + private void archiveResource(String id, int expectedStatus){ archiveOrRestoreResource(id, ArchiveOperation.Action.ARCHIVE, expectedStatus); } + private void restoreResource(String id, int expectedStatus){ archiveOrRestoreResource(id, ArchiveOperation.Action.RESTORE, expectedStatus); } - private void archiveOrRestoreComponent(String compUid, ArchiveOperation.Action action, int expectedStatus) { + private void archiveOrRestoreService(String compUid, ArchiveOperation.Action action, int expectedStatus) { String path = String.format("/v1/catalog/services/%s/%s", compUid, action.name().toLowerCase()); Response response = target() .path(path) @@ -435,6 +466,18 @@ public class ArchiveEndpointTest extends JerseyTest { assertThat(response.getStatus()).isEqualTo(expectedStatus); } + private void archiveOrRestoreResource(String compUid, ArchiveOperation.Action action, int expectedStatus) { + String path = String.format("/v1/catalog/resources/%s/%s", compUid, action.name().toLowerCase()); + Response response = target() + .path(path) + .request() + .accept(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, designerUser.getUserId()) + .post(null); + + assertThat(response.getStatus()).isEqualTo(expectedStatus); + } + private void assertOnGetArchivedComponents(String componentType, int expectedCount) { String path = "/v1/catalog/archive"; |