diff options
Diffstat (limited to 'catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/AbstractTemplateServletTest.java')
-rw-r--r-- | catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/AbstractTemplateServletTest.java | 228 |
1 files changed, 134 insertions, 94 deletions
diff --git a/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/AbstractTemplateServletTest.java b/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/AbstractTemplateServletTest.java index 40341be868..40dd38ad84 100644 --- a/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/AbstractTemplateServletTest.java +++ b/catalog-be/src/test/java/org/openecomp/sdc/be/externalapi/servlet/AbstractTemplateServletTest.java @@ -30,8 +30,19 @@ package org.openecomp.sdc.be.externalapi.servlet; +import static org.junit.Assert.assertEquals; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.when; import fj.data.Either; +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 org.apache.http.HttpStatus; import org.glassfish.hk2.utilities.binding.AbstractBinder; import org.glassfish.jersey.server.ResourceConfig; @@ -39,11 +50,19 @@ import org.glassfish.jersey.test.JerseyTest; import org.glassfish.jersey.test.TestProperties; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; -import org.junit.BeforeClass; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.TestInstance; +import org.junit.jupiter.api.TestInstance.Lifecycle; import org.mockito.Mockito; import org.mockito.stubbing.Answer; -import org.openecomp.sdc.be.components.impl.*; +import org.openecomp.sdc.be.components.impl.ComponentInstanceBusinessLogic; +import org.openecomp.sdc.be.components.impl.ElementBusinessLogic; +import org.openecomp.sdc.be.components.impl.ResourceBusinessLogic; +import org.openecomp.sdc.be.components.impl.ResourceImportManager; +import org.openecomp.sdc.be.components.impl.ServiceBusinessLogic; import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic; import org.openecomp.sdc.be.config.ConfigurationManager; import org.openecomp.sdc.be.config.SpringConfig; @@ -68,48 +87,31 @@ import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.web.context.WebApplicationContext; -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.GenericType; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import java.util.Arrays; -import java.util.List; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.junit.Assert.assertEquals; -import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.when; - -public class AbstractTemplateServletTest extends JerseyTest { - - private static final HttpServletRequest request = Mockito.mock(HttpServletRequest.class); - private static final HttpSession session = Mockito.mock(HttpSession.class); - private static final ServletContext servletContext = Mockito.mock(ServletContext.class); - private static final WebAppContextWrapper webAppContextWrapper = Mockito.mock(WebAppContextWrapper.class); - private static final WebApplicationContext webApplicationContext = Mockito.mock(WebApplicationContext.class); - private static final ServletUtils servletUtils = Mockito.mock(ServletUtils.class); - private static final ComponentsUtils componentsUtils = Mockito.mock(ComponentsUtils.class); - private static final ResourceImportManager resourceImportManager = Mockito.mock(ResourceImportManager.class); - private static final ResourceBusinessLogic resourceBusinessLogic = Mockito.mock(ResourceBusinessLogic.class); - private static final ServiceBusinessLogic serviceBusinessLogic = Mockito.mock(ServiceBusinessLogic.class); - private static final ElementBusinessLogic elementBusinessLogic = Mockito.mock(ElementBusinessLogic.class); - private static final Resource resource = Mockito.mock(Resource.class); - private static final CategoryDefinition categoryDefinition = Mockito.mock(CategoryDefinition.class); - private static final SubCategoryDefinition subCategoryDefinition = Mockito.mock(SubCategoryDefinition.class); - private static final AssetMetadataConverter assetMetadataConverter = Mockito.mock(AssetMetadataConverter.class); - private static final ResourceAssetMetadata resourceAssetMetadata = new ResourceAssetMetadata(); - private static final LifecycleBusinessLogic lifecycleBusinessLogic = Mockito.mock(LifecycleBusinessLogic.class); - private static final UserBusinessLogic userBusinessLogic = Mockito.mock(UserBusinessLogic.class); - private static final ComponentInstanceBusinessLogic componentInstanceBusinessLogic = Mockito.mock(ComponentInstanceBusinessLogic.class); - private static String serviceVertexUuid; - - - @BeforeClass - public static void setup() { +@TestInstance(Lifecycle.PER_CLASS) +class AbstractTemplateServletTest extends JerseyTest { + + private final HttpServletRequest request = Mockito.mock(HttpServletRequest.class); + private final HttpSession session = Mockito.mock(HttpSession.class); + private final ServletContext servletContext = Mockito.mock(ServletContext.class); + private final WebAppContextWrapper webAppContextWrapper = Mockito.mock(WebAppContextWrapper.class); + private final WebApplicationContext webApplicationContext = Mockito.mock(WebApplicationContext.class); + private final ServletUtils servletUtils = Mockito.mock(ServletUtils.class); + private final ComponentsUtils componentsUtils = Mockito.mock(ComponentsUtils.class); + private final ResourceImportManager resourceImportManager = Mockito.mock(ResourceImportManager.class); + private final ResourceBusinessLogic resourceBusinessLogic = Mockito.mock(ResourceBusinessLogic.class); + private final ServiceBusinessLogic serviceBusinessLogic = Mockito.mock(ServiceBusinessLogic.class); + private final ElementBusinessLogic elementBusinessLogic = Mockito.mock(ElementBusinessLogic.class); + private final Resource resource = Mockito.mock(Resource.class); + private final CategoryDefinition categoryDefinition = Mockito.mock(CategoryDefinition.class); + private final SubCategoryDefinition subCategoryDefinition = Mockito.mock(SubCategoryDefinition.class); + private final AssetMetadataConverter assetMetadataConverter = Mockito.mock(AssetMetadataConverter.class); + private final ResourceAssetMetadata resourceAssetMetadata = new ResourceAssetMetadata(); + private final LifecycleBusinessLogic lifecycleBusinessLogic = Mockito.mock(LifecycleBusinessLogic.class); + private final UserBusinessLogic userBusinessLogic = Mockito.mock(UserBusinessLogic.class); + private final ComponentInstanceBusinessLogic componentInstanceBusinessLogic = Mockito.mock(ComponentInstanceBusinessLogic.class); + + @BeforeAll + public void setup() { ExternalConfiguration.setAppName("catalog-be"); when(request.getSession()).thenReturn(session); when(request.getHeader(Constants.X_ECOMP_INSTANCE_ID_HEADER)).thenReturn("mockXEcompInstanceId"); @@ -117,7 +119,8 @@ public class AbstractTemplateServletTest extends JerseyTest { when(request.getRequestURL()).thenReturn(new StringBuffer("sdc/v1/catalog/abstract")); when(session.getServletContext()).thenReturn(servletContext); - when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)).thenReturn(webAppContextWrapper); + when(servletContext.getAttribute(Constants.WEB_APPLICATION_CONTEXT_WRAPPER_ATTR)) + .thenReturn(webAppContextWrapper); when(webAppContextWrapper.getWebAppContext(servletContext)).thenReturn(webApplicationContext); when(webApplicationContext.getBean(ServletUtils.class)).thenReturn(servletUtils); @@ -129,23 +132,31 @@ public class AbstractTemplateServletTest extends JerseyTest { when(resource.getName()).thenReturn("MockVFCMT"); when(resource.getSystemName()).thenReturn("mockvfcmt"); Either<Resource, ResponseFormat> eitherRet = Either.left(resource); - when(componentsUtils.convertJsonToObjectUsingObjectMapper(Mockito.any(), Mockito.any(), Mockito.eq(Resource.class), Mockito.any(), Mockito.eq(ComponentTypeEnum.RESOURCE))).thenReturn(eitherRet); + when(componentsUtils + .convertJsonToObjectUsingObjectMapper(Mockito.any(), Mockito.any(), Mockito.eq(Resource.class), + Mockito.any(), + Mockito.eq(ComponentTypeEnum.RESOURCE))).thenReturn(eitherRet); when(webApplicationContext.getBean(ResourceImportManager.class)).thenReturn(resourceImportManager); when(webApplicationContext.getBean(ElementBusinessLogic.class)).thenReturn(elementBusinessLogic); when(categoryDefinition.getName()).thenReturn("Template"); when(subCategoryDefinition.getName()).thenReturn("Monitoring Template"); when(categoryDefinition.getSubcategories()).thenReturn(Arrays.asList(subCategoryDefinition)); - when(elementBusinessLogic.getAllResourceCategories()).thenReturn(Either.left(Arrays.asList(categoryDefinition))); - when(resourceBusinessLogic.createResource(Mockito.eq(resource), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any())).thenReturn(resource); + when(elementBusinessLogic.getAllResourceCategories()) + .thenReturn(Either.left(Arrays.asList(categoryDefinition))); + when(resourceBusinessLogic + .createResource(Mockito.eq(resource), Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any())) + .thenReturn(resource); when(webApplicationContext.getBean(AssetMetadataConverter.class)).thenReturn(assetMetadataConverter); when(request.isUserInRole(anyString())).thenReturn(true); - Mockito.doReturn(Either.left(resourceAssetMetadata)).when(assetMetadataConverter).convertToSingleAssetMetadata(Mockito.eq(resource), Mockito.anyString(), + Mockito.doReturn(Either.left(resourceAssetMetadata)).when(assetMetadataConverter) + .convertToSingleAssetMetadata(Mockito.eq(resource), Mockito.anyString(), Mockito.eq(true)); String appConfigDir = "src/test/abstract/config"; - ConfigurationSource configurationSource = new FSConfigurationSource(ExternalConfiguration.getChangeListener(), appConfigDir); + 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(); @@ -154,49 +165,64 @@ public class AbstractTemplateServletTest extends JerseyTest { configurationManager.setConfiguration(configuration); } - private static void mockResponseFormat() { - when(componentsUtils.getResponseFormat(Mockito.any(ActionStatus.class), Mockito.any(String[].class))).thenAnswer((Answer<ResponseFormat>) invocation -> { - ResponseFormat ret; - final ActionStatus actionStatus = invocation.getArgument(0); - switch( actionStatus ){ - case CREATED :{ - ret = new ResponseFormat(HttpStatus.SC_CREATED); - break; - } - default :{ - ret = new ResponseFormat(HttpStatus.SC_INTERNAL_SERVER_ERROR); - break; + @BeforeEach + public void beforeEach() throws Exception { + super.setUp(); + } + + @AfterEach + public void afterEach() throws Exception { + super.tearDown(); + } + + private void mockResponseFormat() { + when(componentsUtils.getResponseFormat(Mockito.any(ActionStatus.class), Mockito.any(String[].class))) + .thenAnswer((Answer<ResponseFormat>) invocation -> { + ResponseFormat ret; + final ActionStatus actionStatus = invocation.getArgument(0); + switch (actionStatus) { + case CREATED: { + ret = new ResponseFormat(HttpStatus.SC_CREATED); + break; + } + default: { + ret = new ResponseFormat(HttpStatus.SC_INTERNAL_SERVER_ERROR); + break; + } } - } - return ret; - }); + return ret; + }); } + @Test - public void createVfcmtHappyScenario() { + void createVfcmtHappyScenario() { final JSONObject createRequest = buildCreateJsonRequest(); - Response response = target().path("/v1/catalog/abstract").request(MediaType.APPLICATION_JSON).header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId").header(Constants.USER_ID_HEADER, "mockAttID") - .post(Entity.json(createRequest.toJSONString()), Response.class); - assertEquals(response.getStatus(), HttpStatus.SC_INTERNAL_SERVER_ERROR); - + Response response = target().path("/v1/catalog/abstract").request(MediaType.APPLICATION_JSON) + .header(Constants.X_ECOMP_INSTANCE_ID_HEADER, "mockXEcompInstanceId") + .header(Constants.USER_ID_HEADER, "mockAttID") + .post(Entity.json(createRequest.toJSONString()), Response.class); + assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, response.getStatus()); } + private static final String BASIC_CREATE_REQUEST = "{\r\n" + - " \"name\": \"VFCMT_1\",\r\n" + - " \"description\": \"VFCMT Description\",\r\n" + - " \"resourceType\" : \"VFCMT\",\r\n" + - " \"category\": \"Template\",\r\n" + - " \"subcategory\": \"Monitoring Template\",\r\n" + - " \"vendorName\" : \"DCAE\",\r\n" + - " \"vendorRelease\" : \"1.0\",\r\n" + - " \"tags\": [\r\n" + - " \"VFCMT_1\"\r\n" + - " ],\r\n" + - " \"icon\" : \"defaulticon\",\r\n" + - " \"contactId\": \"cs0008\"\r\n" + - "}"; + " \"name\": \"VFCMT_1\",\r\n" + + " \"description\": \"VFCMT Description\",\r\n" + + " \"resourceType\" : \"VFCMT\",\r\n" + + " \"category\": \"Template\",\r\n" + + " \"subcategory\": \"Monitoring Template\",\r\n" + + " \"vendorName\" : \"DCAE\",\r\n" + + " \"vendorRelease\" : \"1.0\",\r\n" + + " \"tags\": [\r\n" + + " \"VFCMT_1\"\r\n" + + " ],\r\n" + + " \"icon\" : \"defaulticon\",\r\n" + + " \"contactId\": \"cs0008\"\r\n" + + "}"; + private JSONObject buildCreateJsonRequest() { JSONParser parser = new JSONParser(); - return (JSONObject) FunctionalInterfaces.swallowException( () -> parser.parse(BASIC_CREATE_REQUEST)); + return (JSONObject) FunctionalInterfaces.swallowException(() -> parser.parse(BASIC_CREATE_REQUEST)); } @@ -205,15 +231,29 @@ public class AbstractTemplateServletTest extends JerseyTest { ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class); forceSet(TestProperties.CONTAINER_PORT, "0"); return new ResourceConfig() - .register(new CrudExternalServlet(userBusinessLogic, componentInstanceBusinessLogic,componentsUtils,servletUtils,resourceImportManager, elementBusinessLogic, assetMetadataConverter, lifecycleBusinessLogic, resourceBusinessLogic, serviceBusinessLogic)) - .register(new AbstractBinder() { + .register(createMockServlet()) + .register(new AbstractBinder() { - @Override - protected void configure() { - bind(request).to(HttpServletRequest.class); - } - }) - .property("contextConfig", context); + @Override + protected void configure() { + bind(request).to(HttpServletRequest.class); + } + }) + .property("contextConfig", context); + } + + private CrudExternalServlet createMockServlet() { + return new CrudExternalServlet( + userBusinessLogic, + componentInstanceBusinessLogic, + componentsUtils, + servletUtils, + resourceImportManager, + elementBusinessLogic, + assetMetadataConverter, + lifecycleBusinessLogic, + resourceBusinessLogic, + serviceBusinessLogic); } -}
\ No newline at end of file +} |