aboutsummaryrefslogtreecommitdiffstats
path: root/workflow-designer-be/src/test/java/org/onap/sdc/workflow/services/impl/WorkflowVersionManagerImplTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'workflow-designer-be/src/test/java/org/onap/sdc/workflow/services/impl/WorkflowVersionManagerImplTest.java')
-rw-r--r--workflow-designer-be/src/test/java/org/onap/sdc/workflow/services/impl/WorkflowVersionManagerImplTest.java110
1 files changed, 101 insertions, 9 deletions
diff --git a/workflow-designer-be/src/test/java/org/onap/sdc/workflow/services/impl/WorkflowVersionManagerImplTest.java b/workflow-designer-be/src/test/java/org/onap/sdc/workflow/services/impl/WorkflowVersionManagerImplTest.java
index 57829875..8b09e15d 100644
--- a/workflow-designer-be/src/test/java/org/onap/sdc/workflow/services/impl/WorkflowVersionManagerImplTest.java
+++ b/workflow-designer-be/src/test/java/org/onap/sdc/workflow/services/impl/WorkflowVersionManagerImplTest.java
@@ -1,12 +1,14 @@
package org.onap.sdc.workflow.services.impl;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.ArgumentMatchers.argThat;
import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.doThrow;
+import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.onap.sdc.workflow.services.types.WorkflowVersionState.CERTIFIED;
import static org.onap.sdc.workflow.services.types.WorkflowVersionState.DRAFT;
@@ -14,9 +16,12 @@ import static org.onap.sdc.workflow.services.types.WorkflowVersionState.DRAFT;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
+import java.util.Set;
import org.apache.commons.io.IOUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -28,9 +33,11 @@ import org.mockito.junit.MockitoJUnitRunner;
import org.onap.sdc.workflow.persistence.ArtifactRepository;
import org.onap.sdc.workflow.persistence.ParameterRepository;
import org.onap.sdc.workflow.persistence.types.ArtifactEntity;
+import org.onap.sdc.workflow.persistence.types.ParameterEntity;
import org.onap.sdc.workflow.persistence.types.ParameterRole;
import org.onap.sdc.workflow.services.exceptions.EntityNotFoundException;
import org.onap.sdc.workflow.services.exceptions.VersionCreationException;
+import org.onap.sdc.workflow.services.exceptions.VersionModificationException;
import org.onap.sdc.workflow.services.exceptions.VersionStateModificationException;
import org.onap.sdc.workflow.services.impl.mappers.VersionMapper;
import org.onap.sdc.workflow.services.impl.mappers.VersionStateMapper;
@@ -41,6 +48,7 @@ import org.openecomp.sdc.versioning.dao.types.Version;
import org.openecomp.sdc.versioning.dao.types.VersionState;
import org.openecomp.sdc.versioning.dao.types.VersionStatus;
import org.openecomp.sdc.versioning.types.VersionCreationMethod;
+import org.springframework.boot.test.autoconfigure.web.client.RestClientTest;
import org.springframework.mock.web.MockMultipartFile;
@RunWith(MockitoJUnitRunner.class)
@@ -77,21 +85,60 @@ public class WorkflowVersionManagerImplTest {
WorkflowVersion workflowVersion = new WorkflowVersion(VERSION1_ID);
doReturn(workflowVersion).when(versionMapperMock).versionToWorkflowVersion(any(Version.class));
doReturn(version).when(versioningManagerMock).get(eq(ITEM1_ID), any(Version.class));
- doReturn(new ArrayList()).when(parameterRepositoryMock)
+ doReturn(Collections.emptyList()).when(parameterRepositoryMock)
.list(eq(ITEM1_ID), eq(VERSION1_ID), any(ParameterRole.class));
workflowVersionManager.get(ITEM1_ID, VERSION1_ID);
verify(versioningManagerMock).get(ITEM1_ID, version);
}
-/* @Test
+ @Test
public void shouldReturnWorkflowVersionList() {
- List<Version> versionList = Arrays.asList(new Version(VERSION1_ID), new Version(VERSION2_ID));
+ Version version1 = new Version(VERSION1_ID);
+ Version version2 = new Version(VERSION2_ID);
+ List<Version> versionList = Arrays.asList(version1,version2);
doReturn(versionList).when(versioningManagerMock).list(ITEM1_ID);
- doReturn(new WorkflowVersion()).when(versionMapperMock).versionToWorkflowVersion(any(Version.class));
+ WorkflowVersion workflowVersion1 = new WorkflowVersion();
+ workflowVersion1.setId(VERSION1_ID);
+ workflowVersion1.setName(VERSION1_ID);
+ WorkflowVersion workflowVersion2 = new WorkflowVersion();
+ workflowVersion2.setId(VERSION2_ID);
+ workflowVersion2.setName(VERSION2_ID);
+ doReturn(workflowVersion2).when(versionMapperMock).versionToWorkflowVersion(version2);
+ doReturn(Collections.emptyList()).when(parameterRepositoryMock).list(eq(ITEM1_ID),anyString(),eq(ParameterRole.INPUT));
+ doReturn(Collections.emptyList()).when(parameterRepositoryMock).list(eq(ITEM1_ID),anyString(),eq(ParameterRole.OUTPUT));
workflowVersionManager.list(ITEM1_ID, null);
verify(versioningManagerMock).list(ITEM1_ID);
verify(versionMapperMock, times(2)).versionToWorkflowVersion(any(Version.class));
- }*/
+ }
+
+ @Test
+ public void shouldReturnCertifiedWorkflowVersionList() {
+ Version version1 = new Version(VERSION1_ID);
+ version1.setStatus(VersionStatus.Certified);
+ Version version2 = new Version(VERSION2_ID);
+ version2.setStatus(VersionStatus.Draft);
+ List<Version> versionList = Arrays.asList(version1, version2);
+ doReturn(versionList).when(versioningManagerMock).list(ITEM1_ID);
+ WorkflowVersion workflowVersion1 = new WorkflowVersion();
+ workflowVersion1.setId(VERSION1_ID);
+ workflowVersion1.setName(VERSION1_ID);
+ WorkflowVersion workflowVersion2 = new WorkflowVersion();
+ workflowVersion2.setId(VERSION2_ID);
+ workflowVersion2.setName(VERSION2_ID);
+ doReturn(workflowVersion1).when(versionMapperMock).versionToWorkflowVersion(version1);
+ doReturn(Collections.emptyList()).when(parameterRepositoryMock)
+ .list(eq(ITEM1_ID), anyString(), eq(ParameterRole.INPUT));
+ doReturn(Collections.emptyList()).when(parameterRepositoryMock)
+ .list(eq(ITEM1_ID), anyString(), eq(ParameterRole.OUTPUT));
+ doReturn(VersionStatus.Certified).when(versionStateMapperMock)
+ .workflowVersionStateToVersionStatus(
+ WorkflowVersionState.CERTIFIED);
+
+ assertEquals(1, workflowVersionManager.list(ITEM1_ID, Collections.singleton(WorkflowVersionState.CERTIFIED)).size());
+ verify(versioningManagerMock).list(ITEM1_ID);
+ verify(versionMapperMock, times(1)).versionToWorkflowVersion(any(Version.class));
+
+ }
@Test
public void shouldUpdateWorkflowVersion() {
@@ -109,8 +156,15 @@ public class WorkflowVersionManagerImplTest {
WorkflowVersion inputVersion = new WorkflowVersion(VERSION1_ID);
inputVersion.setName("1.0");
inputVersion.setDescription(updatedDescription);
- inputVersion.setInputs(new ArrayList<>());
- inputVersion.setOutputs(new ArrayList<>());
+ ParameterEntity toBeCreated = new ParameterEntity("Input1");
+ inputVersion.setInputs(Collections.singleton(toBeCreated));
+ ParameterEntity toBeUpdated = new ParameterEntity("Output1");
+ inputVersion.setOutputs(Collections.singleton(toBeUpdated));
+ doReturn(Collections.emptyList()).when(parameterRepositoryMock).list(ITEM1_ID,VERSION1_ID,ParameterRole.INPUT);
+ ParameterEntity toBeDeleted = new ParameterEntity("Output2");
+ toBeDeleted.setId("parameter_id_1");
+ Collection<ParameterEntity> currentOutputs = Arrays.asList(toBeDeleted, toBeUpdated);
+ doReturn(currentOutputs).when(parameterRepositoryMock).list(ITEM1_ID,VERSION1_ID,ParameterRole.OUTPUT);
Version mappedInputVersion = new Version(VERSION1_ID);
mappedInputVersion.setName("1.0");
@@ -126,6 +180,11 @@ public class WorkflowVersionManagerImplTest {
assertEquals(updatedDescription, captorVersion.getDescription());
assertEquals(VersionStatus.Draft, captorVersion.getStatus());
verify(versioningManagerMock).publish(ITEM1_ID, mappedInputVersion, "Update version");
+
+ verify(parameterRepositoryMock).delete(ITEM1_ID,VERSION1_ID,"parameter_id_1");
+ verify(parameterRepositoryMock).create(ITEM1_ID,VERSION1_ID,ParameterRole.INPUT,toBeCreated);
+ verify(parameterRepositoryMock).update(ITEM1_ID,VERSION1_ID,ParameterRole.OUTPUT,toBeUpdated);
+
}
@@ -136,8 +195,8 @@ public class WorkflowVersionManagerImplTest {
doReturn(version).when(versioningManagerMock).create(ITEM1_ID, version, VersionCreationMethod.major);
WorkflowVersion versionRequest = new WorkflowVersion();
versionRequest.setDescription("version desc");
- versionRequest.setInputs(new ArrayList<>());
- versionRequest.setOutputs(new ArrayList<>());
+ versionRequest.setInputs(Collections.emptyList());
+ versionRequest.setOutputs(Collections.emptyList());
WorkflowVersion workflowVersion = new WorkflowVersion(VERSION1_ID);
doReturn(workflowVersion).when(workflowVersionManager).get(ITEM1_ID, VERSION1_ID);
workflowVersionManager.create(ITEM1_ID, null, versionRequest);
@@ -156,6 +215,18 @@ public class WorkflowVersionManagerImplTest {
workflowVersionManager.create(ITEM1_ID, VERSION2_ID, versionRequestDto);
}
+ @Test(expected = VersionCreationException.class)
+ public void shouldTrowExceptionWhenInputsSupplied() {
+ WorkflowVersion versionRequestDto = new WorkflowVersion();
+ versionRequestDto.setInputs(Collections.singleton(new ParameterEntity()));
+ Version baseVersion = new Version(VERSION2_ID);
+ baseVersion.setStatus(VersionStatus.Draft);
+ List<Version> versions = Collections.singletonList(baseVersion);
+ doReturn(versions).when(versioningManagerMock).list(ITEM1_ID);
+
+ workflowVersionManager.create(ITEM1_ID, VERSION2_ID, versionRequestDto);
+ }
+
@Test(expected = EntityNotFoundException.class)
public void getStateOfNonExisting() {
doThrow(new RuntimeException()).when(versioningManagerMock).get(eq(ITEM1_ID), eqVersion(VERSION1_ID));
@@ -248,6 +319,27 @@ public class WorkflowVersionManagerImplTest {
assertEquals(artifactMock, returnedArtifact);
}
+ @Test(expected = VersionModificationException.class)
+ public void shouldThrowExceptionInDeleteArtifactWhenVersionIsCertified() {
+ Version version = new Version(VERSION1_ID);
+ doReturn(version).when(versioningManagerMock).get(ITEM1_ID,version);
+ WorkflowVersion workflowVersion = new WorkflowVersion(VERSION1_ID);
+ workflowVersion.setState(WorkflowVersionState.CERTIFIED);
+ doReturn(workflowVersion).when(versionMapperMock).versionToWorkflowVersion(version);
+ workflowVersionManager.deleteArtifact(ITEM1_ID,VERSION1_ID);
+ }
+
+ @Test
+ public void shouldDeleteArtifact() {
+ Version version = new Version(VERSION1_ID);
+ doReturn(version).when(versioningManagerMock).get(ITEM1_ID,version);
+ WorkflowVersion workflowVersion = new WorkflowVersion(VERSION1_ID);
+ doReturn(workflowVersion).when(versionMapperMock).versionToWorkflowVersion(version);
+ workflowVersionManager.deleteArtifact(ITEM1_ID,VERSION1_ID);
+ verify(artifactRepositoryMock).delete(ITEM1_ID,VERSION1_ID);
+ verify(versioningManagerMock).publish(ITEM1_ID,version,"Delete Artifact");
+ }
+
private static Version eqVersion(String versionId) {
return argThat(version -> versionId.equals(version.getId()));
}