diff options
Diffstat (limited to 'catalog-be/src/test/java/org/openecomp/sdc/be/servlets')
36 files changed, 1572 insertions, 2564 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AbstractValidationsServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AbstractValidationsServletTest.java index 99053aa603..70a7fe898a 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AbstractValidationsServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AbstractValidationsServletTest.java @@ -20,9 +20,15 @@ package org.openecomp.sdc.be.servlets; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.mock; +import fj.data.Either; +import org.apache.commons.codec.binary.Base64; +import org.junit.Test; +import org.openecomp.sdc.be.model.UploadResourceInfo; +import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.common.datastructure.Wrapper; +import org.openecomp.sdc.exception.ResponseFormat; +import javax.ws.rs.core.Response; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -32,32 +38,17 @@ import java.nio.file.Paths; import java.util.Map; import java.util.stream.Stream; -import javax.ws.rs.core.Response; - -import org.apache.commons.codec.binary.Base64; -import org.junit.Before; -import org.junit.Test; -import org.openecomp.sdc.be.model.UploadResourceInfo; -import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.common.datastructure.Wrapper; -import org.openecomp.sdc.exception.ResponseFormat; -import org.slf4j.Logger; - -import fj.data.Either; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; public class AbstractValidationsServletTest { private static AbstractValidationsServlet servlet = new AbstractValidationsServlet() {}; private static final String BASIC_TOSCA_TEMPLATE = "tosca_definitions_version: tosca_simple_yaml_%s"; - @Before - public void setUp() throws Exception { - servlet.initLog(mock(Logger.class)); - } - @SuppressWarnings("unchecked") @Test - public void testGetScarFromPayload() { + public void testGetCsarFromPayload() { String payloadName = "valid_vf.csar"; String rootPath = System.getProperty("user.dir"); @@ -73,7 +64,7 @@ public class AbstractValidationsServletTest { resourceInfo.setPayloadName(payloadName); resourceInfo.setPayloadData(payloadData); Method privateMethod = null; - privateMethod = AbstractValidationsServlet.class.getDeclaredMethod("getScarFromPayload", UploadResourceInfo.class); + privateMethod = AbstractValidationsServlet.class.getDeclaredMethod("getCsarFromPayload", UploadResourceInfo.class); privateMethod.setAccessible(true); returnValue = (Either<Map<String, byte[]>, ResponseFormat>) privateMethod.invoke(servlet, resourceInfo); } catch (IOException | NoSuchMethodException | SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { @@ -81,7 +72,7 @@ public class AbstractValidationsServletTest { } assertTrue(returnValue.isLeft()); Map<String, byte[]> csar = returnValue.left().value(); - assertTrue(csar != null); + assertNotNull(csar); } @Test diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AdditionalInformationServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AdditionalInformationServletTest.java deleted file mode 100644 index dbb1f59f62..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AdditionalInformationServletTest.java +++ /dev/null @@ -1,167 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; - - -public class AdditionalInformationServletTest { - - private AdditionalInformationServlet createTestSubject() { - return new AdditionalInformationServlet(); - } - - - @Test - public void testCreateResourceAdditionalInformationLabel() throws Exception { - AdditionalInformationServlet testSubject; - String resourceId = ""; - String data = ""; - HttpServletRequest request = null; - String userUserId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testCreateServiceAdditionalInformationLabel() throws Exception { - AdditionalInformationServlet testSubject; - String serviceId = ""; - String data = ""; - HttpServletRequest request = null; - String userUserId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateResourceAdditionalInformationLabel() throws Exception { - AdditionalInformationServlet testSubject; - String resourceId = ""; - String labelId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateServiceAdditionalInformationLabel() throws Exception { - AdditionalInformationServlet testSubject; - String serviceId = ""; - String labelId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateResourceAdditionalInformationLabel_1() throws Exception { - AdditionalInformationServlet testSubject; - String resourceId = ""; - String labelId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDeleteServiceAdditionalInformationLabel() throws Exception { - AdditionalInformationServlet testSubject; - String serviceId = ""; - String labelId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetResourceAdditionalInformationLabel() throws Exception { - AdditionalInformationServlet testSubject; - String resourceId = ""; - String labelId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetServiceAdditionalInformationLabel() throws Exception { - AdditionalInformationServlet testSubject; - String serviceId = ""; - String labelId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetAllResourceAdditionalInformationLabel() throws Exception { - AdditionalInformationServlet testSubject; - String resourceId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetAllServiceAdditionalInformationLabel() throws Exception { - AdditionalInformationServlet testSubject; - String serviceId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ApplicationConfig.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ApplicationConfig.java index d7d470449c..14636e5a5a 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ApplicationConfig.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ApplicationConfig.java @@ -20,22 +20,21 @@ package org.openecomp.sdc.be.servlets; -import java.util.HashSet; -import java.util.Set; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Application; - import org.glassfish.hk2.utilities.binding.AbstractBinder; import org.glassfish.jersey.media.multipart.FormDataContentDisposition; import org.glassfish.jersey.media.multipart.MultiPart; import org.glassfish.jersey.server.ResourceConfig; import org.mockito.Mockito; +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.core.Application; +import java.util.HashSet; +import java.util.Set; + public class ApplicationConfig extends Application { public Set<Class<?>> getClasses() { - final Set<Class<?>> resources = new HashSet<Class<?>>(); + final Set<Class<?>> resources = new HashSet<>(); // Add your resources. resources.add(ResourceUploadServlet.class); 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 new file mode 100644 index 0000000000..2c3d411922 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArchiveEndpointTest.java @@ -0,0 +1,452 @@ +/*- + * ============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========================================================= + */ + +package org.openecomp.sdc.be.servlets; + +import fj.data.Either; +import org.glassfish.jersey.server.ResourceConfig; +import org.glassfish.jersey.test.JerseyTest; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; +import org.openecomp.sdc.be.components.impl.ArchiveBusinessLogic; +import org.openecomp.sdc.be.components.impl.exceptions.ComponentException; +import org.openecomp.sdc.be.components.path.utils.GraphTestUtils; +import org.openecomp.sdc.be.components.validation.AccessValidations; +import org.openecomp.sdc.be.components.validation.ComponentValidations; +import org.openecomp.sdc.be.config.ConfigurationManager; +import org.openecomp.sdc.be.dao.DAOTitanStrategy; +import org.openecomp.sdc.be.dao.TitanClientStrategy; +import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.dao.jsongraph.GraphVertex; +import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.jsongraph.types.EdgeLabelEnum; +import org.openecomp.sdc.be.dao.titan.TitanGenericDao; +import org.openecomp.sdc.be.dao.titan.TitanGraphClient; +import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; +import org.openecomp.sdc.be.datatypes.enums.*; +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.LifecycleStateEnum; +import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.be.model.catalog.CatalogComponent; +import org.openecomp.sdc.be.model.jsontitan.operations.*; +import org.openecomp.sdc.be.model.operations.api.ICacheMangerOperation; +import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation; +import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; +import org.openecomp.sdc.be.servlets.exception.ComponentExceptionMapper; +import org.openecomp.sdc.be.servlets.exception.DefaultExceptionMapper; +import org.openecomp.sdc.be.servlets.exception.StorageExceptionMapper; +import org.openecomp.sdc.be.user.Role; +import org.openecomp.sdc.be.user.UserBusinessLogic; +import org.openecomp.sdc.common.api.ConfigurationSource; +import org.openecomp.sdc.common.api.Constants; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; +import org.openecomp.sdc.exception.ResponseFormat; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +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.*; + +public class ArchiveEndpointTest extends JerseyTest { + + private static final ServletContext servletContext = mock(ServletContext.class); + private static final String CSAR_UUID1 = "123456789abcdefgh"; + private static final String CSAR_UUID2 = "987654321abcdefgh"; + + public static final WebAppContextWrapper webAppContextWrapper = mock(WebAppContextWrapper.class); + private static final WebApplicationContext webApplicationContext = mock(WebApplicationContext.class); + 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 ResponseFormat responseFormat = mock(ResponseFormat.class); + private static final ResponseFormat notFoundResponseFormat = mock(ResponseFormat.class); + private static final ResponseFormat badRequestResponseFormat = mock(ResponseFormat.class); + private static final ResponseFormat invalidServiceStateResponseFormat = mock(ResponseFormat.class); + private static final AccessValidations accessValidationsMock = mock(AccessValidations.class); + private static final ComponentValidations componentValidationsMock = mock(ComponentValidations.class); + private static final IGraphLockOperation graphLockOperation = mock(IGraphLockOperation.class); + private static final TitanGenericDao titanGenericDao = mock(TitanGenericDao.class); + + private static final ICacheMangerOperation cacheManagerOperation = mock(ICacheMangerOperation.class); + private static GraphVertex serviceVertex; + private static GraphVertex resourceVertex; + private static GraphVertex resourceVertexVspArchived; + + private static TitanDao titanDao; + + @Configuration + static class TestSpringConfig { + private ArchiveOperation archiveOperation; + private GraphVertex catalogVertex; + + @Bean + ArchiveEndpoint archiveEndpoint() { + return new ArchiveEndpoint(archiveBusinessLogic()); + } + + @Bean + ComponentExceptionMapper componentExceptionMapper() { + return new ComponentExceptionMapper(componentUtils); + } + + @Bean + StorageExceptionMapper storageExceptionMapper() { + return new StorageExceptionMapper(componentUtils); + } + + @Bean + DefaultExceptionMapper defaultExceptionMapper() { + return new DefaultExceptionMapper(); + } + + @Bean + ArchiveBusinessLogic archiveBusinessLogic() { + return new ArchiveBusinessLogic(titanDao(), accessValidations(), archiveOperation(), toscaOperationFacade(), componentUtils); + } + + @Bean + ArchiveOperation archiveOperation() { + this.archiveOperation = new ArchiveOperation(titanDao(), graphLockOperation()); + GraphTestUtils.clearGraph(titanDao); + initGraphForTest(); + return this.archiveOperation; + } + + @Bean + ComponentValidations componentValidations() { + return componentValidationsMock; + } + + @Bean + AccessValidations accessValidations() { + return accessValidationsMock; + } + + @Bean + ToscaOperationFacade toscaOperationFacade() { + return new ToscaOperationFacade(); + } + + @Bean + TopologyTemplateOperation topologyTemplateOperation() { + return new TopologyTemplateOperation(); + } + + @Bean + NodeTypeOperation nodeTypeOpertaion() { + return new NodeTypeOperation(null); + } + + @Bean + NodeTemplateOperation nodeTemplateOperation() { + return new NodeTemplateOperation(); + } + + @Bean + GroupsOperation groupsOperation() { + return new GroupsOperation(); + } + + @Bean + ICacheMangerOperation cacheMangerOperation() { + return cacheManagerOperation; + } + + @Bean + TitanDao titanDao() { + titanDao = new TitanDao(titanGraphClient()); + return titanDao; + } + + @Bean + TitanGraphClient titanGraphClient() { + return new TitanGraphClient(titanClientStrategy()); + } + + @Bean + TitanClientStrategy titanClientStrategy() { + return new DAOTitanStrategy(); + } + + @Bean + CategoryOperation categoryOperation() { + return new CategoryOperation(); + } + + @Bean + IGraphLockOperation graphLockOperation() { + return graphLockOperation; + } + + @Bean + TitanGenericDao titanGenericDao() { + return titanGenericDao; + } + + private void initGraphForTest() { + //Create Catalog Root + catalogVertex = GraphTestUtils.createRootCatalogVertex(titanDao); + //Create Archive Root + GraphTestUtils.createRootArchiveVertex(titanDao); + + createSingleVersionServiceAndResource(); + } + + private void createSingleVersionServiceAndResource() { + //Create Service for Scenario 1 Tests (1 Service) + serviceVertex = GraphTestUtils.createServiceVertex(titanDao, propsForHighestVersion()); + + + Map<GraphPropertyEnum, Object> props = propsForHighestVersion(); + props.put(GraphPropertyEnum.IS_VSP_ARCHIVED, false); + props.put(GraphPropertyEnum.CSAR_UUID, CSAR_UUID1); + resourceVertex = GraphTestUtils.createResourceVertex(titanDao, props, ResourceTypeEnum.VF); + + props = propsForHighestVersion(); + props.put(GraphPropertyEnum.IS_VSP_ARCHIVED, true); + props.put(GraphPropertyEnum.CSAR_UUID, CSAR_UUID2); + resourceVertexVspArchived = GraphTestUtils.createResourceVertex(titanDao, props, ResourceTypeEnum.VF); + + //Connect Service/Resource to Catalog Root + titanDao.createEdge(catalogVertex, serviceVertex, EdgeLabelEnum.CATALOG_ELEMENT, null); + titanDao.createEdge(catalogVertex, resourceVertex, EdgeLabelEnum.CATALOG_ELEMENT, null); + } + + private Map<GraphPropertyEnum, Object> propsForHighestVersion(){ + Map<GraphPropertyEnum, Object> props = new HashMap<>(); + props.put(GraphPropertyEnum.IS_HIGHEST_VERSION, true); + return props; + } + } + + public static final HttpServletRequest request = mock(HttpServletRequest.class); + + /* Users */ + 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()); + + @BeforeClass + public static void setup() { + //Needed for User Authorization + //======================================================================================================================== + when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(webAppContextWrapper); + when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webApplicationContext); + when(webApplicationContext.getBean(ServletUtils.class)).thenReturn(servletUtils); + when(servletUtils.getUserAdmin()).thenReturn(userAdmin); + when(servletUtils.getComponentsUtils()).thenReturn(componentUtils); + when(componentUtils.getResponseFormat(ActionStatus.RESTRICTED_OPERATION)).thenReturn(responseFormat); + when(componentUtils.getResponseFormat(eq(ActionStatus.INVALID_SERVICE_STATE), any())).thenReturn(invalidServiceStateResponseFormat); + when(responseFormat.getStatus()).thenReturn(HttpStatus.UNAUTHORIZED.value()); + + ComponentException ce = new ComponentException(responseFormat); + doThrow(ce).when(accessValidationsMock).userIsAdminOrDesigner(eq(otherUser.getUserId()), any()); + + //Needed for error configuration + when(notFoundResponseFormat.getStatus()).thenReturn(HttpStatus.NOT_FOUND.value()); + when(invalidServiceStateResponseFormat.getStatus()).thenReturn(HttpStatus.CONFLICT.value()); + when(badRequestResponseFormat.getStatus()).thenReturn(HttpStatus.BAD_REQUEST.value()); + when(componentUtils.getResponseFormat(eq(ActionStatus.RESOURCE_NOT_FOUND), (String[]) any())).thenReturn(notFoundResponseFormat); + 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); + //======================================================================================================================== + + 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.setTitanInMemoryGraph(true); + + configurationManager.setConfiguration(configuration); + ExternalConfiguration.setAppName("catalog-be"); + } + + @Test + public void getArchivedComponents_Empty() { + assertOnGetArchivedComponents(null, 0); + } + + @Test + public void archiveAndGetArchivedComponents_SingleComponent() { + archiveComponent(serviceVertex.getUniqueId(), HttpStatus.OK.value()); + assertOnGetArchivedComponents(ComponentTypeEnum.SERVICE_PARAM_NAME, 1); + } + + @Test + public void attemptArchiveCheckedOutService() { + checkoutComponent(serviceVertex); + archiveComponent(serviceVertex.getUniqueId(), HttpStatus.CONFLICT.value()); + } + + @Test + public void testOnArchivedVsps(){ + String path = "/v1/catalog/notif/vsp/archived"; + List<String> csarIds = new LinkedList<>(); + csarIds.add("123456"); + csarIds.add(CSAR_UUID2); //An archived CSAR ID + Response response = target() + .path(path) + .request(MediaType.APPLICATION_JSON) + .accept(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, designerUser.getUserId()) + .post(Entity.json(csarIds)); + + assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value()); + assertOnVertexProp(resourceVertexVspArchived.getUniqueId(), true); + } + + @Test + public void testOnRestoredVsps(){ + String path = "/v1/catalog/notif/vsp/restored"; + List<String> csarIds = new LinkedList<>(); + csarIds.add("123456"); + csarIds.add(CSAR_UUID1); //Non archived CSAR_ID + Response response = target() + .path(path) + .request(MediaType.APPLICATION_JSON) + .accept(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, designerUser.getUserId()) + .post(Entity.json(csarIds)); + + assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value()); + assertOnVertexProp(resourceVertex.getUniqueId(), false); + } + + /* + * Rainy Scenarios + */ + @Test + public void archiveWithInvalidUid() { + archiveComponent("fakeUid", HttpStatus.NOT_FOUND.value()); + } + + @Test + public void restoreWithInvalidUid() { + restoreComponent("fakeUid", HttpStatus.NOT_FOUND.value()); + } + + @Test + public void archiveWithTester() { + String path = String.format("/v1/catalog/services/%s/%s", serviceVertex.getUniqueId(), "archive"); + Response response = target() + .path(path) + .request() + .accept(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, otherUser.getUserId()) + .post(null); + + assertThat(response.getStatus()).isEqualTo(HttpStatus.UNAUTHORIZED.value()); + } + + private void checkoutComponent(GraphVertex component) { + Either<GraphVertex, TitanOperationStatus> vE = titanDao.getVertexById(component.getUniqueId()); + GraphVertex v = vE.left().value(); + v.addMetadataProperty(GraphPropertyEnum.STATE, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + v.setJsonMetadataField(JsonPresentationFields.LIFECYCLE_STATE, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + titanDao.updateVertex(v); + titanDao.commit(); + } + + private void assertOnVertexProp(String componentId, Object expectedValue) { + Either<GraphVertex, TitanOperationStatus> vE = titanDao.getVertexById(componentId); + GraphVertex v = vE.left().value(); + 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 archiveOrRestoreComponent(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) + .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"; + + Response response = target() + .path(path) + .request() + .accept(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, designerUser.getUserId()) + .get(); + + Map<String, List<CatalogComponent>> archivedComponents = response.readEntity(new GenericType<Map<String, List<CatalogComponent>>>() { }); + assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value()); + + if (componentType == null) { + assertThat(archivedComponents).isEmpty(); + } else { + assertThat(archivedComponents.get(componentType)).hasSize(expectedCount); + } + + } + + @Override + protected Application configure() { + ApplicationContext context = new AnnotationConfigApplicationContext(TestSpringConfig.class); + return new ResourceConfig(ArchiveEndpoint.class) + .register(DefaultExceptionMapper.class) + .register(ComponentExceptionMapper.class) + .register(StorageExceptionMapper.class) + .property("contextConfig", context); + } +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArtifactServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArtifactServletTest.java deleted file mode 100644 index e546fcca55..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ArtifactServletTest.java +++ /dev/null @@ -1,337 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; - - -public class ArtifactServletTest { - - private ArtifactServlet createTestSubject() { - return new ArtifactServlet(); - } - - - @Test - public void testLoadArtifact() throws Exception { - ArtifactServlet testSubject; - String resourceId = ""; - String data = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateArtifact() throws Exception { - ArtifactServlet testSubject; - String resourceId = ""; - String artifactId = ""; - String data = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDeleteArtifact() throws Exception { - ArtifactServlet testSubject; - String resourceId = ""; - String artifactId = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testLoadInformationArtifact() throws Exception { - ArtifactServlet testSubject; - String serviceId = ""; - String data = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateInformationArtifact() throws Exception { - ArtifactServlet testSubject; - String serviceId = ""; - String artifactId = ""; - String data = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateApiArtifact() throws Exception { - ArtifactServlet testSubject; - String serviceId = ""; - String artifactId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - String origMd5 = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDeleteApiArtifact() throws Exception { - ArtifactServlet testSubject; - String serviceId = ""; - String artifactId = ""; - HttpServletRequest request = null; - String userId = ""; - String origMd5 = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDeleteInformationalArtifact() throws Exception { - ArtifactServlet testSubject; - String serviceId = ""; - String artifactId = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDownloadServiceArtifactBase64() throws Exception { - ArtifactServlet testSubject; - String serviceId = ""; - String artifactId = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDownloadResourceArtifactBase64() throws Exception { - ArtifactServlet testSubject; - String resourceId = ""; - String artifactId = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDownloadResourceInstanceArtifactBase64() throws Exception { - ArtifactServlet testSubject; - String containerComponentType = ""; - String componentId = ""; - String componentInstanceId = ""; - String artifactId = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testLoadArtifactToInterface() throws Exception { - ArtifactServlet testSubject; - String resourceId = ""; - String interfaceType = ""; - String operation = ""; - String userId = ""; - String origMd5 = ""; - String data = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDeleteArtifactToInterface() throws Exception { - ArtifactServlet testSubject; - String resourceId = ""; - String interfaceType = ""; - String operation = ""; - String artifactId = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateArtifactToInterface() throws Exception { - ArtifactServlet testSubject; - String resourceId = ""; - String interfaceType = ""; - String operation = ""; - String artifactId = ""; - String userId = ""; - String origMd5 = ""; - HttpServletRequest request = null; - String data = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateRIArtifact() throws Exception { - ArtifactServlet testSubject; - String containerComponentType = ""; - String componentId = ""; - String componentInstanceId = ""; - String artifactId = ""; - String data = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateComponentInstanceArtifact() throws Exception { - ArtifactServlet testSubject; - String userId = ""; - String origMd5 = ""; - String containerComponentType = ""; - String componentId = ""; - String componentInstanceId = ""; - String artifactId = ""; - String data = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testLoadComponentInstanceArtifact() throws Exception { - ArtifactServlet testSubject; - String userId = ""; - String origMd5 = ""; - String containerComponentType = ""; - String componentId = ""; - String componentInstanceId = ""; - String data = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDeleteComponentInstanceArtifact() throws Exception { - ArtifactServlet testSubject; - String userId = ""; - String origMd5 = ""; - String containerComponentType = ""; - String componentId = ""; - String componentInstanceId = ""; - String artifactId = ""; - String data = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetComponentArtifacts() throws Exception { - ArtifactServlet testSubject; - String containerComponentType = ""; - String componentId = ""; - String artifactGroupType = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetComponentInstanceArtifacts() throws Exception { - ArtifactServlet testSubject; - String containerComponentType = ""; - String componentId = ""; - String componentInstanceId = ""; - String artifactGroupType = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AttributeServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AttributeServletTest.java deleted file mode 100644 index 692158b881..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AttributeServletTest.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; -import org.openecomp.sdc.be.model.PropertyDefinition; -import org.openecomp.sdc.exception.ResponseFormat; - -import com.google.common.base.Equivalence.Wrapper; - -public class AttributeServletTest { - - private AttributeServlet createTestSubject() { - return new AttributeServlet(); - } - - - @Test - public void testCreateAttribute() throws Exception { - AttributeServlet testSubject; - String resourceId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testUpdateAttribute() throws Exception { - AttributeServlet testSubject; - String resourceId = ""; - String attributeId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testDeleteAttribute() throws Exception { - AttributeServlet testSubject; - String resourceId = ""; - String attributeId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testBuildAttributeFromString() throws Exception { - AttributeServlet testSubject;String data = ""; - Wrapper<PropertyDefinition> attributesWrapper = null; - Wrapper<ResponseFormat> errorWrapper = null; - - - // default test - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AutomatedUpgradeEndpointTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AutomatedUpgradeEndpointTest.java new file mode 100644 index 0000000000..2a959ec843 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/AutomatedUpgradeEndpointTest.java @@ -0,0 +1,292 @@ +package org.openecomp.sdc.be.servlets; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import fj.data.Either; +import org.glassfish.jersey.client.ClientConfig; +import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJaxbJsonProvider; +import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJsonProvider; +import org.glassfish.jersey.server.ResourceConfig; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; +import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic; +import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoWithAction; +import org.openecomp.sdc.be.components.upgrade.ServiceInfo; +import org.openecomp.sdc.be.components.upgrade.UpgradeBusinessLogic; +import org.openecomp.sdc.be.components.upgrade.UpgradeRequest; +import org.openecomp.sdc.be.components.upgrade.UpgradeStatus; +import org.openecomp.sdc.be.components.validation.UserValidations; +import org.openecomp.sdc.be.config.ConfigurationManager; +import org.openecomp.sdc.be.dao.api.ActionStatus; +import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; +import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum; +import org.openecomp.sdc.be.impl.ComponentsUtils; +import org.openecomp.sdc.be.model.*; +import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade; +import org.openecomp.sdc.be.model.jsontitan.operations.UpgradeOperation; +import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; +import org.openecomp.sdc.common.api.ConfigurationSource; +import org.openecomp.sdc.common.api.Constants; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; +import org.openecomp.sdc.exception.ResponseFormat; +import org.openecomp.sdc.exception.ServiceException; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Import; +import org.springframework.http.HttpStatus; + +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.Invocation; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.ArrayList; +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.*; + +public class AutomatedUpgradeEndpointTest extends JerseySpringBaseTest { + static ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); + static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + + private static final String RESOURCE_ID_PREV = "prevVF"; + private static final String RESOURCE_ID_NEW = "newVF"; + private static final String SERVICE_ID_PREV = "prevSer"; + private static final String SERVICE_ID_NEW = "newSer"; + private static final String SERVICE_ID_PROXY = "serProxy"; + private static final String SERVICE_ID_PROXY_PREV = "serProxyContainerPrev"; + private static final String SERVICE_ID_PROXY_NEW = "serProxyContainerNew"; + private static final String INVARIANT_ID = "invariantUUID"; + private static final String USER_ID = "userId"; + + private static LifecycleBusinessLogic lifecycleBusinessLogic; + private static ComponentInstanceBusinessLogic componentInstanceBusinessLogic; + private static UserValidations userValidations; + private static ToscaOperationFacade toscaOperationFacade; + private static ComponentsUtils componentsUtils; + private static UpgradeOperation upgradeOperation; + private static TitanDao titanDao; + + private static User user; + private static Resource vfPrev; + private static Resource vfNew; + private static Service servicePrev; + private static Service serviceNew; + private static Service serviceNewCheckIn; + private static ComponentInstance istanceNew; + + private static Service serviceProxy; + private static Service serviceProxyContainerPrev; + private static Service serviceProxyContainerNew; + + @org.springframework.context.annotation.Configuration + @Import(BaseTestConfig.class) + static class AutomatedUpgradeTestConfig { + + @Bean + AutomatedUpgradeEndpoint automatedUpgradeEndpoint() { + return new AutomatedUpgradeEndpoint(upgradeBusinessLogic()); + } + + @Bean + UpgradeBusinessLogic upgradeBusinessLogic() { + return new UpgradeBusinessLogic(lifecycleBusinessLogic, componentInstanceBusinessLogic, userValidations, toscaOperationFacade, componentsUtils, upgradeOperation, titanDao); + } + } + + @BeforeClass + public static void initClass() { + lifecycleBusinessLogic = mock(LifecycleBusinessLogic.class); + componentInstanceBusinessLogic = mock(ComponentInstanceBusinessLogic.class); + userValidations = mock(UserValidations.class); + toscaOperationFacade = mock(ToscaOperationFacade.class); + componentsUtils = mock(ComponentsUtils.class); + upgradeOperation = mock(UpgradeOperation.class); + titanDao = mock(TitanDao.class); + user = mock(User.class); + } + + @Before + public void init() { + prepareComponents(); + when(userValidations.validateUserExists(eq(USER_ID), anyString(), anyBoolean())).thenReturn(user); + when(toscaOperationFacade.getToscaFullElement(eq(RESOURCE_ID_PREV))).thenReturn(Either.left(vfPrev)); + when(toscaOperationFacade.getToscaFullElement(eq(RESOURCE_ID_NEW))).thenReturn(Either.left(vfNew)); + when(toscaOperationFacade.getToscaFullElement(eq(SERVICE_ID_PREV))).thenReturn(Either.left(servicePrev)); + when(toscaOperationFacade.getToscaFullElement(eq(SERVICE_ID_NEW))).thenReturn(Either.left(serviceNew)); + + Either<Service, ResponseFormat> fromLifeCycle = Either.left(serviceNew); + doReturn(fromLifeCycle).when(lifecycleBusinessLogic).changeComponentState(eq(ComponentTypeEnum.SERVICE), eq(SERVICE_ID_PREV), any(User.class), eq(LifeCycleTransitionEnum.CHECKOUT), any(LifecycleChangeInfoWithAction.class), eq(false), + eq(true)); + + when(toscaOperationFacade.getToscaElement(eq(RESOURCE_ID_PREV), any(ComponentParametersView.class))).thenReturn(Either.left(vfPrev)); + when(componentInstanceBusinessLogic.changeInstanceVersion(any(Service.class), any(ComponentInstance.class), any(ComponentInstance.class), any(User.class), eq(ComponentTypeEnum.SERVICE))).thenReturn(Either.left(istanceNew)); + + doReturn(Either.left(serviceNewCheckIn)).when(lifecycleBusinessLogic).changeComponentState(eq(ComponentTypeEnum.SERVICE), eq(SERVICE_ID_NEW), any(User.class), eq(LifeCycleTransitionEnum.CHECKIN), any(LifecycleChangeInfoWithAction.class), + eq(false), eq(true)); + + } + + @Override + protected void configureClient(ClientConfig config) { + final JacksonJsonProvider jacksonJsonProvider = new JacksonJaxbJsonProvider().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + config.register(jacksonJsonProvider); + } + + @Override + protected ResourceConfig configure() { + return super.configure(AutomatedUpgradeTestConfig.class).register(AutomatedUpgradeEndpoint.class); + } + + @Test + public void upgradeVfInService_success() { + List<UpgradeRequest> inputsToUpdate = new ArrayList<>(); + UpgradeRequest request = new UpgradeRequest(SERVICE_ID_PREV); + inputsToUpdate.add(request); + + Invocation.Builder builder = buildAutomatedUpgradeCall(RESOURCE_ID_NEW); + UpgradeStatus status = builder.post(Entity.entity(inputsToUpdate, MediaType.APPLICATION_JSON), UpgradeStatus.class); + + assertThat(status.getStatus()).isEqualTo(ActionStatus.OK); + List<ServiceInfo> expected = new ArrayList<>(); + ServiceInfo serviceInfo = new ServiceInfo(serviceNewCheckIn.getUniqueId(), ActionStatus.OK); + serviceInfo.setName(serviceNewCheckIn.getName()); + serviceInfo.setVersion(serviceNewCheckIn.getVersion()); + expected.add(serviceInfo); + assertThat(status.getComponentToUpgradeStatus()).hasSameSizeAs(expected); + assertThat(status.getComponentToUpgradeStatus()).hasSameElementsAs(expected); + + } + + @Test + public void upgradeVfInService_IdNotExist() { + List<UpgradeRequest> inputsToUpdate = new ArrayList<>(); + UpgradeRequest request = new UpgradeRequest(SERVICE_ID_PREV); + inputsToUpdate.add(request); + String wrongId = "1234"; + when(toscaOperationFacade.getToscaFullElement(eq(wrongId))).thenReturn(Either.right(StorageOperationStatus.NOT_FOUND)); + when(componentsUtils.convertFromStorageResponse(eq(StorageOperationStatus.NOT_FOUND))).thenReturn(ActionStatus.RESOURCE_NOT_FOUND); + String[] variables = { wrongId }; + ServiceException serviceException = new ServiceException("SVC4063", "Error: Requested '%1' resource was not found.", variables); + ResponseFormat expected = new ResponseFormat(HttpStatus.NOT_FOUND.value()); + expected.setServiceException(serviceException); + when(componentsUtils.getResponseFormatByResource(eq(ActionStatus.RESOURCE_NOT_FOUND), eq(wrongId))).thenReturn(expected); + + Response response = buildAutomatedUpgradeCall(wrongId).post(Entity.entity(inputsToUpdate, MediaType.APPLICATION_JSON), Response.class); + assertThat(response.getStatus()).isEqualTo(HttpStatus.NOT_FOUND.value()); + + ResponseFormat actual = response.readEntity(ResponseFormat.class); + assertThat(actual.getMessageId()).isEqualTo(expected.getMessageId()); + assertThat(actual.getFormattedMessage()).isEqualTo(expected.getFormattedMessage()); + + } + + @Test + public void upgradeVfInService_NotHihgestCertified() { + List<UpgradeRequest> inputsToUpdate = new ArrayList<>(); + UpgradeRequest request = new UpgradeRequest(RESOURCE_ID_PREV); + inputsToUpdate.add(request); + + when(componentsUtils.convertFromStorageResponse(eq(StorageOperationStatus.NOT_FOUND))).thenReturn(ActionStatus.RESOURCE_NOT_FOUND); + String[] variables = { vfPrev.getName() }; + ServiceException serviceException = new ServiceException("SVC4699", "Error: Component %1 is not highest certified", variables); + ResponseFormat expected = new ResponseFormat(HttpStatus.BAD_REQUEST.value()); + expected.setServiceException(serviceException); + when(componentsUtils.getResponseFormat(eq(ActionStatus.COMPONENT_IS_NOT_HIHGEST_CERTIFIED), eq(vfPrev.getName()))).thenReturn(expected); + + Response response = buildAutomatedUpgradeCall(RESOURCE_ID_PREV).post(Entity.entity(inputsToUpdate, MediaType.APPLICATION_JSON), Response.class); + assertThat(response.getStatus()).isEqualTo(HttpStatus.BAD_REQUEST.value()); + + ResponseFormat actual = response.readEntity(ResponseFormat.class); + assertThat(actual.getMessageId()).isEqualTo(expected.getMessageId()); + assertThat(actual.getFormattedMessage()).isEqualTo(expected.getFormattedMessage()); + } + +// @Test +// public void upgradeProxyInService_successful() { +// List<UpgradeRequest> inputsToUpdate = new ArrayList<>(); +// UpgradeRequest request = new UpgradeRequest(SERVICE_ID_PROXY_PREV); +// inputsToUpdate.add(request); +// +// when(toscaOperationFacade.getToscaElement(eq(SERVICE_ID_PROXY))).thenReturn(Either.left(serviceProxy)); +// +// UpgradeStatus status = buildAutomatedUpgradeCall(SERVICE_ID_PROXY).post(Entity.entity(inputsToUpdate, MediaType.APPLICATION_JSON), UpgradeStatus.class); +// assertThat(status.getStatus()).isEqualTo(ActionStatus.OK); +// } + + private Invocation.Builder buildAutomatedUpgradeCall(String id) { + return target("/v1/catalog/resources/{id}/automatedupgrade").resolveTemplate("id", id).request(MediaType.APPLICATION_JSON).header(Constants.USER_ID_HEADER, USER_ID); + } + + private void prepareComponents() { + createVF(); + + createService(); + } + + private void createService() { + servicePrev = createService("service1", SERVICE_ID_PREV, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); + + ComponentInstance ci = new ComponentInstance(); + ci.setComponentUid(RESOURCE_ID_PREV); + ci.setName("inst 1"); + List<ComponentInstance> resourceInstances = new ArrayList<>(); + resourceInstances.add(ci); + servicePrev.setComponentInstances(resourceInstances); + + serviceNew = createService("service1", SERVICE_ID_NEW, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + serviceNew.setComponentInstances(resourceInstances); + + serviceNewCheckIn = createService("service1", SERVICE_ID_NEW, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); + + serviceNewCheckIn.setComponentInstances(resourceInstances); + + istanceNew = new ComponentInstance(); + istanceNew.setComponentUid(RESOURCE_ID_NEW); + istanceNew.setName("inst 1"); + + serviceProxy = createService("serviceProxy", SERVICE_ID_PROXY, LifecycleStateEnum.CERTIFIED); + serviceProxyContainerPrev = createService("serviceProxyContainer", SERVICE_ID_PROXY_PREV, LifecycleStateEnum.NOT_CERTIFIED_CHECKIN); + serviceProxyContainerNew = createService("serviceProxyContainer", SERVICE_ID_PROXY_NEW, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT); + + + + } + + private Service createService(String name, String id, LifecycleStateEnum state){ + Service service = new Service(); + service.setName(name); + service.setUniqueId(id); + service.setLifecycleState(state); + service.setHighestVersion(true); + return service; + } + private void createVF() { + vfPrev = new Resource(); + vfPrev.setName("vf1"); + vfPrev.setUniqueId(RESOURCE_ID_PREV); + vfPrev.setLifecycleState(LifecycleStateEnum.CERTIFIED); + vfPrev.setHighestVersion(false); + vfPrev.setResourceType(ResourceTypeEnum.VF); + vfPrev.setVersion("1.0"); + vfPrev.setInvariantUUID(INVARIANT_ID); + vfPrev.setComponentType(ComponentTypeEnum.RESOURCE); + + vfNew = new Resource(); + vfNew.setName("vf1"); + vfNew.setUniqueId(RESOURCE_ID_PREV); + vfNew.setLifecycleState(LifecycleStateEnum.CERTIFIED); + vfNew.setHighestVersion(true); + vfNew.setResourceType(ResourceTypeEnum.VF); + vfNew.setVersion("2.0"); + vfNew.setInvariantUUID(INVARIANT_ID); + vfNew.setComponentType(ComponentTypeEnum.RESOURCE); + + } +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/BaseTestConfig.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/BaseTestConfig.java index 8378a71b4c..42dbcc6635 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/BaseTestConfig.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/BaseTestConfig.java @@ -1,11 +1,14 @@ package org.openecomp.sdc.be.servlets; -import static org.mockito.Mockito.mock; - import org.openecomp.sdc.be.auditing.impl.AuditingManager; import org.openecomp.sdc.be.impl.ComponentsUtils; +import org.openecomp.sdc.be.servlets.exception.ComponentExceptionMapper; +import org.openecomp.sdc.be.servlets.exception.DefaultExceptionMapper; +import org.openecomp.sdc.be.servlets.exception.StorageExceptionMapper; import org.springframework.context.annotation.Bean; +import static org.mockito.Mockito.mock; + public class BaseTestConfig { @Bean diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentInstanceServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentInstanceServletTest.java index 5d85f52351..0c91b49fee 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentInstanceServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentInstanceServletTest.java @@ -1,15 +1,6 @@ package org.openecomp.sdc.be.servlets; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - +import fj.data.Either; import org.eclipse.jetty.http.HttpStatus; import org.glassfish.hk2.utilities.binding.AbstractBinder; import org.glassfish.jersey.server.ResourceConfig; @@ -32,7 +23,16 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.web.context.WebApplicationContext; -import fj.data.Either; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; /** * The test suite designed for test functionality of ComponentInstanceServlet class @@ -73,7 +73,7 @@ public class ComponentInstanceServletTest extends JerseyTest { .header("USER_ID", USER_ID) .get( Response.class); - assertTrue(response.getStatus() == HttpStatus.OK_200); + assertEquals(response.getStatus(), HttpStatus.OK_200); } @Test @@ -91,7 +91,7 @@ public class ComponentInstanceServletTest extends JerseyTest { .header("USER_ID", USER_ID) .get( Response.class); - assertTrue(response.getStatus() == HttpStatus.BAD_REQUEST_400); + assertEquals(response.getStatus(), HttpStatus.BAD_REQUEST_400); } @Override diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentServletTest.java index 7159f2e035..a074af2f21 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ComponentServletTest.java @@ -1,143 +1,107 @@ package org.openecomp.sdc.be.servlets; -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - +import fj.data.Either; +import org.glassfish.jersey.server.ResourceConfig; +import org.json.JSONArray; +import org.json.JSONObject; +import org.junit.Before; import org.junit.Test; - -public class ComponentServletTest { - - private ComponentServlet createTestSubject() { - return new ComponentServlet(); - } - - - @Test - public void testConformanceLevelValidation() throws Exception { - ComponentServlet testSubject; - String componentType = ""; - String componentUuid = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetRequirementAndCapabilities() throws Exception { - ComponentServlet testSubject; - String componentType = ""; - String componentId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetLatestVersionNotAbstractCheckoutComponents() throws Exception { - ComponentServlet testSubject; - String componentType = ""; - HttpServletRequest request = null; - String internalComponentType = ""; - List<String> componentUids = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetLatestVersionNotAbstractCheckoutComponentsByBody() throws Exception { - ComponentServlet testSubject; - String componentType = ""; - HttpServletRequest request = null; - String internalComponentType = ""; - String userId = ""; - List<String> data = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetLatestVersionNotAbstractCheckoutComponentsIdesOnly() throws Exception { - ComponentServlet testSubject; - String componentType = ""; - HttpServletRequest request = null; - String internalComponentType = ""; - String userId = ""; - String data = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetComponentInstancesFilteredByPropertiesAndInputs() throws Exception { - ComponentServlet testSubject; - String componentType = ""; - String componentId = ""; - HttpServletRequest request = null; - String searchText = ""; - String userId = ""; - String data = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetComponentDataFilteredByParams() throws Exception { - ComponentServlet testSubject; - String componentType = ""; - String componentId = ""; - List<String> dataParamsToReturn = null; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetFilteredComponentInstanceProperties() throws Exception { - ComponentServlet testSubject; - String componentType = ""; - String componentId = ""; - String propertyNameFragment = ""; - List<String> resourceTypes = null; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } +import org.openecomp.sdc.be.components.impl.ComponentBusinessLogicProvider; +import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic; +import org.openecomp.sdc.be.components.utils.PolicyDefinitionBuilder; +import org.openecomp.sdc.be.model.PolicyDefinition; +import org.openecomp.sdc.be.model.User; +import org.openecomp.sdc.be.ui.model.UiComponentDataTransfer; +import org.openecomp.sdc.common.api.Constants; + +import javax.ws.rs.client.Invocation; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.Collections; + +import static java.util.Arrays.asList; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class ComponentServletTest extends JerseySpringBaseTest{ + + private static final String USER_ID = "userId"; + private static final String RESOURCE_ID = "resourceId"; + private ResourceBusinessLogic resourceBusinessLogic; + private PolicyDefinition policy1, policy2; + + @Override + @Before + public void setUp() throws Exception { + super.setUp(); + policy1 = buildPolicy("p1"); + policy2 = buildPolicy("p2"); + } + + @Override + protected ResourceConfig configure() { + resourceBusinessLogic = mock(ResourceBusinessLogic.class); + ComponentServlet componentServlet = new ComponentServlet(new ComponentBusinessLogicProvider(resourceBusinessLogic, null, null)); + return super.configure().register(componentServlet); + } + + @Test + public void filterDataByParam_getPolicies_returnOnlyNameTargetsAndIdFields() { + UiComponentDataTransfer dataTransfer = buildDataTransferWithPolicies(); + when(resourceBusinessLogic.getComponentDataFilteredByParams(eq(RESOURCE_ID.toLowerCase()), any(User.class), eq(Collections.singletonList("policies")))).thenReturn(Either.left(dataTransfer)); + UiComponentDataTransfer uiComponentDataTransfer = buildGetPolicyTypesCall().get(UiComponentDataTransfer.class); + assertThat(uiComponentDataTransfer.getPolicies()) + .usingElementComparatorOnFields("name", "uniqueId", "targets") + .containsExactlyInAnyOrder(policy1, policy2) + .extracting("properties")//properties is not returned in the response + .containsExactly(null, null); + } + + @Test + public void filterDataByParam_getPolicies_policyTypeNameFieldShouldReturnAsType() { + UiComponentDataTransfer dataTransfer = buildDataTransferWithPolicies(); + when(resourceBusinessLogic.getComponentDataFilteredByParams(eq(RESOURCE_ID.toLowerCase()), any(User.class), eq(Collections.singletonList("policies")))).thenReturn(Either.left(dataTransfer)); + Response uiComponentDataTransfer = buildGetPolicyTypesCall().get(); + verifyPolicyTypeFieldUsingJsonResponse(uiComponentDataTransfer); + } + + private void verifyPolicyTypeFieldUsingJsonResponse(Response uiComponentDataTransfer) { + JSONObject json = new JSONObject(uiComponentDataTransfer.readEntity(String.class)); + JSONArray policies = json.getJSONArray("policies"); + for (int i = 0; i < policies.length(); i++) { + JSONObject policy = policies.getJSONObject(i); + String policyId = policy.get("uniqueId").toString(); + assertThat(policy.get("type")).isEqualTo("type" + policyId); + } + } + + private UiComponentDataTransfer buildDataTransferWithPolicies() { + UiComponentDataTransfer res = new UiComponentDataTransfer(); + res.setPolicies(asList(policy1, policy2)); + return res; + } + + private PolicyDefinition buildPolicy(String id) { + return PolicyDefinitionBuilder.create() + .setUniqueId(id) + .setName("name" + id) + .setType("type" + id) + .addGroupTarget("group1") + .addGroupTarget("group2") + .addComponentInstanceTarget("inst1") + .addComponentInstanceTarget("inst2") + .addProperty("prop1") + .build(); + } + + private Invocation.Builder buildGetPolicyTypesCall() { + return target("/v1/catalog/resources/{id}/filteredDataByParams") + .queryParam("include", "policies") + .resolveTemplate("id", RESOURCE_ID) + .request(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, USER_ID); + } }
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConfigMgrServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConfigMgrServletTest.java deleted file mode 100644 index 4c7caa63e6..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConfigMgrServletTest.java +++ /dev/null @@ -1,82 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import javax.servlet.http.HttpServletRequest; - -import org.junit.Test; - -import com.datastax.driver.core.Configuration; - -public class ConfigMgrServletTest { - - private ConfigMgrServlet createTestSubject() { - return new ConfigMgrServlet(); - } - - - @Test - public void testGetConfig() throws Exception { - ConfigMgrServlet testSubject; - HttpServletRequest request = null; - String type = ""; - String result; - - // test 1 - testSubject = createTestSubject(); - type = null; - - - // test 2 - testSubject = createTestSubject(); - type = ""; - - // test 3 - testSubject = createTestSubject(); - type = "configuration"; - } - - - @Test - public void testSetConfig1() throws Exception { - ConfigMgrServlet testSubject; - HttpServletRequest request = null; - Configuration configuration = null; - String result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testSetConfig2() throws Exception { - ConfigMgrServlet testSubject; - HttpServletRequest request = null; - Configuration configuration = null; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testSetConfig3() throws Exception { - ConfigMgrServlet testSubject; - HttpServletRequest request = null; - Configuration configuration = null; - String result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testSetConfig4() throws Exception { - ConfigMgrServlet testSubject; - HttpServletRequest request = null; - Configuration configuration = null; - - // default test - testSubject = createTestSubject(); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConfigServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConfigServletTest.java deleted file mode 100644 index 2593474f2b..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConfigServletTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import javax.servlet.http.HttpServletRequest; - -import org.junit.Test; - -public class ConfigServletTest { - - private ConfigServlet createTestSubject() { - return new ConfigServlet(); - } - - - @Test - public void testGetConfig() throws Exception { - ConfigServlet testSubject; - HttpServletRequest request = null; - String result; - - // default test - testSubject = createTestSubject(); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConsumerServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConsumerServletTest.java deleted file mode 100644 index 14b34a206e..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ConsumerServletTest.java +++ /dev/null @@ -1,84 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; -import org.openecomp.sdc.be.components.impl.ConsumerBusinessLogic; -import org.openecomp.sdc.be.model.ConsumerDefinition; -import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum; -import org.openecomp.sdc.exception.ResponseFormat; - -import fj.data.Either; - -public class ConsumerServletTest { - - private ConsumerServlet createTestSubject() { - return new ConsumerServlet(); - } - - - @Test - public void testCreateConsumer() throws Exception { - ConsumerServlet testSubject; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetConsumer() throws Exception { - ConsumerServlet testSubject; - String consumerId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testDeleteConsumer() throws Exception { - ConsumerServlet testSubject; - String consumerId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetConsumerBL() throws Exception { - ConsumerServlet testSubject; - ServletContext context = null; - ConsumerBusinessLogic result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testConvertJsonToObject() throws Exception { - ConsumerServlet testSubject; - String data = ""; - User user = null; - AuditingActionEnum actionEnum = null; - Either<ConsumerDefinition, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/CsarBuildServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/CsarBuildServletTest.java deleted file mode 100644 index 930fe88339..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/CsarBuildServletTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; - - -public class CsarBuildServletTest { - - private CsarBuildServlet createTestSubject() { - return new CsarBuildServlet(); - } - - - @Test - public void testGetDefaultTemplate() throws Exception { - CsarBuildServlet testSubject; - HttpServletRequest request = null; - String serviceName = ""; - String serviceVersion = ""; - Response result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getDefaultTemplate(request, serviceName, serviceVersion); - } - - - @Test - public void testGetToscaCsarTemplate() throws Exception { - CsarBuildServlet testSubject; - HttpServletRequest request = null; - String serviceName = ""; - String serviceVersion = ""; - Response result; - - // default test - testSubject = createTestSubject(); - result = testSubject.getToscaCsarTemplate(request, serviceName, serviceVersion); - } - - - -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/DistributionServiceServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/DistributionServiceServletTest.java deleted file mode 100644 index d022faabcd..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/DistributionServiceServletTest.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; -import org.openecomp.sdc.be.components.impl.DistributionMonitoringBusinessLogic; - -public class DistributionServiceServletTest { - - private DistributionServiceServlet createTestSubject() { - return new DistributionServiceServlet(); - } - - - @Test - public void testGetServiceById() throws Exception { - DistributionServiceServlet testSubject; - String serviceUUID = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetListOfDistributionStatuses() throws Exception { - DistributionServiceServlet testSubject; - String did = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testInit() throws Exception { - DistributionServiceServlet testSubject; - HttpServletRequest request = null; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetDistributionBL() throws Exception { - DistributionServiceServlet testSubject; - ServletContext context = null; - DistributionMonitoringBusinessLogic result; - - // default test - testSubject = createTestSubject(); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ElementServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ElementServletTest.java deleted file mode 100644 index 31068ccd17..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ElementServletTest.java +++ /dev/null @@ -1,243 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import java.util.List; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; -import org.openecomp.sdc.be.datatypes.enums.OriginTypeEnum; - -public class ElementServletTest { - - private ElementServlet createTestSubject() { - return new ElementServlet(); - } - - - @Test - public void testGetComponentCategories() throws Exception { - ElementServlet testSubject; - String componentType = ""; - String userId = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetAllCategories() throws Exception { - ElementServlet testSubject; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testCreateComponentCategory() throws Exception { - ElementServlet testSubject; - String componentType = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDeleteComponentCategory() throws Exception { - ElementServlet testSubject; - String categoryUniqueId = ""; - String componentType = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testCreateComponentSubCategory() throws Exception { - ElementServlet testSubject; - String componentType = ""; - String categoryId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDeleteComponentSubCategory() throws Exception { - ElementServlet testSubject; - String categoryUniqueId = ""; - String subCategoryUniqueId = ""; - String componentType = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testCreateComponentGrouping() throws Exception { - ElementServlet testSubject; - String componentType = ""; - String grandParentCategoryId = ""; - String parentSubCategoryId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDeleteComponentGrouping() throws Exception { - ElementServlet testSubject; - String grandParentCategoryUniqueId = ""; - String parentSubCategoryUniqueId = ""; - String groupingUniqueId = ""; - String componentType = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetTags() throws Exception { - ElementServlet testSubject; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetPropertyScopes() throws Exception { - ElementServlet testSubject; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetArtifactTypes() throws Exception { - ElementServlet testSubject; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetConfiguration() throws Exception { - ElementServlet testSubject; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetFollowedResourcesServices() throws Exception { - ElementServlet testSubject; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetCatalogComponents() throws Exception { - ElementServlet testSubject; - HttpServletRequest request = null; - String userId = ""; - List<OriginTypeEnum> excludeTypes = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDeleteMarkedResources() throws Exception { - ElementServlet testSubject; - String componentType = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetListOfCsars() throws Exception { - ElementServlet testSubject; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupEndpointTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupEndpointTest.java new file mode 100644 index 0000000000..38373bdb08 --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupEndpointTest.java @@ -0,0 +1,239 @@ +package org.openecomp.sdc.be.servlets; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import fj.data.Either; +import org.assertj.core.api.AssertionsForClassTypes; +import org.glassfish.jersey.client.ClientConfig; +import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJaxbJsonProvider; +import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJsonProvider; +import org.glassfish.jersey.logging.LoggingFeature; +import org.glassfish.jersey.server.ResourceConfig; +import org.junit.Before; +import org.junit.BeforeClass; +import org.junit.Test; +import org.mockito.invocation.InvocationOnMock; +import org.mockito.stubbing.Answer; +import org.openecomp.sdc.be.components.impl.GroupBusinessLogicNew; +import org.openecomp.sdc.be.components.validation.AccessValidations; +import org.openecomp.sdc.be.components.validation.ComponentValidations; +import org.openecomp.sdc.be.config.ConfigurationManager; +import org.openecomp.sdc.be.datatypes.elements.PropertyDataDefinition; +import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; +import org.openecomp.sdc.be.model.ComponentInstance; +import org.openecomp.sdc.be.model.GroupDefinition; +import org.openecomp.sdc.be.model.GroupProperty; +import org.openecomp.sdc.be.model.Resource; +import org.openecomp.sdc.be.model.jsontitan.operations.GroupsOperation; +import org.openecomp.sdc.be.model.operations.StorageException; +import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus; +import org.openecomp.sdc.be.model.operations.impl.GroupOperation; +import org.openecomp.sdc.common.api.ConfigurationSource; +import org.openecomp.sdc.common.api.Constants; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.http.HttpStatus; + +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.Invocation; +import javax.ws.rs.core.GenericType; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Optional; + +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.ArgumentMatchers.isA; +import static org.mockito.Mockito.anyList; +import static org.mockito.Mockito.*; +import static org.openecomp.sdc.be.model.operations.api.StorageOperationStatus.NOT_FOUND; + +public class GroupEndpointTest extends JerseySpringBaseTest { + + private static final String VALID_USER = "ab001"; + private static final String INVALID_USER = "ab002"; + private static final String VALID_COMPONENT_ID = "12345"; + private static final String INVALID_COMPONENT_ID = "9999"; + private static final String VALID_GROUP_ID = "1"; + private static final String INVALID_GROUP_ID = "2"; + public static final String A = "a"; + private static final String VL1 = "VL1"; + private static final String OLD_VALUE = "old value"; + private static AccessValidations accessValidations; + private static ComponentValidations componentValidations; + private static GroupsOperation groupsOperation; + private static GroupOperation groupOperation; + private Resource cr; + private GroupDefinition g1; + private ComponentInstance ci; + private GroupProperty gp1; + + @Configuration + @Import(BaseTestConfig.class) + static class GroupEndpointTestConfig { + + @Bean + GroupEndpoint groupEndpoint() { + return new GroupEndpoint(groupBusinessLogic()); + } + + @Bean + GroupBusinessLogicNew groupBusinessLogic() { + return new GroupBusinessLogicNew(accessValidations, componentValidations, groupsOperation, groupOperation); + } + } + + @BeforeClass + public static void initClass() { + ExternalConfiguration.setAppName("catalog-be"); + String appConfigDir = "src/test/resources/config/catalog-be"; + ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); + ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + //ComponentsUtils needs configuration singleton to be set + componentValidations = mock(ComponentValidations.class); + accessValidations = mock(AccessValidations.class); + groupsOperation = mock(GroupsOperation.class); + groupOperation = mock(GroupOperation.class); + + } + + @Override + protected void configureClient(ClientConfig config) { + final JacksonJsonProvider jacksonJsonProvider = new JacksonJaxbJsonProvider() + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + config.register(jacksonJsonProvider); + } + + @Override + protected ResourceConfig configure() { + return super.configure(GroupEndpointTestConfig.class) + .register(GroupEndpoint.class) + .property(LoggingFeature.LOGGING_FEATURE_LOGGER_LEVEL_SERVER, "WARNING"); + } + + @Before + public void init() { + cr = new Resource(); + cr.setSystemName("CR1"); + g1 = new GroupDefinition(); + g1.setUniqueId(VALID_GROUP_ID); + gp1 = new GroupProperty(); + gp1.setUniqueId("1"); + gp1.setName("p1"); + gp1.setValue(OLD_VALUE); + g1.setProperties(Arrays.asList(gp1)); + cr.setGroups(Arrays.asList(g1)); + ci = new ComponentInstance(); + ci.setUniqueId(A); + ci.setName(VL1); + happyScenarioSetup(); + unhappyScenarioSetup(); + } + + private void unhappyScenarioSetup() { + when(accessValidations.validateUserCanWorkOnComponent(eq(INVALID_COMPONENT_ID), eq(ComponentTypeEnum.RESOURCE), eq(VALID_USER), anyString())).thenThrow(new StorageException(NOT_FOUND, INVALID_COMPONENT_ID)); + when(componentValidations.getComponentInstance(cr, A)).thenReturn(Optional.of(ci)); + } + + + private void happyScenarioSetup() { + when(accessValidations.validateUserCanWorkOnComponent(eq(VALID_COMPONENT_ID), any(ComponentTypeEnum.class), eq(VALID_USER), anyString())).thenReturn(cr); + when(accessValidations.validateUserCanRetrieveComponentData(eq(VALID_COMPONENT_ID), eq("resources"), eq(VALID_USER), anyString())) + .thenReturn(cr); + when(componentValidations.getComponentInstance(cr, A)).thenReturn(Optional.of(ci)); + doNothing().when(groupsOperation).updateGroupOnComponent(eq(VALID_COMPONENT_ID), isA(GroupDefinition.class)); + when(groupOperation.validateAndUpdatePropertyValue(isA(GroupProperty.class))).thenReturn(StorageOperationStatus.OK); + when(groupsOperation.updateGroupPropertiesOnComponent(eq(VALID_COMPONENT_ID), isA(GroupDefinition.class), anyList())).thenAnswer(new Answer<Either>() { + @Override + public Either answer(InvocationOnMock invocationOnMock) throws Throwable { + Object[] args = invocationOnMock.getArguments(); + return Either.left(Arrays.asList(args[2])); + } + }); + } + + @Test + public void updateGroupMembers_success() { + List<String> ids = Arrays.asList(A); + List<String> updatedIds = buildUpdateGroupMembersCall(VALID_COMPONENT_ID, VALID_GROUP_ID, VALID_USER) + .post(Entity.entity(ids, MediaType.APPLICATION_JSON), new GenericType<List<String>>() { + }); + assertThat(updatedIds.size()).isEqualTo(ids.size()); + assertThat(updatedIds).containsExactlyInAnyOrder(ids.toArray(new String[ids.size()])); + } + + @Test + public void updateGroupMembersWith2IdenticalMembers_success() { + List<String> ids = Arrays.asList(A, A); + List<String> updatedIds = buildUpdateGroupMembersCall(VALID_COMPONENT_ID, VALID_GROUP_ID, VALID_USER) + .post(Entity.entity(ids, MediaType.APPLICATION_JSON), new GenericType<List<String>>() { + }); + assertThat(updatedIds.size()).isEqualTo(1); + assertThat(updatedIds).containsExactlyInAnyOrder(String.valueOf(A)); + } + + @Test + public void updateGroupMembersWithEmptyList_success() { + List<String> ids = new ArrayList<>(); + List<String> updatedIds = buildUpdateGroupMembersCall(VALID_COMPONENT_ID, VALID_GROUP_ID, VALID_USER) + .post(Entity.entity(ids, MediaType.APPLICATION_JSON), new GenericType<List<String>>() { + }); + assertThat(updatedIds.size()).isEqualTo(0); + } + + @Test + public void updateGroupMember_InvalidComponentId_failure() { + List<String> ids = new ArrayList<>(); + Response response = buildUpdateGroupMembersCall(INVALID_COMPONENT_ID, VALID_GROUP_ID, VALID_USER) + .post(Entity.entity(ids, MediaType.APPLICATION_JSON), Response.class); + AssertionsForClassTypes.assertThat(response.getStatus()).isEqualTo(HttpStatus.NOT_FOUND.value()); + } + + @Test + public void updateGroupProperty_success() { + GroupProperty property = new GroupProperty(); + property.setValue("value1"); + property.setName("prop"); + String propertyStr = "[{\"uniqueId\":\"1\",\"type\":null,\"required\":false,\"definition\":false,\"defaultValue\":null,\"description\":null,\"schema\":null,\"password\":false,\"name\":\"p1\",\"value\":\"new value\",\"label\":null,\"hidden\":false,\"immutable\":false,\"inputPath\":null,\"status\":null,\"inputId\":null,\"instanceUniqueId\":null,\"propertyId\":null,\"parentUniqueId\":null,\"getInputValues\":null,\"constraints\":null,\"valueUniqueUid\":null,\"ownerId\":null}]"; + List<GroupProperty> properties = Arrays.asList(property); + //TODO define GroupPropertyDTO (after finding other usage in UI code) and improve test coverage +// List<GroupProperty> updatedProperties = buildUpdateGroupPropertiesCall(VALID_COMPONENT_ID, VALID_GROUP_ID, VALID_USER) +// .put(Entity.entity(propertyStr, MediaType.APPLICATION_JSON), new GenericType<List<GroupProperty>>() { +// }); +// assertThat(updatedProperties.size()).isEqualTo(1); + Response response = buildUpdateGroupPropertiesCall(VALID_COMPONENT_ID, VALID_GROUP_ID, VALID_USER) + .put(Entity.entity(propertyStr, MediaType.APPLICATION_JSON)); + assertThat(response.getStatus()).isEqualTo(HttpStatus.OK.value()); + } + + @Test + public void getGroupProperties_success() { + List<PropertyDataDefinition> properties = buildUpdateGroupPropertiesCall(VALID_COMPONENT_ID, VALID_GROUP_ID, VALID_USER) + .get(new GenericType<List<PropertyDataDefinition>>(){}); + assertThat(properties.size()).isEqualTo(1); + assertThat(properties.get(0).getValue()).isEqualTo(OLD_VALUE); + } + + private Invocation.Builder buildUpdateGroupMembersCall(String componentId, String groupId, String userId) { + return target("/v1/catalog/resources/" + componentId + "/groups/" + groupId + "/members") + .request(MediaType.APPLICATION_JSON) + .accept(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, userId); + } + + private Invocation.Builder buildUpdateGroupPropertiesCall(String componentId, String groupId, String userId) { + return target("/v1/catalog/resources/" + componentId + "/groups/" + groupId + "/properties") + .request(MediaType.APPLICATION_JSON) + .accept(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, userId); + } + + +} diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupServletTest.java deleted file mode 100644 index 95f5174580..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupServletTest.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; - -public class GroupServletTest { - - private GroupServlet createTestSubject() { - return new GroupServlet(); - } - - - @Test - public void testGetGroupArtifactById() throws Exception { - GroupServlet testSubject; - String containerComponentType = ""; - String componentId = ""; - String groupId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - } - - - @Test - public void testUpdateGroupMetadata() throws Exception { - GroupServlet testSubject; - String containerComponentType = ""; - String componentId = ""; - String groupUniqueId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupTypesEndpointTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupTypesEndpointTest.java index 2d30616ebb..1af04ac207 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupTypesEndpointTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/GroupTypesEndpointTest.java @@ -11,20 +11,25 @@ import org.glassfish.jersey.server.ResourceConfig; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; -import org.openecomp.sdc.be.DummyConfigurationManager; import org.openecomp.sdc.be.components.impl.GroupTypeBusinessLogic; -import org.openecomp.sdc.be.components.impl.ResponseFormatManager; import org.openecomp.sdc.be.components.utils.GroupTypeBuilder; import org.openecomp.sdc.be.components.validation.UserValidations; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.dao.jsongraph.TitanDao; +import org.openecomp.sdc.be.dao.titan.TitanGenericDao; +import org.openecomp.sdc.be.datatypes.elements.GroupTypeDataDefinition; +import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; import org.openecomp.sdc.be.impl.ComponentsUtils; import org.openecomp.sdc.be.model.GroupTypeDefinition; import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.be.model.operations.impl.GroupTypeOperation; +import org.openecomp.sdc.be.model.operations.api.DerivedFromOperation; +import org.openecomp.sdc.be.model.operations.impl.*; +import org.openecomp.sdc.be.resources.data.GroupTypeData; +import org.openecomp.sdc.common.api.ConfigurationSource; import org.openecomp.sdc.common.api.Constants; +import org.openecomp.sdc.common.impl.ExternalConfiguration; +import org.openecomp.sdc.common.impl.FSConfigurationSource; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; import javax.ws.rs.client.Invocation; @@ -38,27 +43,34 @@ import java.util.stream.Stream; import static java.util.Arrays.asList; import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.ArgumentMatchers.anyBoolean; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; public class GroupTypesEndpointTest extends JerseySpringBaseTest { private static final String USER_ID = "a001"; - private static final String INVALID_USER_ID = "a002"; private static final GroupTypeDefinition EMPTY_GROUP_TYPE = new GroupTypeDefinition(); private static final String COMPONENT_TYPE = "VF"; private static final HashSet<String> EXCLUDED_TYPES = Sets.newHashSet("Root", "Heat"); private static ComponentsUtils componentsUtils; - private static GroupTypeOperation groupTypeOperation; + private static TitanGenericDao titanGenericDao; + private static CapabilityTypeOperation capabilityTypeOperation; + private static DerivedFromOperation derivedFromOperation; private static TitanDao titanDao; + private static PropertyOperation propertyOperation; + private static CapabilityOperation capabilityOperation; private static UserValidations userValidations; + private static OperationUtils operationUtils; private static User user; - @Configuration + static ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), "src/test/resources/config/catalog-be"); + static ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + + @org.springframework.context.annotation.Configuration @Import(BaseTestConfig.class) static class GroupTypesTestConfig { @@ -69,27 +81,31 @@ public class GroupTypesEndpointTest extends JerseySpringBaseTest { @Bean GroupTypeBusinessLogic groupTypeBusinessLogic() { - return new GroupTypeBusinessLogic(groupTypeOperation, titanDao, userValidations); + return new GroupTypeBusinessLogic(groupTypeOperation(), titanDao, userValidations, componentsUtils); + } + + @Bean + GroupTypeOperation groupTypeOperation() { + return new GroupTypeOperation(titanGenericDao, propertyOperation, capabilityTypeOperation, capabilityOperation, derivedFromOperation, operationUtils); } } @BeforeClass public static void initClass() { componentsUtils = mock(ComponentsUtils.class); - groupTypeOperation = mock(GroupTypeOperation.class); + propertyOperation = mock(PropertyOperation.class); + capabilityTypeOperation = mock(CapabilityTypeOperation.class); titanDao = mock(TitanDao.class); + titanGenericDao = mock(TitanGenericDao.class); userValidations = mock(UserValidations.class); + operationUtils = mock(OperationUtils.class); user = mock(User.class); } @Before public void init() { - new DummyConfigurationManager(); - when(ConfigurationManager.getConfigurationManager().getConfiguration().getExcludedGroupTypesMapping()).thenReturn(buildExcludeGroupTypesMap()); - ResponseFormatManager responseFormatManager = ResponseFormatManager.getInstance(); - when(userValidations.validateUserExists(eq(USER_ID), anyString(), anyBoolean())).thenReturn(Either.left(user)); - // TODO: handle for invalid user test -// when(userValidations.validateUserExists(eq(INVALID_USER_ID), anyString(), anyBoolean())).thenReturn(Either.right(???))); + when(userValidations.validateUserExists(eq(USER_ID), anyString(), anyBoolean())).thenReturn(user); + when(titanGenericDao.getByCriteriaWithPredicate(eq(NodeTypeEnum.GroupType), any(), eq(GroupTypeData.class))).thenReturn(Either.left(buildGroupTypeDataList())); } @Override @@ -105,26 +121,31 @@ public class GroupTypesEndpointTest extends JerseySpringBaseTest { } @Test + public void verifyExclusionMapIsCaseInsensitive() { + Map<String, Set<String>> excludedGroupTypesMapping = configurationManager.getConfiguration().getExcludedGroupTypesMapping(); + assertThat(excludedGroupTypesMapping.get(COMPONENT_TYPE)).hasSameElementsAs(excludedGroupTypesMapping.get(COMPONENT_TYPE.toLowerCase())); + } + + @Test public void getGroupTypes_validUser_Success() { List<GroupTypeDefinition> testConfigGroupTypes = buildGroupTypesList(); - when(groupTypeOperation.getAllGroupTypes(EXCLUDED_TYPES)).thenReturn(buildGroupTypesList()); - List<GroupTypeDefinition> fetchedGroupTypes = buildGetGroupTypesCall(USER_ID).get(new GenericType<List<GroupTypeDefinition>>(){}); + List<GroupTypeDefinition> fetchedGroupTypes = buildGetGroupTypesCall(USER_ID, COMPONENT_TYPE).get(new GenericType<List<GroupTypeDefinition>>(){}); verifyGroupTypesList(testConfigGroupTypes, fetchedGroupTypes); } @Test public void getGroupTypes_whenNoInteranlComponentType_passEmptyAsExcludedTypes() { List<GroupTypeDefinition> testConfigGroupTypes = buildGroupTypesList(); - when(groupTypeOperation.getAllGroupTypes(null)).thenReturn(buildGroupTypesList()); List<GroupTypeDefinition> fetchedGroupTypes = buildGetGroupTypesCallNoInternalComponent(USER_ID).get(new GenericType<List<GroupTypeDefinition>>(){}); verifyGroupTypesList(testConfigGroupTypes, fetchedGroupTypes); } private void verifyGroupTypesList(List<GroupTypeDefinition> groupTypes, List<GroupTypeDefinition> fetchedGroupTypes) { + String[] expectedReturnFields = {"version", "type", "uniqueId", "name", "icon"}; assertThat(fetchedGroupTypes) - .usingElementComparatorOnFields("version", "type", "uniqueId") + .usingElementComparatorOnFields(expectedReturnFields) .isEqualTo(groupTypes); - verifyOnlySpecificFieldsInResponse(fetchedGroupTypes, "version", "type", "uniqueId"); + verifyOnlySpecificFieldsInResponse(fetchedGroupTypes, expectedReturnFields); } private void verifyOnlySpecificFieldsInResponse(List<GroupTypeDefinition> fetchedGroupTypes, String ... fields) { @@ -133,9 +154,9 @@ public class GroupTypesEndpointTest extends JerseySpringBaseTest { .containsOnly(EMPTY_GROUP_TYPE); } - private Invocation.Builder buildGetGroupTypesCall(String userId) { + private Invocation.Builder buildGetGroupTypesCall(String userId, String componentType) { return target("/v1/catalog/groupTypes") - .queryParam("internalComponentType", COMPONENT_TYPE) + .queryParam("internalComponentType", componentType) .request(MediaType.APPLICATION_JSON) .header(Constants.USER_ID_HEADER, userId); } @@ -157,14 +178,43 @@ public class GroupTypesEndpointTest extends JerseySpringBaseTest { private List<GroupTypeDefinition> buildGroupTypesList() { GroupTypeDefinition type1 = GroupTypeBuilder.create() .setDerivedFrom("root") - .setType("VFModule") + .setType("org.openecomp.groups.VfModule") .setUniqueId("id1") .setVersion("1.0") + .setName("vf module") + .setIcon("vf module icon") + .build(); + GroupTypeDefinition type2 = GroupTypeBuilder.create() + .setDerivedFrom("root") + .setType("org.openecomp.groups.NetworkCollection") + .setUniqueId("id2") + .setVersion("1.0") + .setName("network collection") + .setIcon("network collection icon") .build(); - GroupTypeDefinition type2 = GroupTypeBuilder.create().setDerivedFrom("root").setType("Heat").setUniqueId("id2").build(); return asList(type1, type2); } + private List<GroupTypeData> buildGroupTypeDataList() { + GroupTypeDataDefinition d1 = new GroupTypeDataDefinition(); + d1.setType("org.openecomp.groups.VfModule"); + d1.setDerivedFrom("root"); + d1.setUniqueId("id1"); + d1.setVersion("1.0"); + d1.setName("vf module"); + d1.setIcon("vf module icon"); + GroupTypeData gt1 = new GroupTypeData(d1); + GroupTypeDataDefinition d2 = new GroupTypeDataDefinition(); + d2.setType("org.openecomp.groups.NetworkCollection"); + d2.setDerivedFrom("root"); + d2.setUniqueId("id2"); + d2.setVersion("1.0"); + d2.setName("network collection"); + d2.setIcon("network collection icon"); + GroupTypeData gt2 = new GroupTypeData(d2); + return asList(gt1, gt2); + } + private GroupTypeDefinition[] listOfEmptyGroupTypes(int size) { return Stream.generate(GroupTypeDefinition::new).limit(size).toArray(GroupTypeDefinition[]::new); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/InputsServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/InputsServletTest.java deleted file mode 100644 index 9ff55c22f0..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/InputsServletTest.java +++ /dev/null @@ -1,166 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; -import org.openecomp.sdc.be.components.impl.InputsBusinessLogic; -import org.openecomp.sdc.be.model.ComponentInstInputsMap; -import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.exception.ResponseFormat; - -import fj.data.Either; - -public class InputsServletTest { - - private InputsServlet createTestSubject() { - return new InputsServlet(); - } - - - @Test - public void testGetComponentInputs() throws Exception { - InputsServlet testSubject; - String componentType = ""; - String componentId = ""; - HttpServletRequest request = null; - String fromName = ""; - int amount = 0; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testUpdateComponentInputs() throws Exception { - InputsServlet testSubject; - String containerComponentType = ""; - String componentId = ""; - String data = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetComponentInstanceInputs() throws Exception { - InputsServlet testSubject; - String componentType = ""; - String componentId = ""; - String instanceId = ""; - String originComonentUid = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetInputPropertiesForComponentInstance() throws Exception { - InputsServlet testSubject; - String componentType = ""; - String componentId = ""; - String instanceId = ""; - String inputId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetInputsForComponentInput() throws Exception { - InputsServlet testSubject; - String componentType = ""; - String componentId = ""; - String inputId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetInputsAndPropertiesForComponentInput() throws Exception { - InputsServlet testSubject; - String componentType = ""; - String componentId = ""; - String inputId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testParseToComponentInstanceMap() throws Exception { - InputsServlet testSubject; - String serviceJson = ""; - User user = null; - Either<ComponentInstInputsMap, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testCreateMultipleInputs() throws Exception { - InputsServlet testSubject; - String componentType = ""; - String componentId = ""; - HttpServletRequest request = null; - String userId = ""; - String componentInstInputsMapObj = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testDeleteInput() throws Exception { - InputsServlet testSubject; - String componentType = ""; - String componentId = ""; - String inputId = ""; - HttpServletRequest request = null; - String userId = ""; - String componentInstInputsMapObj = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetInputBL() throws Exception { - InputsServlet testSubject; - ServletContext context = null; - InputsBusinessLogic result; - - // default test - testSubject = createTestSubject(); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/JerseySpringBaseTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/JerseySpringBaseTest.java index c7e759dfea..0c02ab02cb 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/JerseySpringBaseTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/JerseySpringBaseTest.java @@ -1,26 +1,47 @@ package org.openecomp.sdc.be.servlets; -import static org.mockito.Mockito.mock; - -import javax.servlet.http.HttpServletRequest; - +import com.fasterxml.jackson.databind.DeserializationFeature; import org.glassfish.hk2.utilities.binding.AbstractBinder; +import org.glassfish.jersey.client.ClientConfig; +import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJaxbJsonProvider; +import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJsonProvider; +import org.glassfish.jersey.logging.LoggingFeature; +import org.glassfish.jersey.media.multipart.MultiPartFeature; import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.test.JerseyTest; import org.glassfish.jersey.test.TestProperties; import org.junit.BeforeClass; +import org.openecomp.sdc.be.servlets.exception.ComponentExceptionMapper; +import org.openecomp.sdc.be.servlets.exception.DefaultExceptionMapper; +import org.openecomp.sdc.be.servlets.exception.StorageExceptionMapper; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; -public class JerseySpringBaseTest extends JerseyTest { +import javax.servlet.http.HttpServletRequest; +import javax.ws.rs.core.Feature; +import java.util.logging.Level; +import java.util.logging.Logger; +import static org.mockito.Mockito.mock; +public abstract class JerseySpringBaseTest extends JerseyTest { + + private static final Logger log = Logger.getLogger(JerseySpringBaseTest.class.getName()); protected static HttpServletRequest request; + private final static JacksonJsonProvider jacksonJsonProvider = new JacksonJaxbJsonProvider().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + private final static Feature loggingFeature = new LoggingFeature(log, Level.INFO, LoggingFeature.Verbosity.PAYLOAD_ANY, null); @BeforeClass public static void initBaseClass() { request = mock(HttpServletRequest.class); } + @Override + protected void configureClient(ClientConfig config) { + config.register(MultiPartFeature.class) + .register(loggingFeature) + .register(jacksonJsonProvider); + } + protected ResourceConfig configure() { return configure(BaseTestConfig.class); } @@ -38,6 +59,9 @@ public class JerseySpringBaseTest extends JerseyTest { .register(DefaultExceptionMapper.class) .register(ComponentExceptionMapper.class) .register(StorageExceptionMapper.class) + .register(MultiPartFeature.class) + .register(jacksonJsonProvider) + .register(loggingFeature) .property("jersey.config.server.provider.classnames", "org.openecomp.sdc.be.view.MixinModelWriter") .property("contextConfig", context); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/LifecycleServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/LifecycleServletTest.java deleted file mode 100644 index 8ea39b7443..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/LifecycleServletTest.java +++ /dev/null @@ -1,45 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; -import org.openecomp.sdc.be.model.LifeCycleTransitionEnum; -import org.openecomp.sdc.be.model.User; - -import fj.data.Either; - -public class LifecycleServletTest { - - private LifecycleServlet createTestSubject() { - return new LifecycleServlet(); - } - - - @Test - public void testChangeResourceState() throws Exception { - LifecycleServlet testSubject; - String jsonChangeInfo = ""; - String componentCollection = ""; - String lifecycleTransition = ""; - String componentId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testValidateTransitionEnum() throws Exception { - LifecycleServlet testSubject; - String lifecycleTransition = ""; - User user = null; - Either<LifeCycleTransitionEnum, Response> result; - - // default test - testSubject = createTestSubject(); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyServletTest.java index 41e2abe29f..8677194d26 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyServletTest.java @@ -1,25 +1,7 @@ package org.openecomp.sdc.be.servlets; -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyMap; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.verifyZeroInteractions; -import static org.mockito.Mockito.when; - -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import javax.ws.rs.client.ClientBuilder; -import javax.ws.rs.client.Entity; -import javax.ws.rs.client.Invocation; -import javax.ws.rs.core.GenericType; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - +import com.fasterxml.jackson.databind.DeserializationFeature; +import fj.data.Either; import org.glassfish.grizzly.http.util.HttpStatus; import org.glassfish.jersey.client.ClientConfig; import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJaxbJsonProvider; @@ -27,7 +9,6 @@ import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJsonProvi import org.glassfish.jersey.server.ResourceConfig; import org.junit.Before; import org.junit.BeforeClass; -import org.junit.Ignore; import org.junit.Test; import org.mockito.Mockito; import org.openecomp.sdc.be.components.impl.PolicyBusinessLogic; @@ -43,9 +24,21 @@ import org.openecomp.sdc.be.model.PropertyDefinition; import org.openecomp.sdc.common.api.Constants; import org.openecomp.sdc.exception.ResponseFormat; -import com.fasterxml.jackson.databind.DeserializationFeature; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.Invocation; +import javax.ws.rs.core.GenericType; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; -import fj.data.Either; +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.when; public class PolicyServletTest extends JerseySpringBaseTest{ @@ -92,7 +85,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{ .header("USER_ID", USER_ID) .get(Response.class); - assertTrue(response.getStatus() == HttpStatus.OK_200.getStatusCode()); + assertEquals(response.getStatus(), HttpStatus.OK_200.getStatusCode()); } @Test @@ -106,7 +99,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{ .header("USER_ID", USER_ID) .get(Response.class); - assertTrue(response.getStatus() == HttpStatus.BAD_REQUEST_400.getStatusCode()); + assertEquals(response.getStatus(), HttpStatus.BAD_REQUEST_400.getStatusCode()); } @Test @@ -123,7 +116,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{ .header("USER_ID", USER_ID) .post(Entity.entity(policy, MediaType.APPLICATION_JSON),Response.class); - assertTrue(response.getStatus() == HttpStatus.CREATED_201.getStatusCode()); + assertEquals(response.getStatus(), HttpStatus.CREATED_201.getStatusCode()); } @Test @@ -138,7 +131,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{ .header("USER_ID", USER_ID) .post(Entity.entity(policy, MediaType.APPLICATION_JSON),Response.class); - assertTrue(response.getStatus() == HttpStatus.BAD_REQUEST_400.getStatusCode()); + assertEquals(response.getStatus(), HttpStatus.BAD_REQUEST_400.getStatusCode()); } @Test @@ -156,7 +149,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{ .header("USER_ID", USER_ID) .put(Entity.entity(policy, MediaType.APPLICATION_JSON),Response.class); - assertTrue(response.getStatus() == HttpStatus.OK_200.getStatusCode()); + assertEquals(response.getStatus(), HttpStatus.OK_200.getStatusCode()); } @Test @@ -171,7 +164,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{ .header("USER_ID", USER_ID) .put(Entity.entity(policy, MediaType.APPLICATION_JSON),Response.class); - assertTrue(response.getStatus() == HttpStatus.BAD_REQUEST_400.getStatusCode()); + assertEquals(response.getStatus(), HttpStatus.BAD_REQUEST_400.getStatusCode()); } @Test @@ -187,7 +180,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{ .header("USER_ID", USER_ID) .delete(Response.class); - assertTrue(response.getStatus() == HttpStatus.NO_CONTENT_204.getStatusCode()); + assertEquals(response.getStatus(), HttpStatus.NO_CONTENT_204.getStatusCode()); } @Test @@ -201,7 +194,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{ .header("USER_ID", USER_ID) .delete(Response.class); - assertTrue(response.getStatus() == HttpStatus.BAD_REQUEST_400.getStatusCode()); + assertEquals(response.getStatus(), HttpStatus.BAD_REQUEST_400.getStatusCode()); } @Test @@ -219,11 +212,10 @@ public class PolicyServletTest extends JerseySpringBaseTest{ } @Test - @Ignore public void getPolicyProperties_wrongComponentType() { Response response = buildGetPropertiesRequest("unknownType").get(); assertThat(response.getStatus()).isEqualTo(Response.Status.INTERNAL_SERVER_ERROR.getStatusCode()); - verifyZeroInteractions(businessLogic); + //verifyZeroInteractions(businessLogic); } @Test @@ -313,7 +305,7 @@ public class PolicyServletTest extends JerseySpringBaseTest{ .resolveTemplate("policyId", POLICY_ID) .request(MediaType.APPLICATION_JSON) .header(Constants.USER_ID_HEADER, USER_ID) - .buildPut(Entity.entity(targets, MediaType.APPLICATION_JSON)); + .buildPost(Entity.entity(targets, MediaType.APPLICATION_JSON)); } private Invocation.Builder buildGetPropertiesRequest() { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyTypesEndpointTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyTypesEndpointTest.java index b58cae56a2..9d65c407fc 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyTypesEndpointTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PolicyTypesEndpointTest.java @@ -1,20 +1,6 @@ package org.openecomp.sdc.be.servlets; -import static java.util.Arrays.asList; -import static org.assertj.core.api.Assertions.assertThat; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -import java.util.List; - -import javax.ws.rs.client.Invocation; -import javax.ws.rs.core.GenericType; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - import org.apache.http.HttpStatus; -import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJaxbJsonProvider; -import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJsonProvider; import org.glassfish.jersey.server.ResourceConfig; import org.junit.Test; import org.openecomp.sdc.be.components.impl.PolicyTypeBusinessLogic; @@ -25,9 +11,15 @@ import org.openecomp.sdc.be.model.PolicyTypeDefinition; import org.openecomp.sdc.common.api.Constants; import org.openecomp.sdc.exception.ResponseFormat; -import com.fasterxml.jackson.databind.DeserializationFeature; +import javax.ws.rs.client.Invocation; +import javax.ws.rs.core.GenericType; +import javax.ws.rs.core.MediaType; +import java.util.List; -import fj.data.Either; +import static java.util.Arrays.asList; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; public class PolicyTypesEndpointTest extends JerseySpringBaseTest { @@ -40,16 +32,14 @@ public class PolicyTypesEndpointTest extends JerseySpringBaseTest { protected ResourceConfig configure() { policyTypeBusinessLogic = mock(PolicyTypeBusinessLogic.class); componentUtils = mock(ComponentsUtils.class); - final JacksonJsonProvider jacksonJsonProvider = new JacksonJaxbJsonProvider().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); return super.configure() - .register(new PolicyTypesEndpoint(policyTypeBusinessLogic)) - .register(jacksonJsonProvider); + .register(new PolicyTypesEndpoint(policyTypeBusinessLogic)); } @Test public void getPolicyTypes() { List<PolicyTypeDefinition> policyTypes = buildPolicyTypesList(); - when(policyTypeBusinessLogic.getAllPolicyTypes(USER_ID, COMPONENT_TYPE)).thenReturn(Either.left(policyTypes)); + when(policyTypeBusinessLogic.getAllPolicyTypes(USER_ID, COMPONENT_TYPE)).thenReturn(policyTypes); when(componentUtils.getResponseFormat(ActionStatus.OK)).thenReturn(new ResponseFormat(HttpStatus.SC_OK)); List<PolicyTypeDefinition> fetchedPolicyTypes = buildGetPolicyTypesCall().get(new GenericType<List<PolicyTypeDefinition>>(){}); verifyPolicyTypesList(policyTypes, fetchedPolicyTypes); @@ -58,22 +48,16 @@ public class PolicyTypesEndpointTest extends JerseySpringBaseTest { @Test public void getPolicyTypes_whenNoInternalComponent_passNullAsComponentType() { List<PolicyTypeDefinition> policyTypes = buildPolicyTypesList(); - when(policyTypeBusinessLogic.getAllPolicyTypes(USER_ID, null)).thenReturn(Either.left(policyTypes)); + when(policyTypeBusinessLogic.getAllPolicyTypes(USER_ID, null)).thenReturn(policyTypes); when(componentUtils.getResponseFormat(ActionStatus.OK)).thenReturn(new ResponseFormat(HttpStatus.SC_OK)); List<PolicyTypeDefinition> fetchedPolicyTypes = buildGetPolicyTypesCallNoInternalComponent().get(new GenericType<List<PolicyTypeDefinition>>(){}); verifyPolicyTypesList(policyTypes, fetchedPolicyTypes); } - @Test - public void getPolicyTypes_error() { - when(policyTypeBusinessLogic.getAllPolicyTypes(USER_ID, COMPONENT_TYPE)).thenReturn(Either.right(new ResponseFormat(HttpStatus.SC_INTERNAL_SERVER_ERROR))); - Response response = buildGetPolicyTypesCall().get(); - assertThat(response.getStatus()).isEqualTo(500); - } private void verifyPolicyTypesList(List<PolicyTypeDefinition> policyTypes, List<PolicyTypeDefinition> fetchedPolicyTypes) { assertThat(fetchedPolicyTypes) - .usingElementComparatorOnFields("version", "type", "uniqueId") + .usingElementComparatorOnFields("version", "type", "uniqueId", "name", "icon") .isEqualTo(policyTypes); assertThat(fetchedPolicyTypes).extracting("derivedFrom")//derivedFrom is not on the PolicyTypeMixin and should not return in response .containsOnly((String)null); @@ -93,9 +77,30 @@ public class PolicyTypesEndpointTest extends JerseySpringBaseTest { } private List<PolicyTypeDefinition> buildPolicyTypesList() { - PolicyTypeDefinition type1 = new PolicyTypeBuilder().setDerivedFrom("root").setType("type1").setUniqueId("id1").setVersion("1.0").build(); - PolicyTypeDefinition type2 = new PolicyTypeBuilder().setDerivedFrom("type1").setType("type2").setUniqueId("id2").setVersion("1.0").build(); - PolicyTypeDefinition type3 = new PolicyTypeBuilder().setDerivedFrom("root").setType("type3").setUniqueId("id3").setVersion("1.0").build(); + PolicyTypeDefinition type1 = new PolicyTypeBuilder() + .setDerivedFrom("root") + .setType("type1") + .setUniqueId("id1") + .setVersion("1.0") + .setName("type1name") + .setIcon("type1Icon") + .build(); + PolicyTypeDefinition type2 = new PolicyTypeBuilder() + .setDerivedFrom("type1") + .setType("type2") + .setUniqueId("id2") + .setVersion("1.0") + .setName("type2name") + .setIcon("type2con") + .build(); + PolicyTypeDefinition type3 = new PolicyTypeBuilder() + .setDerivedFrom("root") + .setType("type3") + .setUniqueId("id3") + .setVersion("1.0") + .setName("type3name") + .setIcon("type3con") + .build(); return asList(type1, type2, type3); } diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ProductServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ProductServletTest.java deleted file mode 100644 index 66208daaf7..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ProductServletTest.java +++ /dev/null @@ -1,92 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; - -public class ProductServletTest { - - private ProductServlet createTestSubject() { - return new ProductServlet(); - } - - - @Test - public void testCreateProduct() throws Exception { - ProductServlet testSubject; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetProductById() throws Exception { - ProductServlet testSubject; - String productId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetServiceByNameAndVersion() throws Exception { - ProductServlet testSubject; - String productName = ""; - String productVersion = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testDeleteProduct() throws Exception { - ProductServlet testSubject; - String productId = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testUpdateProductMetadata() throws Exception { - ProductServlet testSubject; - String productId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testValidateServiceName() throws Exception { - ProductServlet testSubject; - String productName = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PropertyServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PropertyServletTest.java deleted file mode 100644 index fe147b19a9..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/PropertyServletTest.java +++ /dev/null @@ -1,116 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import java.util.Map; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.codehaus.jettison.json.JSONObject; -import org.junit.Test; -import org.openecomp.sdc.be.components.impl.PropertyBusinessLogic; -import org.openecomp.sdc.be.dao.api.ActionStatus; -import org.openecomp.sdc.be.model.PropertyDefinition; - -import fj.data.Either; - -public class PropertyServletTest { - - private PropertyServlet createTestSubject() { - return new PropertyServlet(); - } - - - @Test - public void testCreateProperty() throws Exception { - PropertyServlet testSubject; - String resourceId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetProperty() throws Exception { - PropertyServlet testSubject; - String resourceId = ""; - String propertyId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testDeleteProperty() throws Exception { - PropertyServlet testSubject; - String resourceId = ""; - String propertyId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testUpdateProperty() throws Exception { - PropertyServlet testSubject; - String resourceId = ""; - String propertyId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetPropertyModel() throws Exception { - PropertyServlet testSubject; - String resourceId = ""; - String data = ""; - Either<Map<String, PropertyDefinition>, ActionStatus> result; - - // default test - testSubject = createTestSubject(); - } - - - - - - @Test - public void testGetPropertyDefinitionJSONObject() throws Exception { - PropertyServlet testSubject; - PropertyDefinition propertyDefinition = null; - JSONObject result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetPropertyBL() throws Exception { - PropertyServlet testSubject; - ServletContext context = null; - PropertyBusinessLogic result; - - // default test - testSubject = createTestSubject(); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/RepresentationUtilsTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/RepresentationUtilsTest.java index f64dfb9fec..f0843ed2ad 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/RepresentationUtilsTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/RepresentationUtilsTest.java @@ -1,16 +1,14 @@ package org.openecomp.sdc.be.servlets; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; - -import java.util.HashMap; - import org.apache.tinkerpop.gremlin.structure.T; import org.junit.Test; import org.openecomp.sdc.be.model.ArtifactDefinition; import org.openecomp.sdc.be.model.Operation; +import java.util.HashMap; + +import static org.junit.Assert.*; + public class RepresentationUtilsTest { private RepresentationUtils createTestSubject() { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/RequirementsServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/RequirementsServletTest.java deleted file mode 100644 index a7c23732ee..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/RequirementsServletTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; - -public class RequirementsServletTest { - - private RequirementsServlet createTestSubject() { - return new RequirementsServlet(); - } - - - @Test - public void testUpdateRequirement() throws Exception { - RequirementsServlet testSubject; - String resourceId = ""; - String requirementId = ""; - String requirementData = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceArtifactDownloadServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceArtifactDownloadServletTest.java deleted file mode 100644 index 319e59a5eb..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceArtifactDownloadServletTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; - -import ch.qos.logback.classic.Logger; - -public class ResourceArtifactDownloadServletTest { - - private ResourceArtifactDownloadServlet createTestSubject() { - return new ResourceArtifactDownloadServlet(); - } - - - @Test - public void testGetResourceArtifactByName() throws Exception { - ResourceArtifactDownloadServlet testSubject; - String resourceName = ""; - String resourceVersion = ""; - String artifactName = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetResourceArtifactMetadata() throws Exception { - ResourceArtifactDownloadServlet testSubject; - String resourceName = ""; - String resourceVersion = ""; - String artifactName = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetLogger() throws Exception { - ResourceArtifactDownloadServlet testSubject; - Logger result; - - // default test - testSubject = createTestSubject(); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceServletTest.java index 5a35793ab9..8b8dfc6b9c 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceServletTest.java @@ -20,19 +20,9 @@ package org.openecomp.sdc.be.servlets; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.when; - -import java.util.Arrays; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import fj.data.Either; import org.apache.commons.codec.binary.Base64; import org.apache.commons.lang3.tuple.ImmutablePair; import org.glassfish.hk2.utilities.binding.AbstractBinder; @@ -65,10 +55,18 @@ import org.springframework.context.annotation.AnnotationConfigApplicationContext import org.springframework.http.HttpStatus; import org.springframework.web.context.WebApplicationContext; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import javax.ws.rs.client.Entity; +import javax.ws.rs.core.Application; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.Arrays; -import fj.data.Either; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.when; public class ResourceServletTest extends JerseyTest { public static final HttpServletRequest request = Mockito.mock(HttpServletRequest.class); @@ -101,7 +99,7 @@ public class ResourceServletTest extends JerseyTest { when(userAdmin.getUser(userId, false)).thenReturn(eitherUser); when(request.getHeader(Constants.USER_ID_HEADER)).thenReturn(userId); - ImmutablePair<Resource, ActionStatus> pair = new ImmutablePair<Resource, ActionStatus>(new Resource(), ActionStatus.OK); + ImmutablePair<Resource, ActionStatus> pair = new ImmutablePair<>(new Resource(), ActionStatus.OK); Either<ImmutablePair<Resource, ActionStatus>, ResponseFormat> ret = Either.left(pair); when(resourceImportManager.importUserDefinedResource(Mockito.anyString(), Mockito.any(UploadResourceInfo.class), Mockito.any(User.class), Mockito.anyBoolean())).thenReturn(ret); @@ -115,8 +113,7 @@ public class ResourceServletTest extends JerseyTest { public ResponseFormat answer(InvocationOnMock invocation) { Object[] args = invocation.getArguments(); ActionStatus action = (ActionStatus) args[0]; - ResponseFormat resp = (action == ActionStatus.OK) ? new ResponseFormat(HttpStatus.CREATED.value()) : new ResponseFormat(HttpStatus.INTERNAL_SERVER_ERROR.value()); - return resp; + return (action == ActionStatus.OK) ? new ResponseFormat(HttpStatus.CREATED.value()) : new ResponseFormat(HttpStatus.INTERNAL_SERVER_ERROR.value()); } }).when(componentUtils).getResponseFormat(Mockito.any(ActionStatus.class)); @@ -129,7 +126,7 @@ public class ResourceServletTest extends JerseyTest { Response response = target().path("/v1/catalog/resources").request(MediaType.APPLICATION_JSON).post(Entity.json(gson.toJson(validJson)), Response.class); Mockito.verify(componentUtils, Mockito.times(1)).getResponseFormat(Mockito.any(ActionStatus.class)); Mockito.verify(componentUtils, Mockito.times(1)).getResponseFormat(ActionStatus.OK); - assertTrue(response.getStatus() == HttpStatus.CREATED.value()); + assertEquals(response.getStatus(), HttpStatus.CREATED.value()); } @@ -142,7 +139,7 @@ public class ResourceServletTest extends JerseyTest { Response response = target().path("/v1/catalog/resources").request(MediaType.APPLICATION_JSON).post(Entity.json(gson.toJson(validJson)), Response.class); Mockito.verify(componentUtils, Mockito.times(1)).getResponseFormat(Mockito.any(ActionStatus.class)); Mockito.verify(componentUtils, Mockito.times(1)).getResponseFormat(ActionStatus.INVALID_RESOURCE_CHECKSUM); - assertTrue(response.getStatus() == HttpStatus.INTERNAL_SERVER_ERROR.value()); + assertEquals(response.getStatus(), HttpStatus.INTERNAL_SERVER_ERROR.value()); } @@ -227,7 +224,7 @@ public class ResourceServletTest extends JerseyTest { Response response = target().path("/v1/catalog/resources").request(MediaType.APPLICATION_JSON).post(Entity.json(gson.toJson(mdJson)), Response.class); Mockito.verify(componentUtils, Mockito.times(1)).getResponseFormat(Mockito.any(ActionStatus.class)); Mockito.verify(componentUtils, Mockito.times(1)).getResponseFormat(invalidResourcePayload); - assertTrue(response.getStatus() == HttpStatus.INTERNAL_SERVER_ERROR.value()); + assertEquals(response.getStatus(), HttpStatus.INTERNAL_SERVER_ERROR.value()); } private void setMD5OnRequest(boolean isValid, UploadResourceInfo json) { diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceUploadServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceUploadServletTest.java index 8d9b95d414..efe8043ff5 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceUploadServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourceUploadServletTest.java @@ -20,22 +20,7 @@ package org.openecomp.sdc.be.servlets; -import static org.mockito.ArgumentMatchers.anyObject; -import static org.mockito.ArgumentMatchers.eq; -import static org.mockito.Mockito.when; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - +import com.google.gson.Gson; import org.glassfish.hk2.utilities.binding.AbstractBinder; import org.glassfish.jersey.client.ClientConfig; import org.glassfish.jersey.media.multipart.FormDataBodyPart; @@ -66,7 +51,20 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.web.context.WebApplicationContext; -import com.google.gson.Gson; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import javax.ws.rs.client.Entity; +import javax.ws.rs.core.Application; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; public class ResourceUploadServletTest extends JerseyTest { private static final Logger log = LoggerFactory.getLogger(ResourceUploadServletTest.class); @@ -92,7 +90,7 @@ public class ResourceUploadServletTest extends JerseyTest { // when(servletContext.getAttribute(Constants.AUDITING_MANAGER)).thenReturn(iAuditingManager); when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webApplicationContext); when(webApplicationContext.getBean(IResourceUploader.class)).thenReturn(iResourceUploader); - when(iResourceUploader.saveArtifact((ESArtifactData) anyObject(), eq(true))).thenReturn(ResourceUploadStatus.OK); + when(iResourceUploader.saveArtifact((ESArtifactData) any(), eq(true))).thenReturn(ResourceUploadStatus.OK); when(webApplicationContext.getBean(AuditingManager.class)).thenReturn(iAuditingManager); } @@ -136,7 +134,7 @@ public class ResourceUploadServletTest extends JerseyTest { @Test public void testMultipart() { FileDataBodyPart filePart = new FileDataBodyPart("resourceZip", new File("src/test/resources/config/normative-types-root.zip")); - List<String> tags = new ArrayList<String>(); + List<String> tags = new ArrayList<>(); tags.add("tag1"); tags.add("tag2"); UploadResourceInfo resourceInfo = new UploadResourceInfo("payload", "normative-types-root.yml", "my_description", "category/mycategory", tags, null); diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourcesServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourcesServletTest.java deleted file mode 100644 index 841254e4dc..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ResourcesServletTest.java +++ /dev/null @@ -1,240 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import java.util.List; -import java.util.Map; - -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; -import org.openecomp.sdc.be.model.PropertyDefinition; -import org.openecomp.sdc.be.model.Resource; -import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.exception.ResponseFormat; - -import com.google.common.base.Equivalence.Wrapper; - -import fj.data.Either; - -public class ResourcesServletTest { - - private ResourcesServlet createTestSubject() { - return new ResourcesServlet(); - } - - - @Test - public void testCreateResource() throws Exception { - ResourcesServlet testSubject; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testIsUIImport() throws Exception { - ResourcesServlet testSubject; - String data = ""; - boolean result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testPerformUIImport() throws Exception { - ResourcesServlet testSubject;Wrapper<Response> responseWrapper = null; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - String resourceUniqueId = ""; - - - // default test - } - - - @Test - public void testParseToResource() throws Exception { - ResourcesServlet testSubject; - String resourceJson = ""; - User user = null; - Either<Resource, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testParseToLightResource() throws Exception { - ResourcesServlet testSubject; - String resourceJson = ""; - User user = null; - Either<Resource, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDeleteResource() throws Exception { - ResourcesServlet testSubject; - String resourceId = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDeleteResourceByNameAndVersion() throws Exception { - ResourcesServlet testSubject; - String resourceName = ""; - String version = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetResourceById() throws Exception { - ResourcesServlet testSubject; - String resourceId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetResourceByNameAndVersion() throws Exception { - ResourcesServlet testSubject; - String resourceName = ""; - String resourceVersion = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testValidateResourceName() throws Exception { - ResourcesServlet testSubject; - String resourceName = ""; - String resourceType = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetCertifiedAbstractResources() throws Exception { - ResourcesServlet testSubject; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetCertifiedNotAbstractResources() throws Exception { - ResourcesServlet testSubject; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateResourceMetadata() throws Exception { - ResourcesServlet testSubject; - String resourceId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateResource() throws Exception { - ResourcesServlet testSubject; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - String resourceId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testConvertMapToList() throws Exception { - Map<String, PropertyDefinition> properties = null; - List<PropertyDefinition> result; - - // test 1 - properties = null; - - } - - - @Test - public void testGetResourceFromCsar() throws Exception { - ResourcesServlet testSubject; - HttpServletRequest request = null; - String userId = ""; - String csarUUID = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ServiceServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ServiceServletTest.java deleted file mode 100644 index 2b4ddfb7b4..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/ServiceServletTest.java +++ /dev/null @@ -1,265 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; -import org.openecomp.sdc.be.components.lifecycle.LifecycleChangeInfoWithAction; -import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum; -import org.openecomp.sdc.be.model.User; -import org.openecomp.sdc.exception.ResponseFormat; - -import com.google.common.base.Equivalence.Wrapper; -import com.google.common.util.concurrent.Service; - -import fj.data.Either; - -public class ServiceServletTest { - - private ServiceServlet createTestSubject() { - return new ServiceServlet(); - } - - - @Test - public void testCreateService() throws Exception { - ServiceServlet testSubject; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testParseToService() throws Exception { - ServiceServlet testSubject; - String serviceJson = ""; - User user = null; - Either<Service, ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testValidateServiceName() throws Exception { - ServiceServlet testSubject; - String serviceName = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetComponentAuditRecords() throws Exception { - ServiceServlet testSubject; - String componentType = ""; - String componentUniqueId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testFillUUIDAndVersion() throws Exception { - ServiceServlet testSubject;Wrapper<Response> responseWrapper = null; - Wrapper<String> uuidWrapper = null; - Wrapper<String> versionWrapper = null; - User user = null; - ComponentTypeEnum componentTypeEnum = null; - String componentUniqueId = ""; - ServletContext context = null; - - - // default test - } - - - @Test - public void testDeleteService() throws Exception { - ServiceServlet testSubject; - String serviceId = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDeleteServiceByNameAndVersion() throws Exception { - ServiceServlet testSubject; - String serviceName = ""; - String version = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateServiceMetadata() throws Exception { - ServiceServlet testSubject; - String serviceId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateGroupInstancePropertyValues() throws Exception { - ServiceServlet testSubject; - String serviceId = ""; - String componentInstanceId = ""; - String groupInstanceId = ""; - String data = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetServiceById() throws Exception { - ServiceServlet testSubject; - String serviceId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testGetServiceByNameAndVersion() throws Exception { - ServiceServlet testSubject; - String serviceName = ""; - String serviceVersion = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testUpdateServiceDistributionState() throws Exception { - ServiceServlet testSubject; - LifecycleChangeInfoWithAction jsonChangeInfo = null; - String serviceId = ""; - String state = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testActivateDistribution() throws Exception { - ServiceServlet testSubject; - String serviceId = ""; - String env = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testMarkDistributionAsDeployed() throws Exception { - ServiceServlet testSubject; - String serviceId = ""; - String did = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testTempUrlToBeDeleted() throws Exception { - ServiceServlet testSubject; - String serviceId = ""; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testDownloadServiceArtifact() throws Exception { - ServiceServlet testSubject; - String artifactName = ""; - HttpServletRequest request = null; - Response result; - - // default test - testSubject = createTestSubject(); - - } - - - @Test - public void testExecuteCommand() throws Exception { - ServiceServlet testSubject; - String artifactName = ""; - Either<byte[], ResponseFormat> result; - - // default test - testSubject = createTestSubject(); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesFetchServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesFetchServletTest.java deleted file mode 100644 index e512d98ca9..0000000000 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesFetchServletTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.openecomp.sdc.be.servlets; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.core.Response; - -import org.junit.Test; -import org.openecomp.sdc.be.components.impl.PropertyBusinessLogic; - -public class TypesFetchServletTest { - - private TypesFetchServlet createTestSubject() { - return new TypesFetchServlet(); - } - - - @Test - public void testGetAllDataTypesServlet() throws Exception { - TypesFetchServlet testSubject; - HttpServletRequest request = null; - String userId = ""; - Response result; - - // default test - testSubject = createTestSubject(); - } - - - @Test - public void testGetPropertyBL() throws Exception { - TypesFetchServlet testSubject; - ServletContext context = null; - PropertyBusinessLogic result; - - // default test - testSubject = createTestSubject(); - } -}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesUploadEndpointTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesUploadEndpointTest.java new file mode 100644 index 0000000000..8638de334a --- /dev/null +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesUploadEndpointTest.java @@ -0,0 +1,205 @@ +package org.openecomp.sdc.be.servlets; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import fj.data.Either; +import org.apache.commons.lang3.tuple.ImmutablePair; +import org.eclipse.jetty.http.HttpStatus; +import org.glassfish.jersey.client.ClientConfig; +import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJaxbJsonProvider; +import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJsonProvider; +import org.glassfish.jersey.logging.LoggingFeature; +import org.glassfish.jersey.media.multipart.FormDataMultiPart; +import org.glassfish.jersey.media.multipart.MultiPart; +import org.glassfish.jersey.media.multipart.MultiPartFeature; +import org.glassfish.jersey.media.multipart.file.FileDataBodyPart; +import org.glassfish.jersey.server.ResourceConfig; +import org.junit.BeforeClass; +import org.junit.Test; +import org.mockito.Mockito; +import org.openecomp.sdc.be.components.impl.CommonImportManager; +import org.openecomp.sdc.be.components.validation.AccessValidations; +import org.openecomp.sdc.be.dao.titan.TitanGenericDao; +import org.openecomp.sdc.be.dao.titan.TitanOperationStatus; +import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum; +import org.openecomp.sdc.be.impl.ComponentsUtils; +import org.openecomp.sdc.be.model.AnnotationTypeDefinition; +import org.openecomp.sdc.be.model.operations.StorageException; +import org.openecomp.sdc.be.model.operations.impl.AnnotationTypeOperations; +import org.openecomp.sdc.be.model.operations.impl.CommonTypeOperations; +import org.openecomp.sdc.be.model.operations.impl.OperationUtils; +import org.openecomp.sdc.be.model.operations.impl.PropertyOperation; +import org.openecomp.sdc.be.resources.data.AnnotationTypeData; +import org.openecomp.sdc.common.api.Constants; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Import; + +import javax.ws.rs.client.Entity; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +import static java.util.Collections.emptyMap; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyList; +import static org.mockito.ArgumentMatchers.anyMap; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.*; + +public class TypesUploadEndpointTest extends JerseySpringBaseTest { + + static final String userId = "jh0003"; + + private static AccessValidations accessValidations; + private static TitanGenericDao titanGenericDao; + private static PropertyOperation propertyOperation; + private static ComponentsUtils componentUtils; + private static OperationUtils operationUtils; + + @org.springframework.context.annotation.Configuration + @Import(BaseTestConfig.class) + static class TypesUploadTestConfig { + + @Bean + TypesUploadEndpoint typesUploadEndpoint() { + return new TypesUploadEndpoint(commonImportManager(), annotationTypeOperations(), accessValidations); + } + + @Bean + CommonImportManager commonImportManager() { + return new CommonImportManager(componentUtils, propertyOperation); + } + + @Bean + AnnotationTypeOperations annotationTypeOperations() { + return new AnnotationTypeOperations(commonTypeOperations()); + } + + @Bean + CommonTypeOperations commonTypeOperations() { + return new CommonTypeOperations(titanGenericDao, propertyOperation, operationUtils); + } + } + + @BeforeClass + public static void initClass() { + titanGenericDao = mock(TitanGenericDao.class); + accessValidations = mock(AccessValidations.class); + propertyOperation = mock(PropertyOperation.class); + componentUtils = Mockito.mock(ComponentsUtils.class); + operationUtils = Mockito.mock(OperationUtils.class); + } + + @Override + protected void configureClient(ClientConfig config) { + final JacksonJsonProvider jacksonJsonProvider = new JacksonJaxbJsonProvider() + .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + config.register(jacksonJsonProvider); + config.register(MultiPartFeature.class); + } + + @Override + protected ResourceConfig configure() { + return super.configure(TypesUploadEndpointTest.TypesUploadTestConfig.class) + .register(TypesUploadEndpoint.class) + .property(LoggingFeature.LOGGING_FEATURE_LOGGER_LEVEL_SERVER, "WARNING"); + } + + @Test + public void creatingAnnotationTypeSuccessTest() { + doNothing().when(accessValidations).validateUserExists(eq(userId), anyString()); + when(titanGenericDao.createNode(isA(AnnotationTypeData.class), eq(AnnotationTypeData.class))).thenReturn(Either.left(new AnnotationTypeData())); + when(titanGenericDao.getNode(anyString(), eq("org.openecomp.annotations.source.1.0.annotationtype"), eq(AnnotationTypeData.class))).thenReturn(Either.left(new AnnotationTypeData())); + when(titanGenericDao.getByCriteria(eq(NodeTypeEnum.AnnotationType), anyMap(), eq(AnnotationTypeData.class))).thenReturn(Either.right(TitanOperationStatus.NOT_FOUND)); + when(propertyOperation.addPropertiesToElementType(anyString(), eq(NodeTypeEnum.AnnotationType), anyList())).thenReturn(Either.left(emptyMap())); + when(propertyOperation.fillPropertiesList(anyString(), eq(NodeTypeEnum.AnnotationType), any())).thenReturn(TitanOperationStatus.OK); + when(propertyOperation.getTitanGenericDao()).thenReturn(titanGenericDao); + when(titanGenericDao.commit()).thenReturn(TitanOperationStatus.OK); + when(titanGenericDao.rollback()).thenReturn(TitanOperationStatus.OK); + FileDataBodyPart filePart = new FileDataBodyPart("annotationTypesZip", new File("src/test/resources/types/annotationTypes.zip")); + MultiPart multipartEntity = new FormDataMultiPart(); + multipartEntity.bodyPart(filePart); + + Response response = target().path("/v1/catalog/uploadType/annotationtypes") + .request(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, userId) + .post(Entity.entity(multipartEntity, MediaType.MULTIPART_FORM_DATA), Response.class); + assertThat(response.getStatus()).isEqualTo(HttpStatus.CREATED_201); + assertThat(Boolean.valueOf(getTypeActionResult(response))).isTrue(); + } + + private String getTypeActionResult(Response response) { + String typeResult = ""; + String body = response.readEntity(String.class); + int indexColon = body.lastIndexOf(':'); + if (indexColon > 0) { + int indexCurly = body.indexOf('}', indexColon); + if (indexCurly > 0) { + typeResult = body.substring(indexColon+1, indexCurly); + } + } + return typeResult; + } + + @Test + public void creatingAnnotationTypeFailureTest() { + doNothing().when(accessValidations).validateUserExists(eq(userId), anyString()); + when(titanGenericDao.createNode(isA(AnnotationTypeData.class), eq(AnnotationTypeData.class))).thenReturn(Either.left(new AnnotationTypeData())); + when(titanGenericDao.getNode(anyString(), eq("org.openecomp.annotations.source.1.0.annotationtype"), eq(AnnotationTypeData.class))).thenReturn(Either.left(new AnnotationTypeData())); + when(titanGenericDao.getByCriteria(eq(NodeTypeEnum.AnnotationType), anyMap(), eq(AnnotationTypeData.class))).thenReturn(Either.right(TitanOperationStatus.NOT_FOUND)); + when(propertyOperation.addPropertiesToElementType(anyString(), eq(NodeTypeEnum.AnnotationType), anyList())).thenThrow(new StorageException(TitanOperationStatus.MATCH_NOT_FOUND)); + when(propertyOperation.fillPropertiesList(anyString(), eq(NodeTypeEnum.AnnotationType), any())).thenReturn(TitanOperationStatus.OK); + when(propertyOperation.getTitanGenericDao()).thenReturn(titanGenericDao); + when(titanGenericDao.commit()).thenReturn(TitanOperationStatus.OK); + when(titanGenericDao.rollback()).thenReturn(TitanOperationStatus.OK); + FileDataBodyPart filePart = new FileDataBodyPart("annotationTypesZip", new File("src/test/resources/types/annotationTypes.zip")); + MultiPart multipartEntity = new FormDataMultiPart(); + multipartEntity.bodyPart(filePart); + + Response response = target().path("/v1/catalog/uploadType/annotationtypes") + .request(MediaType.APPLICATION_JSON) + .header(Constants.USER_ID_HEADER, userId) + .post(Entity.entity(multipartEntity, MediaType.MULTIPART_FORM_DATA), Response.class); + assertThat(response.getStatus()).isEqualTo(HttpStatus.BAD_REQUEST_400); + assertThat(Boolean.valueOf(getTypeActionResult(response))).isFalse(); + } + + @Test + public void singleTypeSucceeded_statusIsCreated() { + List<ImmutablePair<AnnotationTypeDefinition, Boolean>> typeActionResults = new ArrayList<>(); + AnnotationTypeDefinition dummyDefition = new AnnotationTypeDefinition(); + typeActionResults.add(new ImmutablePair(dummyDefition, true)); + assertThat(TypesUploadEndpoint.getHttpStatus(typeActionResults).value()).isEqualTo(HttpStatus.CREATED_201); + } + + @Test + public void singleTypeExists_statusIsConflict() { + List<ImmutablePair<AnnotationTypeDefinition, Boolean>> typeActionResults = new ArrayList<>(); + AnnotationTypeDefinition dummyDefition = new AnnotationTypeDefinition(); + typeActionResults.add(new ImmutablePair(dummyDefition, null)); + assertThat(TypesUploadEndpoint.getHttpStatus(typeActionResults).value()).isEqualTo(HttpStatus.CONFLICT_409); + } + + @Test + public void mixedSuccessAndExists_statusIsCreated() { + List<ImmutablePair<AnnotationTypeDefinition, Boolean>> typeActionResults = new ArrayList<>(); + AnnotationTypeDefinition dummyDefition = new AnnotationTypeDefinition(); + typeActionResults.add(new ImmutablePair(dummyDefition, true)); + typeActionResults.add(new ImmutablePair(dummyDefition, null)); + assertThat(TypesUploadEndpoint.getHttpStatus(typeActionResults).value()).isEqualTo(HttpStatus.CREATED_201); + } + + @Test + public void mixedSuccessAndFailure_statusIsBadRequest() { + List<ImmutablePair<AnnotationTypeDefinition, Boolean>> typeActionResults = new ArrayList<>(); + AnnotationTypeDefinition dummyDefition = new AnnotationTypeDefinition(); + typeActionResults.add(new ImmutablePair(dummyDefition, true)); + typeActionResults.add(new ImmutablePair(dummyDefition, false)); + typeActionResults.add(new ImmutablePair(dummyDefition, null)); + assertThat(TypesUploadEndpoint.getHttpStatus(typeActionResults).value()).isEqualTo(HttpStatus.BAD_REQUEST_400); + } +}
\ No newline at end of file diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesUploadServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesUploadServletTest.java index cfa65f76a5..e97f13c716 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesUploadServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/servlets/TypesUploadServletTest.java @@ -20,20 +20,8 @@ package org.openecomp.sdc.be.servlets; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.when; - -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import javax.servlet.ServletContext; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpSession; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; - +import fj.data.Either; +import org.apache.commons.lang3.tuple.ImmutablePair; import org.eclipse.jetty.http.HttpStatus; import org.glassfish.hk2.utilities.binding.AbstractBinder; import org.glassfish.jersey.client.ClientConfig; @@ -66,7 +54,19 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.web.context.WebApplicationContext; -import fj.data.Either; +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; +import javax.ws.rs.client.Entity; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.io.File; +import java.util.List; + +import static java.util.Collections.emptyList; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.when; public class TypesUploadServletTest extends JerseyTest { @@ -104,8 +104,7 @@ public class TypesUploadServletTest extends JerseyTest { @Test public void creatingCapabilityTypeSuccessTest() { - List<CapabilityTypeDefinition> emptyList = new ArrayList<CapabilityTypeDefinition>(); - Either<List<CapabilityTypeDefinition>, ResponseFormat> either = Either.left(emptyList); + Either<List<ImmutablePair<CapabilityTypeDefinition, Boolean>>, ResponseFormat> either = Either.left(emptyList()); when(importManager.createCapabilityTypes(Mockito.anyString())).thenReturn(either); FileDataBodyPart filePart = new FileDataBodyPart("capabilityTypeZip", new File("src/test/resources/types/capabilityTypes.zip")); MultiPart multipartEntity = new FormDataMultiPart(); @@ -113,7 +112,7 @@ public class TypesUploadServletTest extends JerseyTest { Response response = target().path("/v1/catalog/uploadType/capability").request(MediaType.APPLICATION_JSON).post(Entity.entity(multipartEntity, MediaType.MULTIPART_FORM_DATA), Response.class); - assertTrue(response.getStatus() == HttpStatus.CREATED_201); + assertEquals(response.getStatus(), HttpStatus.CREATED_201); } @@ -131,25 +130,25 @@ public class TypesUploadServletTest extends JerseyTest { resourceConfig.register(MultiPartFeature.class); resourceConfig.register(new AbstractBinder() { - @Override - protected void configure() { - // The below code was cut-pasted to here from setup() because - // due to it now has - // to be executed during servlet initialization - bind(request).to(HttpServletRequest.class); - when(request.getSession()).thenReturn(session); - when(session.getServletContext()).thenReturn(servletContext); - String appConfigDir = "src/test/resources/config/catalog-be"; - ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); - ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); - for (String mandatoryHeader : configurationManager.getConfiguration().getIdentificationHeaderFields()) { - - when(request.getHeader(mandatoryHeader)).thenReturn(mandatoryHeader); - - } - - when(servletContext.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).thenReturn(configurationManager); - } + @Override + protected void configure() { + // The below code was cut-pasted to here from setup() because + // due to it now has + // to be executed during servlet initialization + bind(request).to(HttpServletRequest.class); + when(request.getSession()).thenReturn(session); + when(session.getServletContext()).thenReturn(servletContext); + String appConfigDir = "src/test/resources/config/catalog-be"; + ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); + ConfigurationManager configurationManager = new ConfigurationManager(configurationSource); + for (String mandatoryHeader : configurationManager.getConfiguration().getIdentificationHeaderFields()) { + + when(request.getHeader(mandatoryHeader)).thenReturn(mandatoryHeader); + + } + + when(servletContext.getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).thenReturn(configurationManager); + } }); ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); resourceConfig.property("contextConfig", context); |