1 package org.onap.vid.job.command;
3 import com.fasterxml.jackson.annotation.JsonCreator;
4 import com.fasterxml.jackson.annotation.JsonProperty;
5 import com.google.common.collect.ImmutableMap;
6 import org.mockito.Mock;
7 import org.mockito.MockitoAnnotations;
8 import org.onap.vid.job.Job;
9 import org.onap.vid.job.JobAdapter;
10 import org.onap.vid.job.JobCommand;
11 import org.onap.vid.job.JobType;
12 import org.onap.vid.job.impl.JobSharedData;
13 import org.testng.annotations.BeforeMethod;
14 import org.testng.annotations.DataProvider;
15 import org.testng.annotations.Test;
17 import java.util.Arrays;
19 import java.util.Objects;
20 import java.util.UUID;
21 import java.util.stream.Collectors;
23 import static org.hamcrest.CoreMatchers.equalTo;
24 import static org.hamcrest.MatcherAssert.assertThat;
25 import static org.mockito.Mockito.verify;
26 import static org.mockito.Mockito.when;
28 public class JobCommandFactoryTest {
30 private JobCommandFactory jobCommandFactory;
36 private JobCommand mockCommand;
39 public void initMocks() {
40 MockitoAnnotations.initMocks(this);
45 jobCommandFactory = new JobCommandFactory(any -> mockCommand);
49 public Object[][] jobTypes() {
52 ).map(v -> new Object[]{v}).collect(Collectors.toList()).toArray(new Object[][]{});
56 public static class MockedRequest implements JobAdapter.AsyncJobRequest {
59 final public String y;
62 public MockedRequest(@JsonProperty("x")int x, @JsonProperty("y")String y) {
68 public boolean equals(Object o) {
69 if (this == o) return true;
70 if (!(o instanceof MockedRequest)) return false;
71 MockedRequest that = (MockedRequest) o;
73 Objects.equals(y, that.y);
77 public int hashCode() {
79 return Objects.hash(x, y);
83 @Test(dataProvider = "jobTypes")
84 public void givenJob_createCommandCallsTheInitAndReturnsTheInstance(JobType jobType) {
86 final UUID uuid = UUID.randomUUID();
87 final Map<String, Object> data = ImmutableMap.of("foo", "bar");
88 final JobSharedData sharedData = new JobSharedData(uuid, "userid", new MockedRequest(1,"a"));
90 when(job.getType()).thenReturn(jobType);
91 when(job.getUuid()).thenReturn(uuid);
92 when(job.getData()).thenReturn(data);
93 when(job.getSharedData()).thenReturn(sharedData);
95 final JobCommand command = jobCommandFactory.toCommand(job);
97 verify(mockCommand).init(sharedData, data);
99 assertThat(command, equalTo(mockCommand));