diff options
Diffstat (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/OrchestrationTemplateCandidateImplTest.java')
1 files changed, 152 insertions, 6 deletions
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/OrchestrationTemplateCandidateImplTest.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/OrchestrationTemplateCandidateImplTest.java index 2dc6cd737c..1e2debf033 100644 --- 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/OrchestrationTemplateCandidateImplTest.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/OrchestrationTemplateCandidateImplTest.java @@ -1,10 +1,13 @@ package org.openecomp.sdcrests.vsp.rest.services; +import org.apache.commons.lang3.tuple.Pair; import org.apache.cxf.jaxrs.ext.multipart.Attachment; import org.apache.cxf.jaxrs.ext.multipart.ContentDisposition; +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.core.utilities.orchestration.OnboardingTypesEnum; import org.openecomp.sdc.activitylog.ActivityLogManager; @@ -16,30 +19,38 @@ import org.openecomp.sdc.vendorsoftwareproduct.OrchestrationTemplateCandidateMan import org.openecomp.sdc.vendorsoftwareproduct.VendorSoftwareProductManager; import org.openecomp.sdc.vendorsoftwareproduct.VspManagerFactory; import org.openecomp.sdc.vendorsoftwareproduct.security.SecurityManagerException; +import org.openecomp.sdc.vendorsoftwareproduct.types.OrchestrationTemplateActionResponse; import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.UploadFileStatus; +import org.openecomp.sdc.vendorsoftwareproduct.types.ValidationResponse; +import org.openecomp.sdc.vendorsoftwareproduct.types.candidateheat.FilesDataStructure; +import org.openecomp.sdc.vendorsoftwareproduct.types.candidateheat.Module; +import org.openecomp.sdcrests.vendorsoftwareproducts.types.FileDataStructureDto; +import org.openecomp.sdcrests.vendorsoftwareproducts.types.OrchestrationTemplateActionResponseDto; import org.openecomp.sdcrests.vendorsoftwareproducts.types.UploadFileResponseDto; import org.openecomp.sdcrests.vsp.rest.data.PackageArchive; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; -import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response; +import java.io.IOException; +import java.util.Arrays; import java.util.Optional; +import java.util.UUID; import static junit.framework.TestCase.assertEquals; import static junit.framework.TestCase.assertFalse; import static org.mockito.ArgumentMatchers.any; import static org.mockito.MockitoAnnotations.initMocks; -import static org.powermock.api.mockito.PowerMockito.mock; -import static org.powermock.api.mockito.PowerMockito.mockStatic; -import static org.powermock.api.mockito.PowerMockito.when; -import static org.powermock.api.mockito.PowerMockito.whenNew; +import static org.powermock.api.mockito.PowerMockito.*; @RunWith(PowerMockRunner.class) @PrepareForTest({VspManagerFactory.class, ActivityLogManagerFactory.class, OrchestrationTemplateCandidateManagerFactory.class, OrchestrationTemplateCandidateImpl.class}) public class OrchestrationTemplateCandidateImplTest { - Logger logger = LoggerFactory.getLogger(OrchestrationTemplateCandidateImplTest.class); + private Logger logger = LoggerFactory.getLogger(OrchestrationTemplateCandidateImplTest.class); + @Mock private OrchestrationTemplateCandidateManager candidateManager; @Mock @@ -57,6 +68,12 @@ public class OrchestrationTemplateCandidateImplTest { private OrchestrationTemplateCandidateImpl orchestrationTemplateCandidate; + private final String candidateId = UUID.randomUUID().toString(); + private final String softwareProductId = UUID.randomUUID().toString(); + private final String versionId = UUID.randomUUID().toString(); + + private final String user = "cs0008"; + @Before public void setUp(){ try { @@ -78,6 +95,46 @@ public class OrchestrationTemplateCandidateImplTest { uploadFileResponse.setOnboardingType(OnboardingTypesEnum.ZIP); uploadFileResponse.setNetworkPackageName("test"); when(candidateManager.upload(any(), any(), any(), any(), any())).thenReturn(uploadFileResponse); + + + // get using the candidate manager. + Optional<Pair<String,byte[]>> zipFile = + Optional.of(Pair.of("Hello", "World".getBytes())); + + when(candidateManager.get( + ArgumentMatchers.eq(candidateId), + ArgumentMatchers.any())).thenReturn(zipFile); + + when(vendorSoftwareProductManager.get( + ArgumentMatchers.eq(softwareProductId), + ArgumentMatchers.any())).thenReturn(zipFile); + + + OrchestrationTemplateActionResponse processResponse = + new OrchestrationTemplateActionResponse(); + processResponse.setStatus(UploadFileStatus.Success); + when(candidateManager.process( + ArgumentMatchers.eq(candidateId), + ArgumentMatchers.any())).thenReturn(processResponse); + + + ValidationResponse vr = new ValidationResponse(); + when(candidateManager.updateFilesDataStructure( + ArgumentMatchers.eq(candidateId), + ArgumentMatchers.any(), + ArgumentMatchers.any())).thenReturn(vr); + + FilesDataStructure fds = new FilesDataStructure(); + fds.setArtifacts(Arrays.asList("a","b")); + fds.setNested(Arrays.asList("foo", "bar")); + fds.setUnassigned(Arrays.asList("c", "d")); + fds.setModules(Arrays.asList(new Module(), new Module())); + + when(candidateManager.getFilesDataStructure( + ArgumentMatchers.eq(candidateId), + ArgumentMatchers.any())).thenReturn(Optional.of(fds)); + + }catch (Exception e){ logger.error(e.getMessage(), e); } @@ -118,4 +175,93 @@ public class OrchestrationTemplateCandidateImplTest { assertFalse(((UploadFileResponseDto)response.getEntity()).getErrors().isEmpty()); } + + @Test + public void testCandidateGet() throws IOException { + orchestrationTemplateCandidate = new OrchestrationTemplateCandidateImpl(); + Response rsp = orchestrationTemplateCandidate.get(candidateId, versionId, user); + Assert.assertEquals("Response status equals", Response.Status.OK.getStatusCode(), rsp.getStatus()); + Assert.assertNotEquals(rsp.getHeaderString("Content-Disposition").indexOf("Candidate"),-1); + byte[] content = (byte[])rsp.getEntity(); + Assert.assertEquals("World", new String(content)); + + } + + @Test + public void testVendorSoftwareProductGet() throws IOException { + orchestrationTemplateCandidate = new OrchestrationTemplateCandidateImpl(); + Response rsp = orchestrationTemplateCandidate.get(softwareProductId, versionId, user); + Assert.assertEquals("Response status equals", Response.Status.OK.getStatusCode(), rsp.getStatus()); + Assert.assertNotEquals(rsp.getHeaderString("Content-Disposition").indexOf("Processed"),-1); + byte[] content = (byte[])rsp.getEntity(); + Assert.assertEquals("World", new String(content)); + } + + @Test + public void testMissingGet() throws IOException { + orchestrationTemplateCandidate = new OrchestrationTemplateCandidateImpl(); + Response rsp = orchestrationTemplateCandidate.get(UUID.randomUUID().toString(), versionId, user); + Assert.assertEquals("Response status equals", Response.Status.NOT_FOUND.getStatusCode(), rsp.getStatus()); + } + + @Test + public void testAbort() { + try { + orchestrationTemplateCandidate = new OrchestrationTemplateCandidateImpl(); + Response rsp = orchestrationTemplateCandidate.abort(candidateId, versionId); + Assert.assertEquals("Response status equals", Response.Status.OK.getStatusCode(), rsp.getStatus()); + Assert.assertNull(rsp.getEntity()); + } + catch (Exception ex) { + logger.error("unexpected exception", ex); + Assert.fail("abort should not throw an exception"); + } + } + + @Test + public void testProcess() { + try { + orchestrationTemplateCandidate = new OrchestrationTemplateCandidateImpl(); + Response rsp = orchestrationTemplateCandidate.process(candidateId, versionId, user); + Assert.assertEquals("Response status equals", Response.Status.OK.getStatusCode(), rsp.getStatus()); + Assert.assertNotNull(rsp.getEntity()); + OrchestrationTemplateActionResponseDto dto = (OrchestrationTemplateActionResponseDto)rsp.getEntity(); + Assert.assertEquals("status check", UploadFileStatus.Success, dto.getStatus()); + } + catch (Exception ex) { + logger.error("unexpected exception", ex); + Assert.fail("abort should not throw an exception"); + } + } + + @Test + public void testFilesDataStructureUpload() { + try { + FileDataStructureDto dto = new FileDataStructureDto(); + dto.setArtifacts(Arrays.asList("a", "b", "c")); + orchestrationTemplateCandidate = new OrchestrationTemplateCandidateImpl(); + Response rsp = orchestrationTemplateCandidate.updateFilesDataStructure(candidateId, versionId, dto, user); + Assert.assertEquals("Response status equals", Response.Status.OK.getStatusCode(), rsp.getStatus()); + } + catch (Exception ex) { + logger.error("unexpected exception", ex); + Assert.fail("abort should not throw an exception"); + } + } + + @Test + public void testFilesDataStructureGet() { + try { + FileDataStructureDto dto = new FileDataStructureDto(); + dto.setArtifacts(Arrays.asList("a", "b", "c")); + orchestrationTemplateCandidate = new OrchestrationTemplateCandidateImpl(); + Response rsp = orchestrationTemplateCandidate.getFilesDataStructure(candidateId, versionId, user); + Assert.assertEquals("Response status equals", Response.Status.OK.getStatusCode(), rsp.getStatus()); + } + catch (Exception ex) { + logger.error("unexpected exception", ex); + Assert.fail("abort should not throw an exception"); + } + } + } |