From 2f580cec3540c8f604b4affb57879ffac193f354 Mon Sep 17 00:00:00 2001 From: James Guistwite Date: Thu, 25 Apr 2019 08:58:06 -0400 Subject: Added some JUnit tests to improve coverage. Additional work could be added to improve results checking in the future. Issue-ID: SDC-2238 Change-Id: Ief48b90eff33f166ca5f3fa5abb921e0e8c34d26 Signed-off-by: James Guistwite --- .../rest/services/DeploymentFlavorsImplTest.java | 168 +++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/services/DeploymentFlavorsImplTest.java (limited to 'openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/services/DeploymentFlavorsImplTest.java') diff --git a/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/services/DeploymentFlavorsImplTest.java b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/services/DeploymentFlavorsImplTest.java new file mode 100644 index 0000000000..0ed38a51aa --- /dev/null +++ b/openecomp-be/api/openecomp-sdc-rest-webapp/vendor-software-products-rest/vendor-software-products-rest-services/src/test/java/org/openecomp/sdcrests/vsp/rest/services/DeploymentFlavorsImplTest.java @@ -0,0 +1,168 @@ +package org.openecomp.sdcrests.vsp.rest.services; + +import org.apache.http.HttpStatus; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentMatchers; +import org.mockito.Mock; +import org.openecomp.sdc.logging.api.Logger; +import org.openecomp.sdc.logging.api.LoggerFactory; +import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManager; +import org.openecomp.sdc.vendorsoftwareproduct.DeploymentFlavorManagerFactory; +import org.openecomp.sdc.vendorsoftwareproduct.dao.type.DeploymentFlavorEntity; +import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityValidationData; +import org.openecomp.sdc.vendorsoftwareproduct.types.composition.DeploymentFlavor; +import org.openecomp.sdc.versioning.dao.types.Version; +import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorCreationDto; +import org.openecomp.sdcrests.vendorsoftwareproducts.types.DeploymentFlavorRequestDto; +import org.openecomp.sdcrests.wrappers.GenericCollectionWrapper; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; + +import javax.ws.rs.core.Response; +import java.util.Collection; +import java.util.Collections; +import java.util.UUID; + +import static org.mockito.MockitoAnnotations.initMocks; +import static org.powermock.api.mockito.PowerMockito.mockStatic; +import static org.powermock.api.mockito.PowerMockito.when; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({DeploymentFlavorsImpl.class, DeploymentFlavorManagerFactory.class}) +public class DeploymentFlavorsImplTest { + + private Logger logger = LoggerFactory.getLogger(DeploymentFlavorsImplTest.class); + + + @Mock + private DeploymentFlavorManagerFactory deploymentFlavorManagerFactory; + + @Mock + private DeploymentFlavorManager deploymentFlavorManager; + + private final String vspId = UUID.randomUUID().toString(); + private final String versionId = UUID.randomUUID().toString(); + private final String deploymentFlavorId = "" + System.currentTimeMillis(); + private final String user = "cs0008"; + + @Before + public void setUp() { + try { + initMocks(this); + + mockStatic(DeploymentFlavorManagerFactory.class); + when(DeploymentFlavorManagerFactory.getInstance()).thenReturn(deploymentFlavorManagerFactory); + when(deploymentFlavorManagerFactory.createInterface()).thenReturn(deploymentFlavorManager); + + DeploymentFlavorEntity e = new DeploymentFlavorEntity(); + e.setId(deploymentFlavorId); + e.setVspId(vspId); + e.setVersion(new Version(versionId)); + + Collection lst = Collections.singletonList(e); + when(deploymentFlavorManager.listDeploymentFlavors( + ArgumentMatchers.eq(vspId), + ArgumentMatchers.any())).thenReturn(lst); + + when(deploymentFlavorManager.createDeploymentFlavor( + ArgumentMatchers.any())).thenReturn(e); + + CompositionEntityResponse r = new CompositionEntityResponse<>(); + r.setId(vspId); + when(deploymentFlavorManager.getDeploymentFlavor( + ArgumentMatchers.eq(vspId), + ArgumentMatchers.any(), + ArgumentMatchers.eq(deploymentFlavorId))).thenReturn(r); + + CompositionEntityType tpe = CompositionEntityType.component; + CompositionEntityValidationData data = new CompositionEntityValidationData(tpe, vspId); + when(deploymentFlavorManager.updateDeploymentFlavor( + ArgumentMatchers.any())).thenReturn(data); + + + + when(deploymentFlavorManager.getDeploymentFlavorSchema( + ArgumentMatchers.eq(vspId), + ArgumentMatchers.any())).thenReturn(r); + + + } catch (Exception e) { + logger.error(e.getMessage(), e); + } + } + + @Test + public void testList() { + DeploymentFlavorsImpl dfi = new DeploymentFlavorsImpl(); + + Response rsp = dfi.list(vspId, versionId, user); + Assert.assertEquals("Response should be 200", HttpStatus.SC_OK, rsp.getStatus()); + Object e = rsp.getEntity(); + Assert.assertNotNull(e); + @SuppressWarnings("unchecked") + GenericCollectionWrapper results = (GenericCollectionWrapper) e; + Assert.assertEquals("result length", 1, results.getListCount()); + } + + @Test + public void testCreate() { + + DeploymentFlavorRequestDto dto = new DeploymentFlavorRequestDto(); + dto.setDescription("hello"); + dto.setModel("model"); + dto.setFeatureGroupId("fgi"); + + DeploymentFlavorsImpl dfi = new DeploymentFlavorsImpl(); + Response rsp = dfi.create(dto, vspId, versionId, user); + Assert.assertEquals("Response should be 200", HttpStatus.SC_OK, rsp.getStatus()); + Object e = rsp.getEntity(); + Assert.assertNotNull(e); + try { + DeploymentFlavorCreationDto responseDto = (DeploymentFlavorCreationDto)e; + Assert.assertEquals(deploymentFlavorId, responseDto.getDeploymentFlavorId()); + } catch (ClassCastException ex) { + Assert.fail("unexpected class for DTO " + e.getClass().getName()); + } + } + + + @Test + public void testDelete() { + DeploymentFlavorsImpl dfi = new DeploymentFlavorsImpl(); + Response rsp = dfi.delete(vspId, versionId, deploymentFlavorId, user); + Assert.assertEquals("Response should be 200", HttpStatus.SC_OK, rsp.getStatus()); + Assert.assertNull(rsp.getEntity()); + } + + + @Test + public void testGet() { + DeploymentFlavorsImpl dfi = new DeploymentFlavorsImpl(); + Response rsp = dfi.get(vspId, versionId, deploymentFlavorId, user); + Assert.assertEquals("Response should be 200", HttpStatus.SC_OK, rsp.getStatus()); + Assert.assertNotNull(rsp.getEntity()); + } + + @Test + public void testGetSchema() { + DeploymentFlavorsImpl dfi = new DeploymentFlavorsImpl(); + Response rsp = dfi.get(vspId, versionId, deploymentFlavorId, user); + Assert.assertEquals("Response should be 200", HttpStatus.SC_OK, rsp.getStatus()); + Assert.assertNotNull(rsp.getEntity()); + } + + @Test + public void testUpdate() { + DeploymentFlavorsImpl dfi = new DeploymentFlavorsImpl(); + DeploymentFlavorRequestDto dto = new DeploymentFlavorRequestDto(); + Response rsp = dfi.update(dto, vspId, versionId, deploymentFlavorId, user); + Assert.assertEquals("Response should be 200", HttpStatus.SC_OK, rsp.getStatus()); + Assert.assertNull(rsp.getEntity()); + } + +} -- cgit 1.2.3-korg