From c72d565bb58226b20625b2bce5f0019046bee649 Mon Sep 17 00:00:00 2001 From: "Sonsino, Ofir (os0695)" Date: Tue, 10 Jul 2018 14:20:54 +0300 Subject: Merge 1806 code of vid-common Change-Id: I75d52abed4a24dfe3827d79edc4a2938726aa87a Issue-ID: VID-208 Signed-off-by: Sonsino, Ofir (os0695) --- .../java/org/onap/vid/job/impl/JobWorkerTest.java | 101 +++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 vid-app-common/src/test/java/org/onap/vid/job/impl/JobWorkerTest.java (limited to 'vid-app-common/src/test/java/org/onap/vid/job/impl/JobWorkerTest.java') diff --git a/vid-app-common/src/test/java/org/onap/vid/job/impl/JobWorkerTest.java b/vid-app-common/src/test/java/org/onap/vid/job/impl/JobWorkerTest.java new file mode 100644 index 00000000..b7e8e35a --- /dev/null +++ b/vid-app-common/src/test/java/org/onap/vid/job/impl/JobWorkerTest.java @@ -0,0 +1,101 @@ +package org.onap.vid.job.impl; + +import com.google.common.collect.ImmutableMap; +import org.apache.commons.lang3.RandomUtils; +import org.apache.commons.lang3.builder.ReflectionToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; +import org.hamcrest.Matcher; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.onap.vid.job.*; +import org.onap.vid.job.command.HttpCallCommand; +import org.onap.vid.job.command.JobCommandFactory; +import org.testng.annotations.BeforeMethod; +import org.testng.annotations.Test; + +import java.util.Map; +import java.util.UUID; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.*; +import static org.mockito.Matchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class JobWorkerTest { + + @InjectMocks + private JobWorker jobWorker = new JobWorker(); + + @Mock + private JobCommandFactory jobCommandFactory; + + private final JobCommand jobCommand = mock(JobCommand.class); + private Job jobUnderTest; + private JobAdapter.AsyncJobRequest originalData; + private JobType originalType; + + @BeforeMethod + public void initMocks() { + MockitoAnnotations.initMocks(this); + + when(jobCommandFactory.toCommand(any())).thenReturn(jobCommand); + + originalData = new JobAdapter.AsyncJobRequest() { + public final Map datum = ImmutableMap.of("some", "data"); + public final String foobar = "aux"; + }; + + originalType = JobType.ServiceInstantiation; + jobUnderTest = new JobAdapterImpl().createJob( + originalType, + originalData, + UUID.randomUUID(), + "my user id", + RandomUtils.nextInt() + ); + } + + @Test + public void executeJobAndStepToNext_givenNull_onlyStatusModified() { + + assertNextJobAfterExecuteJob(null, new String[]{"status"}, allOf( + hasProperty("status", is(Job.JobStatus.STOPPED)), + hasProperty("data", hasEntry("request", originalData)), + hasProperty("type", is(originalType))) + ); + } + + @Test + public void executeJobAndStepToNext_givenNextJob_jobDataIsModified() { + + final Job.JobStatus nextStatus = Job.JobStatus.IN_PROGRESS; + + final UUID jobUuid = UUID.randomUUID(); + final NextCommand nextCommand = new NextCommand(nextStatus, new HttpCallCommand("my strange url", jobUuid)); + + String[] excludedFields = {"status", "data", "type"}; + + assertNextJobAfterExecuteJob(nextCommand, excludedFields, allOf( + hasProperty("status", is(nextStatus)), + hasProperty("data", is(nextCommand.getCommand().getData())), + hasProperty("type", is(nextCommand.getCommand().getType()))) + ); + } + + private void assertNextJobAfterExecuteJob(NextCommand nextCommand, String[] excludedFields, Matcher jobMatcher) { + when(jobCommand.call()).thenReturn(nextCommand); + + String jobBefore = new ReflectionToStringBuilder(jobUnderTest, ToStringStyle.SHORT_PREFIX_STYLE).setExcludeFieldNames(excludedFields).toString(); + + ////// FUNCTION UNDER TEST ///// + Job nextJob = jobWorker.executeJobAndGetNext(jobUnderTest); + //////////////////////////////// + + String jobAfter = new ReflectionToStringBuilder(nextJob, ToStringStyle.SHORT_PREFIX_STYLE).setExcludeFieldNames(excludedFields).toString(); + + assertThat(nextJob, jobMatcher); + assertThat(jobAfter, equalTo(jobBefore)); + } +} \ No newline at end of file -- cgit 1.2.3-korg