summaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/test/java/org/onap/vid/job
diff options
context:
space:
mode:
authorSonsino, Ofir (os0695) <os0695@intl.att.com>2018-07-10 14:20:54 +0300
committerSonsino, Ofir (os0695) <os0695@intl.att.com>2018-07-10 14:20:54 +0300
commitc72d565bb58226b20625b2bce5f0019046bee649 (patch)
tree8658e49595705b02e47ddc14afa20d6bb7123547 /vid-app-common/src/test/java/org/onap/vid/job
parentef8a6b47847012fd59ea20da21d8d3d7c4a301ed (diff)
Merge 1806 code of vid-common
Change-Id: I75d52abed4a24dfe3827d79edc4a2938726aa87a Issue-ID: VID-208 Signed-off-by: Sonsino, Ofir (os0695) <os0695@intl.att.com>
Diffstat (limited to 'vid-app-common/src/test/java/org/onap/vid/job')
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/job/command/JobCommandFactoryTest.java68
-rw-r--r--vid-app-common/src/test/java/org/onap/vid/job/impl/JobWorkerTest.java101
2 files changed, 169 insertions, 0 deletions
diff --git a/vid-app-common/src/test/java/org/onap/vid/job/command/JobCommandFactoryTest.java b/vid-app-common/src/test/java/org/onap/vid/job/command/JobCommandFactoryTest.java
new file mode 100644
index 00000000..b51553be
--- /dev/null
+++ b/vid-app-common/src/test/java/org/onap/vid/job/command/JobCommandFactoryTest.java
@@ -0,0 +1,68 @@
+package org.onap.vid.job.command;
+
+import com.google.common.collect.ImmutableMap;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.onap.vid.job.Job;
+import org.onap.vid.job.JobCommand;
+import org.onap.vid.job.JobType;
+import org.testng.annotations.BeforeMethod;
+import org.testng.annotations.DataProvider;
+import org.testng.annotations.Test;
+
+import java.util.Arrays;
+import java.util.Map;
+import java.util.UUID;
+import java.util.stream.Collectors;
+
+import static org.hamcrest.CoreMatchers.equalTo;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+public class JobCommandFactoryTest {
+
+ private JobCommandFactory jobCommandFactory;
+
+ @Mock
+ private Job job;
+
+ @Mock
+ private JobCommand mockCommand;
+
+ @BeforeMethod
+ public void initMocks() {
+ MockitoAnnotations.initMocks(this);
+ }
+
+ @BeforeMethod
+ public void setUp() {
+ jobCommandFactory = new JobCommandFactory(any -> mockCommand);
+ }
+
+ @DataProvider
+ public Object[][] jobTypes() {
+ return Arrays.stream(
+ JobType.values()
+ ).map(v -> new Object[]{v}).collect(Collectors.toList()).toArray(new Object[][]{});
+
+ }
+
+ @Test(dataProvider = "jobTypes")
+ public void givenJob_createCommandCallsTheInitAndReturnsTheInstance(JobType jobType) {
+
+ final UUID uuid = UUID.randomUUID();
+ final Map<String, Object> data = ImmutableMap.of("foo", "bar");
+
+ when(job.getType()).thenReturn(jobType);
+ when(job.getUuid()).thenReturn(uuid);
+ when(job.getData()).thenReturn(data);
+
+ final JobCommand command = jobCommandFactory.toCommand(job);
+
+ verify(mockCommand).init(uuid, data);
+
+ assertThat(command, equalTo(mockCommand));
+ }
+
+} \ No newline at end of file
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<Job> 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