embulk-input-marketo 0.6.0 → 0.6.1.alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/README.md +132 -12
- data/build.gradle +1 -1
- data/src/main/java/org/embulk/input/marketo/MarketoServiceImpl.java +115 -44
- data/src/main/java/org/embulk/input/marketo/MarketoUtils.java +83 -0
- data/src/main/java/org/embulk/input/marketo/delegate/MarketoBaseBulkExtractInputPlugin.java +17 -3
- data/src/main/java/org/embulk/input/marketo/model/BulkExtractRangeHeader.java +26 -0
- data/src/main/java/org/embulk/input/marketo/rest/MarketoBaseRestClient.java +8 -3
- data/src/main/java/org/embulk/input/marketo/rest/MarketoInputStreamResponseEntityReader.java +1 -1
- data/src/main/java/org/embulk/input/marketo/rest/MarketoResponseJetty92EntityReader.java +2 -4
- data/src/main/java/org/embulk/input/marketo/rest/MarketoRestClient.java +47 -20
- data/src/test/java/org/embulk/input/marketo/MarketoServiceImplTest.java +60 -57
- data/src/test/java/org/embulk/input/marketo/delegate/ActivityBulkExtractInputPluginTest.java +16 -15
- data/src/test/java/org/embulk/input/marketo/delegate/CampaignInputPluginTest.java +10 -10
- data/src/test/java/org/embulk/input/marketo/delegate/LeadBulkExtractInputPluginTest.java +22 -21
- data/src/test/java/org/embulk/input/marketo/delegate/LeadWithListInputPluginTest.java +22 -20
- data/src/test/java/org/embulk/input/marketo/delegate/LeadWithProgramInputPluginTest.java +22 -20
- data/src/test/java/org/embulk/input/marketo/delegate/MarketoBaseBulkExtractInputPluginTest.java +27 -28
- data/src/test/java/org/embulk/input/marketo/rest/MarketoBaseRestClientTest.java +56 -57
- data/src/test/java/org/embulk/input/marketo/rest/MarketoRestClientTest.java +136 -125
- metadata +6 -5
data/src/test/java/org/embulk/input/marketo/delegate/ActivityBulkExtractInputPluginTest.java
CHANGED
@@ -6,6 +6,7 @@ import org.embulk.base.restclient.record.ValueLocator;
|
|
6
6
|
import org.embulk.config.ConfigLoader;
|
7
7
|
import org.embulk.config.ConfigSource;
|
8
8
|
import org.embulk.config.TaskReport;
|
9
|
+
import org.embulk.input.marketo.model.BulkExtractRangeHeader;
|
9
10
|
import org.embulk.input.marketo.rest.MarketoRestClient;
|
10
11
|
import org.embulk.spi.Column;
|
11
12
|
import org.embulk.spi.PageBuilder;
|
@@ -14,6 +15,7 @@ import org.junit.Before;
|
|
14
15
|
import org.junit.Rule;
|
15
16
|
import org.junit.Test;
|
16
17
|
import org.mockito.ArgumentCaptor;
|
18
|
+
import org.mockito.Mockito;
|
17
19
|
|
18
20
|
import java.io.IOException;
|
19
21
|
import java.util.Arrays;
|
@@ -23,7 +25,6 @@ import java.util.Set;
|
|
23
25
|
|
24
26
|
import static org.junit.Assert.assertEquals;
|
25
27
|
import static org.mockito.ArgumentMatchers.any;
|
26
|
-
import static org.mockito.Mockito.*;
|
27
28
|
|
28
29
|
/**
|
29
30
|
* Created by khuutantaitai on 10/3/17.
|
@@ -42,11 +43,11 @@ public class ActivityBulkExtractInputPluginTest
|
|
42
43
|
@Before
|
43
44
|
public void prepare() throws IOException
|
44
45
|
{
|
45
|
-
activityBulkExtractInputPlugin = spy(new ActivityBulkExtractInputPlugin());
|
46
|
+
activityBulkExtractInputPlugin = Mockito.spy(new ActivityBulkExtractInputPlugin());
|
46
47
|
ConfigLoader configLoader = embulkTestRuntime.getInjector().getInstance(ConfigLoader.class);
|
47
48
|
configSource = configLoader.fromYaml(this.getClass().getResourceAsStream("/config/activity_bulk_extract_config.yaml"));
|
48
|
-
mockMarketoRestclient = mock(MarketoRestClient.class);
|
49
|
-
doReturn(mockMarketoRestclient).when(activityBulkExtractInputPlugin).createMarketoRestClient(any(ActivityBulkExtractInputPlugin.PluginTask.class));
|
49
|
+
mockMarketoRestclient = Mockito.mock(MarketoRestClient.class);
|
50
|
+
Mockito.doReturn(mockMarketoRestclient).when(activityBulkExtractInputPlugin).createMarketoRestClient(any(ActivityBulkExtractInputPlugin.PluginTask.class));
|
50
51
|
}
|
51
52
|
|
52
53
|
@Test
|
@@ -54,25 +55,25 @@ public class ActivityBulkExtractInputPluginTest
|
|
54
55
|
{
|
55
56
|
ActivityBulkExtractInputPlugin.PluginTask task = configSource.loadConfig(ActivityBulkExtractInputPlugin.PluginTask.class);
|
56
57
|
DateTime startDate = new DateTime(task.getFromDate());
|
57
|
-
PageBuilder pageBuilder = mock(PageBuilder.class);
|
58
|
+
PageBuilder pageBuilder = Mockito.mock(PageBuilder.class);
|
58
59
|
String exportId1 = "exportId1";
|
59
60
|
String exportId2 = "exportId2";
|
60
|
-
when(mockMarketoRestclient.createActivityExtract(any(Date.class), any(Date.class))).thenReturn(exportId1).thenReturn(exportId2).thenReturn(null);
|
61
|
-
when(mockMarketoRestclient.getActivitiesBulkExtractResult(eq(exportId1))).thenReturn(this.getClass().getResourceAsStream("/fixtures/activity_extract1.csv"));
|
62
|
-
when(mockMarketoRestclient.getActivitiesBulkExtractResult(eq(exportId2))).thenReturn(this.getClass().getResourceAsStream("/fixtures/activity_extract2.csv"));
|
61
|
+
Mockito.when(mockMarketoRestclient.createActivityExtract(any(Date.class), any(Date.class))).thenReturn(exportId1).thenReturn(exportId2).thenReturn(null);
|
62
|
+
Mockito.when(mockMarketoRestclient.getActivitiesBulkExtractResult(Mockito.eq(exportId1), any(BulkExtractRangeHeader.class))).thenReturn(this.getClass().getResourceAsStream("/fixtures/activity_extract1.csv"));
|
63
|
+
Mockito.when(mockMarketoRestclient.getActivitiesBulkExtractResult(Mockito.eq(exportId2), any(BulkExtractRangeHeader.class))).thenReturn(this.getClass().getResourceAsStream("/fixtures/activity_extract2.csv"));
|
63
64
|
ServiceResponseMapper<? extends ValueLocator> mapper = activityBulkExtractInputPlugin.buildServiceResponseMapper(task);
|
64
65
|
activityBulkExtractInputPlugin.validateInputTask(task);
|
65
66
|
TaskReport taskReport = activityBulkExtractInputPlugin.ingestServiceData(task, mapper.createRecordImporter(), 1, pageBuilder);
|
66
67
|
ArgumentCaptor<String> argumentCaptor = ArgumentCaptor.forClass(String.class);
|
67
68
|
Column marketoGUID = mapper.getEmbulkSchema().lookupColumn("marketoGUID");
|
68
|
-
verify(pageBuilder, times(55)).setString(eq(marketoGUID), argumentCaptor.capture());
|
69
|
-
verify(mockMarketoRestclient, times(1)).startActitvityBulkExtract(eq(exportId1));
|
70
|
-
verify(mockMarketoRestclient, times(1)).waitActitvityExportJobComplete(eq(exportId1), eq(task.getPollingIntervalSecond()), eq(task.getBulkJobTimeoutSecond()));
|
71
|
-
verify(mockMarketoRestclient, times(1)).startActitvityBulkExtract(eq(exportId2));
|
72
|
-
verify(mockMarketoRestclient, times(1)).waitActitvityExportJobComplete(eq(exportId2), eq(task.getPollingIntervalSecond()), eq(task.getBulkJobTimeoutSecond()));
|
73
|
-
verify(mockMarketoRestclient, times(1)).createActivityExtract(startDate.toDate(), startDate.plusDays(30).toDate());
|
69
|
+
Mockito.verify(pageBuilder, Mockito.times(55)).setString(Mockito.eq(marketoGUID), argumentCaptor.capture());
|
70
|
+
Mockito.verify(mockMarketoRestclient, Mockito.times(1)).startActitvityBulkExtract(Mockito.eq(exportId1));
|
71
|
+
Mockito.verify(mockMarketoRestclient, Mockito.times(1)).waitActitvityExportJobComplete(Mockito.eq(exportId1), Mockito.eq(task.getPollingIntervalSecond()), Mockito.eq(task.getBulkJobTimeoutSecond()));
|
72
|
+
Mockito.verify(mockMarketoRestclient, Mockito.times(1)).startActitvityBulkExtract(Mockito.eq(exportId2));
|
73
|
+
Mockito.verify(mockMarketoRestclient, Mockito.times(1)).waitActitvityExportJobComplete(Mockito.eq(exportId2), Mockito.eq(task.getPollingIntervalSecond()), Mockito.eq(task.getBulkJobTimeoutSecond()));
|
74
|
+
Mockito.verify(mockMarketoRestclient, Mockito.times(1)).createActivityExtract(startDate.toDate(), startDate.plusDays(30).toDate());
|
74
75
|
DateTime startDate2 = startDate.plusDays(30).plusSeconds(1);
|
75
|
-
verify(mockMarketoRestclient, times(1)).createActivityExtract(startDate2.toDate(), startDate.plusDays(task.getFetchDays()).toDate());
|
76
|
+
Mockito.verify(mockMarketoRestclient, Mockito.times(1)).createActivityExtract(startDate2.toDate(), startDate.plusDays(task.getFetchDays()).toDate());
|
76
77
|
List<String> marketoUids = argumentCaptor.getAllValues();
|
77
78
|
assertEquals(55, marketoUids.size());
|
78
79
|
long latestFetchTime = taskReport.get(Long.class, "latest_fetch_time");
|
@@ -17,12 +17,12 @@ import org.junit.Before;
|
|
17
17
|
import org.junit.Rule;
|
18
18
|
import org.junit.Test;
|
19
19
|
import org.mockito.ArgumentCaptor;
|
20
|
+
import org.mockito.Mockito;
|
20
21
|
|
21
22
|
import java.io.IOException;
|
22
23
|
import java.util.List;
|
23
24
|
|
24
25
|
import static org.junit.Assert.assertArrayEquals;
|
25
|
-
import static org.mockito.Mockito.*;
|
26
26
|
|
27
27
|
/**
|
28
28
|
* Created by tai.khuu on 10/10/17.
|
@@ -43,30 +43,30 @@ public class CampaignInputPluginTest
|
|
43
43
|
@Before
|
44
44
|
public void setUp() throws Exception
|
45
45
|
{
|
46
|
-
campaignInputPlugin = spy(new CampaignInputPlugin());
|
46
|
+
campaignInputPlugin = Mockito.spy(new CampaignInputPlugin());
|
47
47
|
ConfigLoader configLoader = embulkTestRuntime.getInjector().getInstance(ConfigLoader.class);
|
48
48
|
configSource = configLoader.fromYaml(this.getClass().getResourceAsStream("/config/rest_config.yaml"));
|
49
|
-
mockMarketoRestClient = mock(MarketoRestClient.class);
|
50
|
-
doReturn(mockMarketoRestClient).when(campaignInputPlugin).createMarketoRestClient(any(CampaignInputPlugin.PluginTask.class));
|
49
|
+
mockMarketoRestClient = Mockito.mock(MarketoRestClient.class);
|
50
|
+
Mockito.doReturn(mockMarketoRestClient).when(campaignInputPlugin).createMarketoRestClient(Mockito.any(CampaignInputPlugin.PluginTask.class));
|
51
51
|
}
|
52
52
|
|
53
53
|
@Test
|
54
54
|
public void testRun() throws IOException
|
55
55
|
{
|
56
|
-
RecordPagingIterable<ObjectNode> mockRecordPagingIterable = mock(RecordPagingIterable.class);
|
56
|
+
RecordPagingIterable<ObjectNode> mockRecordPagingIterable = Mockito.mock(RecordPagingIterable.class);
|
57
57
|
JavaType javaType = OBJECT_MAPPER.getTypeFactory().constructParametrizedType(List.class, List.class, ObjectNode.class);
|
58
58
|
List<ObjectNode> objectNodeList = OBJECT_MAPPER.readValue(this.getClass().getResourceAsStream("/fixtures/campaign_response_full.json"), javaType);
|
59
|
-
when(mockRecordPagingIterable.iterator()).thenReturn(objectNodeList.iterator());
|
60
|
-
when(mockMarketoRestClient.getCampaign()).thenReturn(mockRecordPagingIterable);
|
59
|
+
Mockito.when(mockRecordPagingIterable.iterator()).thenReturn(objectNodeList.iterator());
|
60
|
+
Mockito.when(mockMarketoRestClient.getCampaign()).thenReturn(mockRecordPagingIterable);
|
61
61
|
CampaignInputPlugin.PluginTask task = configSource.loadConfig(CampaignInputPlugin.PluginTask.class);
|
62
62
|
ServiceResponseMapper<? extends ValueLocator> mapper = campaignInputPlugin.buildServiceResponseMapper(task);
|
63
63
|
RecordImporter recordImporter = mapper.createRecordImporter();
|
64
|
-
PageBuilder mockPageBuilder = mock(PageBuilder.class);
|
64
|
+
PageBuilder mockPageBuilder = Mockito.mock(PageBuilder.class);
|
65
65
|
campaignInputPlugin.ingestServiceData(task, recordImporter, 1, mockPageBuilder);
|
66
|
-
verify(mockMarketoRestClient, times(1)).getCampaign();
|
66
|
+
Mockito.verify(mockMarketoRestClient, Mockito.times(1)).getCampaign();
|
67
67
|
Schema embulkSchema = mapper.getEmbulkSchema();
|
68
68
|
ArgumentCaptor<Long> longArgumentCaptor = ArgumentCaptor.forClass(Long.class);
|
69
|
-
verify(mockPageBuilder, times(10)).setLong(eq(embulkSchema.lookupColumn("id")), longArgumentCaptor.capture());
|
69
|
+
Mockito.verify(mockPageBuilder, Mockito.times(10)).setLong(Mockito.eq(embulkSchema.lookupColumn("id")), longArgumentCaptor.capture());
|
70
70
|
List<Long> allValues = longArgumentCaptor.getAllValues();
|
71
71
|
assertArrayEquals(new Long[]{1003L, 1004L, 1005L, 1006L, 1007L, 1008L, 1029L, 1048L, 1051L, 1065L}, allValues.toArray());
|
72
72
|
}
|
@@ -9,25 +9,26 @@ import org.embulk.config.ConfigLoader;
|
|
9
9
|
import org.embulk.config.ConfigSource;
|
10
10
|
import org.embulk.config.TaskReport;
|
11
11
|
import org.embulk.input.marketo.MarketoUtils;
|
12
|
+
import org.embulk.input.marketo.model.BulkExtractRangeHeader;
|
12
13
|
import org.embulk.input.marketo.model.MarketoField;
|
13
14
|
import org.embulk.input.marketo.rest.MarketoRestClient;
|
14
15
|
import org.embulk.spi.Column;
|
15
16
|
import org.embulk.spi.PageBuilder;
|
16
17
|
import org.joda.time.DateTime;
|
18
|
+
import org.junit.Assert;
|
17
19
|
import org.junit.Before;
|
18
20
|
import org.junit.Rule;
|
19
21
|
import org.junit.Test;
|
20
22
|
import org.mockito.ArgumentCaptor;
|
23
|
+
import org.mockito.Mockito;
|
21
24
|
|
22
25
|
import java.io.IOException;
|
23
26
|
import java.util.Date;
|
24
27
|
import java.util.List;
|
25
28
|
import java.util.Set;
|
26
29
|
|
27
|
-
import static org.junit.Assert.*;
|
28
30
|
import static org.mockito.ArgumentMatchers.any;
|
29
31
|
import static org.mockito.ArgumentMatchers.eq;
|
30
|
-
import static org.mockito.Mockito.*;
|
31
32
|
|
32
33
|
/**
|
33
34
|
* Created by khuutantaitai on 10/3/17.
|
@@ -48,11 +49,11 @@ public class LeadBulkExtractInputPluginTest
|
|
48
49
|
@Before
|
49
50
|
public void prepare() throws IOException
|
50
51
|
{
|
51
|
-
bulkExtractInputPlugin = spy(new LeadBulkExtractInputPlugin());
|
52
|
+
bulkExtractInputPlugin = Mockito.spy(new LeadBulkExtractInputPlugin());
|
52
53
|
ConfigLoader configLoader = embulkTestRuntime.getInjector().getInstance(ConfigLoader.class);
|
53
54
|
configSource = configLoader.fromYaml(this.getClass().getResourceAsStream("/config/lead_bulk_extract_config.yaml"));
|
54
|
-
mockMarketoRestclient = mock(MarketoRestClient.class);
|
55
|
-
doReturn(mockMarketoRestclient).when(bulkExtractInputPlugin).createMarketoRestClient(any(LeadBulkExtractInputPlugin.PluginTask.class));
|
55
|
+
mockMarketoRestclient = Mockito.mock(MarketoRestClient.class);
|
56
|
+
Mockito.doReturn(mockMarketoRestclient).when(bulkExtractInputPlugin).createMarketoRestClient(any(LeadBulkExtractInputPlugin.PluginTask.class));
|
56
57
|
}
|
57
58
|
|
58
59
|
@Test
|
@@ -60,35 +61,35 @@ public class LeadBulkExtractInputPluginTest
|
|
60
61
|
{
|
61
62
|
LeadBulkExtractInputPlugin.PluginTask task = configSource.loadConfig(LeadBulkExtractInputPlugin.PluginTask.class);
|
62
63
|
DateTime startDate = new DateTime(task.getFromDate());
|
63
|
-
PageBuilder pageBuilder = mock(PageBuilder.class);
|
64
|
+
PageBuilder pageBuilder = Mockito.mock(PageBuilder.class);
|
64
65
|
String exportId1 = "exportId1";
|
65
66
|
String exportId2 = "exportId2";
|
66
67
|
JavaType javaType = OBJECT_MAPPER.getTypeFactory().constructParametrizedType(List.class, List.class, MarketoField.class);
|
67
68
|
List<MarketoField> marketoFields = OBJECT_MAPPER.readValue(this.getClass().getResourceAsStream("/fixtures/lead_describe_marketo_fields_full.json"), javaType);
|
68
69
|
List<String> fieldNameFromMarketoFields = MarketoUtils.getFieldNameFromMarketoFields(marketoFields);
|
69
|
-
when(mockMarketoRestclient.describeLead()).thenReturn(marketoFields);
|
70
|
-
when(mockMarketoRestclient.createLeadBulkExtract(any(Date.class), any(Date.class), any(List.class), any(String.class))).thenReturn(exportId1).thenReturn(exportId2).thenReturn(null);
|
71
|
-
when(mockMarketoRestclient.getLeadBulkExtractResult(eq(exportId1))).thenReturn(this.getClass().getResourceAsStream("/fixtures/lead_extract1.csv"));
|
72
|
-
when(mockMarketoRestclient.getLeadBulkExtractResult(eq(exportId2))).thenReturn(this.getClass().getResourceAsStream("/fixtures/leads_extract2.csv"));
|
70
|
+
Mockito.when(mockMarketoRestclient.describeLead()).thenReturn(marketoFields);
|
71
|
+
Mockito.when(mockMarketoRestclient.createLeadBulkExtract(any(Date.class), any(Date.class), any(List.class), any(String.class))).thenReturn(exportId1).thenReturn(exportId2).thenReturn(null);
|
72
|
+
Mockito.when(mockMarketoRestclient.getLeadBulkExtractResult(eq(exportId1), any(BulkExtractRangeHeader.class))).thenReturn(this.getClass().getResourceAsStream("/fixtures/lead_extract1.csv"));
|
73
|
+
Mockito.when(mockMarketoRestclient.getLeadBulkExtractResult(eq(exportId2), any(BulkExtractRangeHeader.class))).thenReturn(this.getClass().getResourceAsStream("/fixtures/leads_extract2.csv"));
|
73
74
|
ServiceResponseMapper<? extends ValueLocator> mapper = bulkExtractInputPlugin.buildServiceResponseMapper(task);
|
74
75
|
bulkExtractInputPlugin.validateInputTask(task);
|
75
76
|
TaskReport taskReport = bulkExtractInputPlugin.ingestServiceData(task, mapper.createRecordImporter(), 1, pageBuilder);
|
76
77
|
ArgumentCaptor<Long> argumentCaptor = ArgumentCaptor.forClass(Long.class);
|
77
78
|
Column idColumn = mapper.getEmbulkSchema().lookupColumn("mk_id");
|
78
|
-
verify(pageBuilder, times(19)).setLong(eq(idColumn), argumentCaptor.capture());
|
79
|
-
verify(mockMarketoRestclient, times(1)).startLeadBulkExtract(eq(exportId1));
|
80
|
-
verify(mockMarketoRestclient, times(1)).waitLeadExportJobComplete(eq(exportId1), eq(task.getPollingIntervalSecond()), eq(task.getBulkJobTimeoutSecond()));
|
81
|
-
verify(mockMarketoRestclient, times(1)).startLeadBulkExtract(eq(exportId2));
|
82
|
-
verify(mockMarketoRestclient, times(1)).waitLeadExportJobComplete(eq(exportId2), eq(task.getPollingIntervalSecond()), eq(task.getBulkJobTimeoutSecond()));
|
79
|
+
Mockito.verify(pageBuilder, Mockito.times(19)).setLong(eq(idColumn), argumentCaptor.capture());
|
80
|
+
Mockito.verify(mockMarketoRestclient, Mockito.times(1)).startLeadBulkExtract(eq(exportId1));
|
81
|
+
Mockito.verify(mockMarketoRestclient, Mockito.times(1)).waitLeadExportJobComplete(eq(exportId1), eq(task.getPollingIntervalSecond()), eq(task.getBulkJobTimeoutSecond()));
|
82
|
+
Mockito.verify(mockMarketoRestclient, Mockito.times(1)).startLeadBulkExtract(eq(exportId2));
|
83
|
+
Mockito.verify(mockMarketoRestclient, Mockito.times(1)).waitLeadExportJobComplete(eq(exportId2), eq(task.getPollingIntervalSecond()), eq(task.getBulkJobTimeoutSecond()));
|
83
84
|
String filterField = "updatedAt";
|
84
|
-
verify(mockMarketoRestclient, times(1)).createLeadBulkExtract(startDate.toDate(), startDate.plusDays(30).toDate(), fieldNameFromMarketoFields, filterField);
|
85
|
+
Mockito.verify(mockMarketoRestclient, Mockito.times(1)).createLeadBulkExtract(startDate.toDate(), startDate.plusDays(30).toDate(), fieldNameFromMarketoFields, filterField);
|
85
86
|
DateTime startDate2 = startDate.plusDays(30).plusSeconds(1);
|
86
|
-
verify(mockMarketoRestclient, times(1)).createLeadBulkExtract(startDate2.toDate(), startDate.plusDays(task.getFetchDays()).toDate(), fieldNameFromMarketoFields, filterField);
|
87
|
+
Mockito.verify(mockMarketoRestclient, Mockito.times(1)).createLeadBulkExtract(startDate2.toDate(), startDate.plusDays(task.getFetchDays()).toDate(), fieldNameFromMarketoFields, filterField);
|
87
88
|
List<Long> leadIds = argumentCaptor.getAllValues();
|
88
|
-
assertEquals(19, leadIds.size());
|
89
|
+
Assert.assertEquals(19, leadIds.size());
|
89
90
|
long latestFetchTime = taskReport.get(Long.class, "latest_fetch_time");
|
90
|
-
assertTrue(taskReport.get(Set.class, "latest_uids").isEmpty());
|
91
|
-
assertEquals(1504888753000L, latestFetchTime);
|
92
|
-
assertArrayEquals(new Long[]{102488L, 102456L, 102445L, 102439L, 102471L, 102503L, 102424L, 102473L, 102505L, 102492L, 102495L, 102452L, 102435L, 102467L, 102420L, 102496L, 102448L, 102499L, 102431L}, leadIds.toArray());
|
91
|
+
Assert.assertTrue(taskReport.get(Set.class, "latest_uids").isEmpty());
|
92
|
+
Assert.assertEquals(1504888753000L, latestFetchTime);
|
93
|
+
Assert.assertArrayEquals(new Long[]{102488L, 102456L, 102445L, 102439L, 102471L, 102503L, 102424L, 102473L, 102505L, 102492L, 102495L, 102452L, 102435L, 102467L, 102420L, 102496L, 102448L, 102499L, 102431L}, leadIds.toArray());
|
93
94
|
}
|
94
95
|
}
|
@@ -3,6 +3,7 @@ package org.embulk.input.marketo.delegate;
|
|
3
3
|
import com.fasterxml.jackson.databind.JavaType;
|
4
4
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
5
5
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
6
|
+
import org.apache.commons.lang3.StringUtils;
|
6
7
|
import org.embulk.EmbulkTestRuntime;
|
7
8
|
import org.embulk.base.restclient.ServiceResponseMapper;
|
8
9
|
import org.embulk.base.restclient.record.RecordImporter;
|
@@ -19,6 +20,7 @@ import org.junit.Before;
|
|
19
20
|
import org.junit.Rule;
|
20
21
|
import org.junit.Test;
|
21
22
|
import org.mockito.ArgumentCaptor;
|
23
|
+
import org.mockito.Mockito;
|
22
24
|
|
23
25
|
import java.io.IOException;
|
24
26
|
import java.util.ArrayList;
|
@@ -27,7 +29,6 @@ import java.util.List;
|
|
27
29
|
import static org.junit.Assert.assertEquals;
|
28
30
|
import static org.mockito.ArgumentMatchers.any;
|
29
31
|
import static org.mockito.ArgumentMatchers.eq;
|
30
|
-
import static org.mockito.Mockito.*;
|
31
32
|
|
32
33
|
/**
|
33
34
|
* Created by tai.khuu on 10/10/17.
|
@@ -48,49 +49,50 @@ public class LeadWithListInputPluginTest
|
|
48
49
|
@Before
|
49
50
|
public void setUp() throws Exception
|
50
51
|
{
|
51
|
-
leadWithListInputPlugin = spy(new LeadWithListInputPlugin());
|
52
|
+
leadWithListInputPlugin = Mockito.spy(new LeadWithListInputPlugin());
|
52
53
|
ConfigLoader configLoader = embulkTestRuntime.getInjector().getInstance(ConfigLoader.class);
|
53
54
|
configSource = configLoader.fromYaml(this.getClass().getResourceAsStream("/config/rest_config.yaml"));
|
54
|
-
mockMarketoRestClient = mock(MarketoRestClient.class);
|
55
|
-
doReturn(mockMarketoRestClient).when(leadWithListInputPlugin).createMarketoRestClient(any(LeadWithListInputPlugin.PluginTask.class));
|
55
|
+
mockMarketoRestClient = Mockito.mock(MarketoRestClient.class);
|
56
|
+
Mockito.doReturn(mockMarketoRestClient).when(leadWithListInputPlugin).createMarketoRestClient(any(LeadWithListInputPlugin.PluginTask.class));
|
56
57
|
}
|
57
58
|
|
58
59
|
@Test
|
59
60
|
public void testRun() throws IOException
|
60
61
|
{
|
61
|
-
RecordPagingIterable<ObjectNode> mockLeadRecordPagingIterable = mock(RecordPagingIterable.class);
|
62
|
-
RecordPagingIterable<ObjectNode> mockLeadEmptyRecordPagingIterable = mock(RecordPagingIterable.class);
|
63
|
-
RecordPagingIterable<ObjectNode> mocklistRecords = mock(RecordPagingIterable.class);
|
62
|
+
RecordPagingIterable<ObjectNode> mockLeadRecordPagingIterable = Mockito.mock(RecordPagingIterable.class);
|
63
|
+
RecordPagingIterable<ObjectNode> mockLeadEmptyRecordPagingIterable = Mockito.mock(RecordPagingIterable.class);
|
64
|
+
RecordPagingIterable<ObjectNode> mocklistRecords = Mockito.mock(RecordPagingIterable.class);
|
64
65
|
|
65
|
-
when(mockLeadEmptyRecordPagingIterable.iterator()).thenReturn(new ArrayList<ObjectNode>().iterator());
|
66
|
+
Mockito.when(mockLeadEmptyRecordPagingIterable.iterator()).thenReturn(new ArrayList<ObjectNode>().iterator());
|
66
67
|
JavaType objectNodeListType = OBJECT_MAPPER.getTypeFactory().constructParametrizedType(List.class, List.class, ObjectNode.class);
|
67
68
|
JavaType marketoFieldsType = OBJECT_MAPPER.getTypeFactory().constructParametrizedType(List.class, List.class, MarketoField.class);
|
68
69
|
List<ObjectNode> leads = OBJECT_MAPPER.readValue(this.getClass().getResourceAsStream("/fixtures/lead_response_full.json"), objectNodeListType);
|
69
70
|
List<ObjectNode> lists = OBJECT_MAPPER.readValue(this.getClass().getResourceAsStream("/fixtures/list_reponse_full.json"), objectNodeListType);
|
70
|
-
when(mocklistRecords.iterator()).thenReturn(lists.iterator());
|
71
|
+
Mockito.when(mocklistRecords.iterator()).thenReturn(lists.iterator());
|
71
72
|
List<MarketoField> marketoFields = OBJECT_MAPPER.readValue(this.getClass().getResourceAsStream("/fixtures/lead_describe_marketo_fields_full.json"), marketoFieldsType);
|
72
|
-
when(mockLeadRecordPagingIterable.iterator()).thenReturn(leads.iterator());
|
73
|
-
when(mockMarketoRestClient.describeLead()).thenReturn(marketoFields);
|
74
|
-
when(mockMarketoRestClient.getLists()).thenReturn(mocklistRecords);
|
73
|
+
Mockito.when(mockLeadRecordPagingIterable.iterator()).thenReturn(leads.iterator());
|
74
|
+
Mockito.when(mockMarketoRestClient.describeLead()).thenReturn(marketoFields);
|
75
|
+
Mockito.when(mockMarketoRestClient.getLists()).thenReturn(mocklistRecords);
|
75
76
|
List<String> fieldNameFromMarketoFields = MarketoUtils.getFieldNameFromMarketoFields(marketoFields);
|
76
|
-
|
77
|
-
when(mockMarketoRestClient.getLeadsByList(
|
77
|
+
String fieldNameString = StringUtils.join(fieldNameFromMarketoFields, ",");
|
78
|
+
Mockito.when(mockMarketoRestClient.getLeadsByList(Mockito.anyString(), eq(fieldNameString))).thenReturn(mockLeadEmptyRecordPagingIterable);
|
79
|
+
Mockito.when(mockMarketoRestClient.getLeadsByList("1009", fieldNameString)).thenReturn(mockLeadRecordPagingIterable);
|
78
80
|
|
79
81
|
LeadWithListInputPlugin.PluginTask task = configSource.loadConfig(LeadWithListInputPlugin.PluginTask.class);
|
80
82
|
ServiceResponseMapper<? extends ValueLocator> mapper = leadWithListInputPlugin.buildServiceResponseMapper(task);
|
81
83
|
|
82
84
|
RecordImporter recordImporter = mapper.createRecordImporter();
|
83
|
-
PageBuilder mockPageBuilder = mock(PageBuilder.class);
|
85
|
+
PageBuilder mockPageBuilder = Mockito.mock(PageBuilder.class);
|
84
86
|
leadWithListInputPlugin.ingestServiceData(task, recordImporter, 1, mockPageBuilder);
|
85
|
-
verify(mockMarketoRestClient, times(1)).getLists();
|
86
|
-
verify(mockMarketoRestClient, times(24)).getLeadsByList(anyString(), eq(
|
87
|
-
verify(mockMarketoRestClient, times(1)).describeLead();
|
87
|
+
Mockito.verify(mockMarketoRestClient, Mockito.times(1)).getLists();
|
88
|
+
Mockito.verify(mockMarketoRestClient, Mockito.times(24)).getLeadsByList(Mockito.anyString(), eq(fieldNameString));
|
89
|
+
Mockito.verify(mockMarketoRestClient, Mockito.times(1)).describeLead();
|
88
90
|
|
89
91
|
Schema embulkSchema = mapper.getEmbulkSchema();
|
90
92
|
ArgumentCaptor<Long> longArgumentCaptor = ArgumentCaptor.forClass(Long.class);
|
91
93
|
|
92
|
-
verify(mockPageBuilder, times(300)).setLong(eq(embulkSchema.lookupColumn("mk_id")), longArgumentCaptor.capture());
|
93
|
-
verify(mockPageBuilder, times(300)).setString(eq(embulkSchema.lookupColumn("mk_listId")), eq("1009"));
|
94
|
+
Mockito.verify(mockPageBuilder, Mockito.times(300)).setLong(eq(embulkSchema.lookupColumn("mk_id")), longArgumentCaptor.capture());
|
95
|
+
Mockito.verify(mockPageBuilder, Mockito.times(300)).setString(eq(embulkSchema.lookupColumn("mk_listId")), eq("1009"));
|
94
96
|
|
95
97
|
List<Long> allValues = longArgumentCaptor.getAllValues();
|
96
98
|
long actualValue = allValues.get(0);
|
@@ -3,6 +3,7 @@ package org.embulk.input.marketo.delegate;
|
|
3
3
|
import com.fasterxml.jackson.databind.JavaType;
|
4
4
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
5
5
|
import com.fasterxml.jackson.databind.node.ObjectNode;
|
6
|
+
import org.apache.commons.lang3.StringUtils;
|
6
7
|
import org.embulk.EmbulkTestRuntime;
|
7
8
|
import org.embulk.base.restclient.ServiceResponseMapper;
|
8
9
|
import org.embulk.base.restclient.record.RecordImporter;
|
@@ -19,6 +20,7 @@ import org.junit.Before;
|
|
19
20
|
import org.junit.Rule;
|
20
21
|
import org.junit.Test;
|
21
22
|
import org.mockito.ArgumentCaptor;
|
23
|
+
import org.mockito.Mockito;
|
22
24
|
|
23
25
|
import java.io.IOException;
|
24
26
|
import java.util.ArrayList;
|
@@ -28,7 +30,6 @@ import static org.junit.Assert.assertEquals;
|
|
28
30
|
import static org.mockito.ArgumentMatchers.any;
|
29
31
|
import static org.mockito.ArgumentMatchers.anyString;
|
30
32
|
import static org.mockito.ArgumentMatchers.eq;
|
31
|
-
import static org.mockito.Mockito.*;
|
32
33
|
|
33
34
|
/**
|
34
35
|
* Created by tai.khuu on 10/10/17.
|
@@ -49,50 +50,51 @@ public class LeadWithProgramInputPluginTest
|
|
49
50
|
@Before
|
50
51
|
public void setUp() throws Exception
|
51
52
|
{
|
52
|
-
leadWithProgramInputPlugin = spy(new LeadWithProgramInputPlugin());
|
53
|
+
leadWithProgramInputPlugin = Mockito.spy(new LeadWithProgramInputPlugin());
|
53
54
|
ConfigLoader configLoader = embulkTestRuntime.getInjector().getInstance(ConfigLoader.class);
|
54
55
|
configSource = configLoader.fromYaml(this.getClass().getResourceAsStream("/config/rest_config.yaml"));
|
55
|
-
mockMarketoRestClient = mock(MarketoRestClient.class);
|
56
|
-
doReturn(mockMarketoRestClient).when(leadWithProgramInputPlugin).createMarketoRestClient(any(LeadWithProgramInputPlugin.PluginTask.class));
|
56
|
+
mockMarketoRestClient = Mockito.mock(MarketoRestClient.class);
|
57
|
+
Mockito.doReturn(mockMarketoRestClient).when(leadWithProgramInputPlugin).createMarketoRestClient(any(LeadWithProgramInputPlugin.PluginTask.class));
|
57
58
|
}
|
58
59
|
|
59
60
|
@Test
|
60
61
|
public void testRun() throws IOException
|
61
62
|
{
|
62
|
-
RecordPagingIterable<ObjectNode> mockLeadRecordPagingIterable = mock(RecordPagingIterable.class);
|
63
|
-
RecordPagingIterable<ObjectNode> mockLeadEmptyRecordPagingIterable = mock(RecordPagingIterable.class);
|
64
|
-
RecordPagingIterable<ObjectNode> mockProgramRecords = mock(RecordPagingIterable.class);
|
63
|
+
RecordPagingIterable<ObjectNode> mockLeadRecordPagingIterable = Mockito.mock(RecordPagingIterable.class);
|
64
|
+
RecordPagingIterable<ObjectNode> mockLeadEmptyRecordPagingIterable = Mockito.mock(RecordPagingIterable.class);
|
65
|
+
RecordPagingIterable<ObjectNode> mockProgramRecords = Mockito.mock(RecordPagingIterable.class);
|
65
66
|
|
66
|
-
when(mockLeadEmptyRecordPagingIterable.iterator()).thenReturn(new ArrayList<ObjectNode>().iterator());
|
67
|
+
Mockito.when(mockLeadEmptyRecordPagingIterable.iterator()).thenReturn(new ArrayList<ObjectNode>().iterator());
|
67
68
|
JavaType objectNodeListType = OBJECT_MAPPER.getTypeFactory().constructParametrizedType(List.class, List.class, ObjectNode.class);
|
68
69
|
JavaType marketoFieldsType = OBJECT_MAPPER.getTypeFactory().constructParametrizedType(List.class, List.class, MarketoField.class);
|
69
70
|
List<ObjectNode> leads = OBJECT_MAPPER.readValue(this.getClass().getResourceAsStream("/fixtures/lead_with_program_full.json"), objectNodeListType);
|
70
71
|
List<ObjectNode> programs = OBJECT_MAPPER.readValue(this.getClass().getResourceAsStream("/fixtures/all_program_full.json"), objectNodeListType);
|
71
|
-
when(mockProgramRecords.iterator()).thenReturn(programs.iterator());
|
72
|
+
Mockito.when(mockProgramRecords.iterator()).thenReturn(programs.iterator());
|
72
73
|
List<MarketoField> marketoFields = OBJECT_MAPPER.readValue(this.getClass().getResourceAsStream("/fixtures/lead_describe_marketo_fields_full.json"), marketoFieldsType);
|
73
|
-
when(mockLeadRecordPagingIterable.iterator()).thenReturn(leads.iterator());
|
74
|
-
when(mockMarketoRestClient.describeLead()).thenReturn(marketoFields);
|
75
|
-
when(mockMarketoRestClient.getPrograms()).thenReturn(mockProgramRecords);
|
74
|
+
Mockito.when(mockLeadRecordPagingIterable.iterator()).thenReturn(leads.iterator());
|
75
|
+
Mockito.when(mockMarketoRestClient.describeLead()).thenReturn(marketoFields);
|
76
|
+
Mockito.when(mockMarketoRestClient.getPrograms()).thenReturn(mockProgramRecords);
|
76
77
|
List<String> fieldNameFromMarketoFields = MarketoUtils.getFieldNameFromMarketoFields(marketoFields);
|
77
|
-
|
78
|
-
when(mockMarketoRestClient.getLeadsByProgram(
|
78
|
+
String fieldNameString = StringUtils.join(fieldNameFromMarketoFields, ",");
|
79
|
+
Mockito.when(mockMarketoRestClient.getLeadsByProgram(anyString(), eq(fieldNameString))).thenReturn(mockLeadEmptyRecordPagingIterable);
|
80
|
+
Mockito.when(mockMarketoRestClient.getLeadsByProgram("1003", fieldNameString)).thenReturn(mockLeadRecordPagingIterable);
|
79
81
|
|
80
82
|
LeadWithProgramInputPlugin.PluginTask task = configSource.loadConfig(LeadWithProgramInputPlugin.PluginTask.class);
|
81
83
|
ServiceResponseMapper<? extends ValueLocator> mapper = leadWithProgramInputPlugin.buildServiceResponseMapper(task);
|
82
84
|
|
83
85
|
RecordImporter recordImporter = mapper.createRecordImporter();
|
84
|
-
PageBuilder mockPageBuilder = mock(PageBuilder.class);
|
86
|
+
PageBuilder mockPageBuilder = Mockito.mock(PageBuilder.class);
|
85
87
|
|
86
88
|
leadWithProgramInputPlugin.ingestServiceData(task, recordImporter, 1, mockPageBuilder);
|
87
|
-
verify(mockMarketoRestClient, times(1)).getPrograms();
|
88
|
-
verify(mockMarketoRestClient, times(3)).getLeadsByProgram(anyString(), eq(
|
89
|
-
verify(mockMarketoRestClient, times(1)).describeLead();
|
89
|
+
Mockito.verify(mockMarketoRestClient, Mockito.times(1)).getPrograms();
|
90
|
+
Mockito.verify(mockMarketoRestClient, Mockito.times(3)).getLeadsByProgram(anyString(), eq(fieldNameString));
|
91
|
+
Mockito.verify(mockMarketoRestClient, Mockito.times(1)).describeLead();
|
90
92
|
|
91
93
|
Schema embulkSchema = mapper.getEmbulkSchema();
|
92
94
|
ArgumentCaptor<Long> longArgumentCaptor = ArgumentCaptor.forClass(Long.class);
|
93
95
|
|
94
|
-
verify(mockPageBuilder, times(1)).setLong(eq(embulkSchema.lookupColumn("mk_id")), longArgumentCaptor.capture());
|
95
|
-
verify(mockPageBuilder, times(1)).setString(eq(embulkSchema.lookupColumn("mk_programId")), eq("1003"));
|
96
|
+
Mockito.verify(mockPageBuilder, Mockito.times(1)).setLong(eq(embulkSchema.lookupColumn("mk_id")), longArgumentCaptor.capture());
|
97
|
+
Mockito.verify(mockPageBuilder, Mockito.times(1)).setString(eq(embulkSchema.lookupColumn("mk_programId")), eq("1003"));
|
96
98
|
|
97
99
|
List<Long> allValues = longArgumentCaptor.getAllValues();
|
98
100
|
long actualValue = allValues.get(0);
|
data/src/test/java/org/embulk/input/marketo/delegate/MarketoBaseBulkExtractInputPluginTest.java
CHANGED
@@ -23,7 +23,6 @@ import java.util.Date;
|
|
23
23
|
import java.util.Set;
|
24
24
|
|
25
25
|
import static org.junit.Assert.assertEquals;
|
26
|
-
import static org.mockito.Mockito.*;
|
27
26
|
|
28
27
|
/**
|
29
28
|
* Created by khuutantaitai on 10/3/17.
|
@@ -38,14 +37,14 @@ public class MarketoBaseBulkExtractInputPluginTest
|
|
38
37
|
@Before
|
39
38
|
public void prepare()
|
40
39
|
{
|
41
|
-
baseBulkExtractInputPlugin = mock(MarketoBaseBulkExtractInputPlugin.class, Mockito.CALLS_REAL_METHODS);
|
40
|
+
baseBulkExtractInputPlugin = Mockito.mock(MarketoBaseBulkExtractInputPlugin.class, Mockito.CALLS_REAL_METHODS);
|
42
41
|
}
|
43
42
|
|
44
43
|
@Test(expected = ConfigException.class)
|
45
44
|
public void validateInputTaskError()
|
46
45
|
{
|
47
|
-
MarketoBaseBulkExtractInputPlugin.PluginTask pluginTask = mock(MarketoBaseBulkExtractInputPlugin.PluginTask.class);
|
48
|
-
when(pluginTask.getFromDate()).thenReturn(null);
|
46
|
+
MarketoBaseBulkExtractInputPlugin.PluginTask pluginTask = Mockito.mock(MarketoBaseBulkExtractInputPlugin.PluginTask.class);
|
47
|
+
Mockito.when(pluginTask.getFromDate()).thenReturn(null);
|
49
48
|
baseBulkExtractInputPlugin.validateInputTask(pluginTask);
|
50
49
|
}
|
51
50
|
|
@@ -53,12 +52,12 @@ public class MarketoBaseBulkExtractInputPluginTest
|
|
53
52
|
public void validateInputTaskToDateLessThanJobStartTime()
|
54
53
|
{
|
55
54
|
Date fromDate = new Date(1504224000000L);
|
56
|
-
MarketoBaseBulkExtractInputPlugin.PluginTask pluginTask = mock(MarketoBaseBulkExtractInputPlugin.PluginTask.class);
|
57
|
-
when(pluginTask.getFromDate()).thenReturn(fromDate);
|
58
|
-
when(pluginTask.getFetchDays()).thenReturn(7);
|
55
|
+
MarketoBaseBulkExtractInputPlugin.PluginTask pluginTask = Mockito.mock(MarketoBaseBulkExtractInputPlugin.PluginTask.class);
|
56
|
+
Mockito.when(pluginTask.getFromDate()).thenReturn(fromDate);
|
57
|
+
Mockito.when(pluginTask.getFetchDays()).thenReturn(7);
|
59
58
|
baseBulkExtractInputPlugin.validateInputTask(pluginTask);
|
60
59
|
ArgumentCaptor<Optional<Date>> argumentCaptor = ArgumentCaptor.forClass(Optional.class);
|
61
|
-
verify(pluginTask, times(1)).setToDate(argumentCaptor.capture());
|
60
|
+
Mockito.verify(pluginTask, Mockito.times(1)).setToDate(argumentCaptor.capture());
|
62
61
|
assertEquals(1504828800000L, argumentCaptor.getValue().get().getTime());
|
63
62
|
}
|
64
63
|
|
@@ -67,13 +66,13 @@ public class MarketoBaseBulkExtractInputPluginTest
|
|
67
66
|
{
|
68
67
|
Date fromDate = new Date(1504224000000L);
|
69
68
|
DateTime jobStartTime = new DateTime(1504396800000L);
|
70
|
-
MarketoBaseBulkExtractInputPlugin.PluginTask pluginTask = mock(MarketoBaseBulkExtractInputPlugin.PluginTask.class);
|
71
|
-
when(pluginTask.getFromDate()).thenReturn(fromDate);
|
72
|
-
when(pluginTask.getFetchDays()).thenReturn(7);
|
73
|
-
when(pluginTask.getJobStartTime()).thenReturn(jobStartTime);
|
69
|
+
MarketoBaseBulkExtractInputPlugin.PluginTask pluginTask = Mockito.mock(MarketoBaseBulkExtractInputPlugin.PluginTask.class);
|
70
|
+
Mockito.when(pluginTask.getFromDate()).thenReturn(fromDate);
|
71
|
+
Mockito.when(pluginTask.getFetchDays()).thenReturn(7);
|
72
|
+
Mockito.when(pluginTask.getJobStartTime()).thenReturn(jobStartTime);
|
74
73
|
baseBulkExtractInputPlugin.validateInputTask(pluginTask);
|
75
74
|
ArgumentCaptor<Optional<Date>> toDateArgumentCaptor = ArgumentCaptor.forClass(Optional.class);
|
76
|
-
verify(pluginTask, times(1)).setToDate(toDateArgumentCaptor.capture());
|
75
|
+
Mockito.verify(pluginTask, Mockito.times(1)).setToDate(toDateArgumentCaptor.capture());
|
77
76
|
assertEquals(jobStartTime.minusHours(1).getMillis(), toDateArgumentCaptor.getValue().get().getTime());
|
78
77
|
}
|
79
78
|
|
@@ -82,10 +81,10 @@ public class MarketoBaseBulkExtractInputPluginTest
|
|
82
81
|
{
|
83
82
|
DateTime date = new DateTime(1505033728000L);
|
84
83
|
DateTime jobStartTime = new DateTime(1507625728000L);
|
85
|
-
MarketoBaseBulkExtractInputPlugin.PluginTask pluginTask = mock(MarketoInputPluginDelegate.PluginTask.class);
|
86
|
-
when(pluginTask.getFromDate()).thenReturn(date.toDate());
|
87
|
-
when(pluginTask.getFetchDays()).thenReturn(30);
|
88
|
-
when(pluginTask.getJobStartTime()).thenReturn(jobStartTime);
|
84
|
+
MarketoBaseBulkExtractInputPlugin.PluginTask pluginTask = Mockito.mock(MarketoInputPluginDelegate.PluginTask.class);
|
85
|
+
Mockito.when(pluginTask.getFromDate()).thenReturn(date.toDate());
|
86
|
+
Mockito.when(pluginTask.getFetchDays()).thenReturn(30);
|
87
|
+
Mockito.when(pluginTask.getJobStartTime()).thenReturn(jobStartTime);
|
89
88
|
DateTime toDate = baseBulkExtractInputPlugin.getToDate(pluginTask);
|
90
89
|
assertEquals(toDate, jobStartTime);
|
91
90
|
}
|
@@ -93,18 +92,18 @@ public class MarketoBaseBulkExtractInputPluginTest
|
|
93
92
|
@Test
|
94
93
|
public void buildConfigDiff() throws Exception
|
95
94
|
{
|
96
|
-
TaskReport taskReport1 = mock(TaskReport.class);
|
97
|
-
TaskReport taskReport2 = mock(TaskReport.class);
|
98
|
-
when(taskReport1.get(Set.class, "latest_uids")).thenReturn(Sets.newHashSet("id1", "id2"));
|
99
|
-
when(taskReport2.get(Set.class, "latest_uids")).thenReturn(Sets.newHashSet("id3", "id4"));
|
100
|
-
when(taskReport1.get(Long.class, "latest_fetch_time")).thenReturn(1507539328000L);
|
101
|
-
when(taskReport2.get(Long.class, "latest_fetch_time")).thenReturn(1507625728000L);
|
102
|
-
MarketoInputPluginDelegate.PluginTask task = mock(MarketoInputPluginDelegate.PluginTask.class);
|
103
|
-
when(task.getIncremental()).thenReturn(true);
|
104
|
-
when(task.getIncrementalColumn()).thenReturn(Optional.of("createdAt"));
|
95
|
+
TaskReport taskReport1 = Mockito.mock(TaskReport.class);
|
96
|
+
TaskReport taskReport2 = Mockito.mock(TaskReport.class);
|
97
|
+
Mockito.when(taskReport1.get(Set.class, "latest_uids")).thenReturn(Sets.newHashSet("id1", "id2"));
|
98
|
+
Mockito.when(taskReport2.get(Set.class, "latest_uids")).thenReturn(Sets.newHashSet("id3", "id4"));
|
99
|
+
Mockito.when(taskReport1.get(Long.class, "latest_fetch_time")).thenReturn(1507539328000L);
|
100
|
+
Mockito.when(taskReport2.get(Long.class, "latest_fetch_time")).thenReturn(1507625728000L);
|
101
|
+
MarketoInputPluginDelegate.PluginTask task = Mockito.mock(MarketoInputPluginDelegate.PluginTask.class);
|
102
|
+
Mockito.when(task.getIncremental()).thenReturn(true);
|
103
|
+
Mockito.when(task.getIncrementalColumn()).thenReturn(Optional.of("createdAt"));
|
105
104
|
Date toDate = new Date(1507625728000L);
|
106
|
-
when(task.getToDate()).thenReturn(Optional.of(toDate));
|
107
|
-
ConfigDiff configDiff = baseBulkExtractInputPlugin.buildConfigDiff(task, mock(Schema.class), 1, Arrays.asList(taskReport1, taskReport2));
|
105
|
+
Mockito.when(task.getToDate()).thenReturn(Optional.of(toDate));
|
106
|
+
ConfigDiff configDiff = baseBulkExtractInputPlugin.buildConfigDiff(task, Mockito.mock(Schema.class), 1, Arrays.asList(taskReport1, taskReport2));
|
108
107
|
long latestFetchTime = configDiff.get(Long.class, "latest_fetch_time");
|
109
108
|
assertEquals(1507625728000L, latestFetchTime);
|
110
109
|
assertEquals(Sets.newHashSet("id3", "id4"), configDiff.get(Set.class, "latest_uids"));
|