aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArchiveEndpointTest.java
diff options
context:
space:
mode:
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.java127
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";