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.
Files changed (22) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/README.md +132 -12
  4. data/build.gradle +1 -1
  5. data/src/main/java/org/embulk/input/marketo/MarketoServiceImpl.java +115 -44
  6. data/src/main/java/org/embulk/input/marketo/MarketoUtils.java +83 -0
  7. data/src/main/java/org/embulk/input/marketo/delegate/MarketoBaseBulkExtractInputPlugin.java +17 -3
  8. data/src/main/java/org/embulk/input/marketo/model/BulkExtractRangeHeader.java +26 -0
  9. data/src/main/java/org/embulk/input/marketo/rest/MarketoBaseRestClient.java +8 -3
  10. data/src/main/java/org/embulk/input/marketo/rest/MarketoInputStreamResponseEntityReader.java +1 -1
  11. data/src/main/java/org/embulk/input/marketo/rest/MarketoResponseJetty92EntityReader.java +2 -4
  12. data/src/main/java/org/embulk/input/marketo/rest/MarketoRestClient.java +47 -20
  13. data/src/test/java/org/embulk/input/marketo/MarketoServiceImplTest.java +60 -57
  14. data/src/test/java/org/embulk/input/marketo/delegate/ActivityBulkExtractInputPluginTest.java +16 -15
  15. data/src/test/java/org/embulk/input/marketo/delegate/CampaignInputPluginTest.java +10 -10
  16. data/src/test/java/org/embulk/input/marketo/delegate/LeadBulkExtractInputPluginTest.java +22 -21
  17. data/src/test/java/org/embulk/input/marketo/delegate/LeadWithListInputPluginTest.java +22 -20
  18. data/src/test/java/org/embulk/input/marketo/delegate/LeadWithProgramInputPluginTest.java +22 -20
  19. data/src/test/java/org/embulk/input/marketo/delegate/MarketoBaseBulkExtractInputPluginTest.java +27 -28
  20. data/src/test/java/org/embulk/input/marketo/rest/MarketoBaseRestClientTest.java +56 -57
  21. data/src/test/java/org/embulk/input/marketo/rest/MarketoRestClientTest.java +136 -125
  22. metadata +6 -5
@@ -19,18 +19,17 @@ import org.embulk.spi.DataException;
19
19
  import org.embulk.util.retryhelper.jetty92.Jetty92RetryHelper;
20
20
  import org.embulk.util.retryhelper.jetty92.Jetty92SingleRequester;
21
21
  import org.embulk.util.retryhelper.jetty92.StringJetty92ResponseEntityReader;
22
+ import org.junit.Assert;
22
23
  import org.junit.Before;
23
24
  import org.junit.Rule;
24
25
  import org.junit.Test;
25
26
  import org.mockito.ArgumentCaptor;
27
+ import org.mockito.Mockito;
26
28
 
27
29
  import java.nio.charset.StandardCharsets;
28
30
  import java.util.HashMap;
29
31
  import java.util.Map;
30
32
 
31
- import static org.junit.Assert.*;
32
- import static org.mockito.Mockito.*;
33
-
34
33
  /**
35
34
  * Created by tai.khuu on 9/21/17.
36
35
  */
@@ -49,48 +48,48 @@ public class MarketoBaseRestClientTest
49
48
  @Before
50
49
  public void prepare()
51
50
  {
52
- mockJetty92 = mock(Jetty92RetryHelper.class);
51
+ mockJetty92 = Mockito.mock(Jetty92RetryHelper.class);
53
52
  marketoBaseRestClient = new MarketoBaseRestClient("identityEndPoint", "clientId", "clientSecret", MARKETO_LIMIT_INTERVAL_MILIS, mockJetty92);
54
53
  }
55
54
 
56
55
  @Test
57
56
  public void testGetAccessToken()
58
57
  {
59
- when(mockJetty92.requestWithRetry(any(StringJetty92ResponseEntityReader.class), any(Jetty92SingleRequester.class))).thenReturn("{\n" +
58
+ Mockito.when(mockJetty92.requestWithRetry(Mockito.any(StringJetty92ResponseEntityReader.class), Mockito.any(Jetty92SingleRequester.class))).thenReturn("{\n" +
60
59
  " \"access_token\": \"access_token\",\n" +
61
60
  " \"token_type\": \"bearer\",\n" +
62
61
  " \"expires_in\": 3599,\n" +
63
62
  " \"scope\": \"tai@treasure-data.com\"\n" +
64
63
  "}");
65
64
  String accessToken = marketoBaseRestClient.getAccessToken();
66
- assertEquals("access_token", accessToken);
65
+ Assert.assertEquals("access_token", accessToken);
67
66
  }
68
67
 
69
68
  @Test
70
69
  public void testGetAccessTokenRequester()
71
70
  {
72
71
  ArgumentCaptor<Jetty92SingleRequester> jetty92SingleRequesterArgumentCaptor = ArgumentCaptor.forClass(Jetty92SingleRequester.class);
73
- when(mockJetty92.requestWithRetry(any(StringJetty92ResponseEntityReader.class), jetty92SingleRequesterArgumentCaptor.capture())).thenReturn("{\"access_token\": \"access_token\"}");
72
+ Mockito.when(mockJetty92.requestWithRetry(Mockito.any(StringJetty92ResponseEntityReader.class), jetty92SingleRequesterArgumentCaptor.capture())).thenReturn("{\"access_token\": \"access_token\"}");
74
73
  String accessToken = marketoBaseRestClient.getAccessToken();
75
- assertEquals("access_token", accessToken);
74
+ Assert.assertEquals("access_token", accessToken);
76
75
  Jetty92SingleRequester value = jetty92SingleRequesterArgumentCaptor.getValue();
77
- HttpClient client = mock(HttpClient.class);
78
- Response.Listener listener = mock(Response.Listener.class);
79
- Request mockRequest = mock(Request.class);
80
- when(client.newRequest(eq(IDENTITY_END_POINT + MarketoRESTEndpoint.ACCESS_TOKEN.getEndpoint()))).thenReturn(mockRequest);
81
- Request request1 = mock(Request.class);
82
- when(mockRequest.method(eq(HttpMethod.GET))).thenReturn(request1);
76
+ HttpClient client = Mockito.mock(HttpClient.class);
77
+ Response.Listener listener = Mockito.mock(Response.Listener.class);
78
+ Request mockRequest = Mockito.mock(Request.class);
79
+ Mockito.when(client.newRequest(Mockito.eq(IDENTITY_END_POINT + MarketoRESTEndpoint.ACCESS_TOKEN.getEndpoint()))).thenReturn(mockRequest);
80
+ Request request1 = Mockito.mock(Request.class);
81
+ Mockito.when(mockRequest.method(Mockito.eq(HttpMethod.GET))).thenReturn(request1);
83
82
  value.requestOnce(client, listener);
84
- verify(request1, times(1)).param(eq("client_id"), eq("clientId"));
85
- verify(request1, times(1)).param(eq("client_secret"), eq("clientSecret"));
86
- verify(request1, times(1)).param(eq("grant_type"), eq("client_credentials"));
87
- assertTrue(value.toRetry(createHttpResponseException(502)));
83
+ Mockito.verify(request1, Mockito.times(1)).param(Mockito.eq("client_id"), Mockito.eq("clientId"));
84
+ Mockito.verify(request1, Mockito.times(1)).param(Mockito.eq("client_secret"), Mockito.eq("clientSecret"));
85
+ Mockito.verify(request1, Mockito.times(1)).param(Mockito.eq("grant_type"), Mockito.eq("client_credentials"));
86
+ Assert.assertTrue(value.toRetry(createHttpResponseException(502)));
88
87
  }
89
88
  @Test
90
89
  public void testGetAccessTokenWithError()
91
90
  {
92
91
  ArgumentCaptor<Jetty92SingleRequester> jetty92SingleRequesterArgumentCaptor = ArgumentCaptor.forClass(Jetty92SingleRequester.class);
93
- when(mockJetty92.requestWithRetry(any(StringJetty92ResponseEntityReader.class), jetty92SingleRequesterArgumentCaptor.capture())).thenReturn("{\n" +
92
+ Mockito.when(mockJetty92.requestWithRetry(Mockito.any(StringJetty92ResponseEntityReader.class), jetty92SingleRequesterArgumentCaptor.capture())).thenReturn("{\n" +
94
93
  " \"error\": \"invalid_client\",\n" +
95
94
  " \"error_description\": \"Bad client credentials\"\n" +
96
95
  "}");
@@ -98,39 +97,39 @@ public class MarketoBaseRestClientTest
98
97
  marketoBaseRestClient.getAccessToken();
99
98
  }
100
99
  catch (DataException ex) {
101
- assertEquals("Bad client credentials", ex.getMessage());
100
+ Assert.assertEquals("Bad client credentials", ex.getMessage());
102
101
  return;
103
102
  }
104
- fail();
103
+ Assert.fail();
105
104
  }
106
105
 
107
106
  @Test
108
107
  public void testDoPost() throws Exception
109
108
  {
110
- MarketoBaseRestClient spy = spy(marketoBaseRestClient);
109
+ MarketoBaseRestClient spy = Mockito.spy(marketoBaseRestClient);
111
110
  spy.doPost("target", Maps.<String, String>newHashMap(), new ImmutableListMultimap.Builder<String, String>().build(), "test_content", new StringJetty92ResponseEntityReader(10));
112
- verify(spy, times(1)).doRequest(anyString(), eq(HttpMethod.POST), any(Map.class), any(Multimap.class), any(StringContentProvider.class), any(StringJetty92ResponseEntityReader.class));
111
+ Mockito.verify(spy, Mockito.times(1)).doRequest(Mockito.anyString(), Mockito.eq(HttpMethod.POST), Mockito.any(Map.class), Mockito.any(Multimap.class), Mockito.any(StringContentProvider.class), Mockito.any(StringJetty92ResponseEntityReader.class));
113
112
  }
114
113
 
115
114
  @Test
116
115
  public void testDoGet() throws Exception
117
116
  {
118
- MarketoBaseRestClient spy = spy(marketoBaseRestClient);
117
+ MarketoBaseRestClient spy = Mockito.spy(marketoBaseRestClient);
119
118
  spy.doGet("target", Maps.<String, String>newHashMap(), new ImmutableListMultimap.Builder<String, String>().build(), new StringJetty92ResponseEntityReader(10));
120
- verify(spy, times(1)).doRequest(anyString(), eq(HttpMethod.GET), any(Map.class), any(Multimap.class), isNull(ContentProvider.class), any(StringJetty92ResponseEntityReader.class));
119
+ Mockito.verify(spy, Mockito.times(1)).doRequest(Mockito.anyString(), Mockito.eq(HttpMethod.GET), Mockito.any(Map.class), Mockito.any(Multimap.class), Mockito.isNull(ContentProvider.class), Mockito.any(StringJetty92ResponseEntityReader.class));
121
120
  }
122
121
 
123
122
  @Test
124
123
  public void testDoRequestRequester() throws Exception
125
124
  {
126
- MarketoBaseRestClient spy = spy(marketoBaseRestClient);
125
+ MarketoBaseRestClient spy = Mockito.spy(marketoBaseRestClient);
127
126
  StringContentProvider contentProvider = new StringContentProvider("Content", StandardCharsets.UTF_8);
128
127
  ArgumentCaptor<Jetty92SingleRequester> jetty92SingleRequesterArgumentCaptor = ArgumentCaptor.forClass(Jetty92SingleRequester.class);
129
128
 
130
129
  MarketoResponse<Object> expectedMarketoResponse = new MarketoResponse<>();
131
130
 
132
- when(mockJetty92.requestWithRetry(any(MarketoResponseJetty92EntityReader.class), jetty92SingleRequesterArgumentCaptor.capture())).thenReturn(expectedMarketoResponse);
133
- when(mockJetty92.requestWithRetry(any(StringJetty92ResponseEntityReader.class), any(Jetty92SingleRequester.class))).thenReturn("{\"access_token\": \"access_token\"}");
131
+ Mockito.when(mockJetty92.requestWithRetry(Mockito.any(MarketoResponseJetty92EntityReader.class), jetty92SingleRequesterArgumentCaptor.capture())).thenReturn(expectedMarketoResponse);
132
+ Mockito.when(mockJetty92.requestWithRetry(Mockito.any(StringJetty92ResponseEntityReader.class), Mockito.any(Jetty92SingleRequester.class))).thenReturn("{\"access_token\": \"access_token\"}");
134
133
 
135
134
  String target = "target";
136
135
  HashMap<String, String> headers = Maps.<String, String>newHashMap();
@@ -140,61 +139,61 @@ public class MarketoBaseRestClientTest
140
139
 
141
140
  MarketoResponse<Object> marketoResponse = spy.doRequest(target, HttpMethod.POST, headers, build, contentProvider, new MarketoResponseJetty92EntityReader<Object>(10));
142
141
 
143
- HttpClient client = mock(HttpClient.class);
144
- Response.Listener listener = mock(Response.Listener.class);
145
- Request mockRequest = mock(Request.class);
146
- when(client.newRequest(eq(target))).thenReturn(mockRequest);
142
+ HttpClient client = Mockito.mock(HttpClient.class);
143
+ Response.Listener listener = Mockito.mock(Response.Listener.class);
144
+ Request mockRequest = Mockito.mock(Request.class);
145
+ Mockito.when(client.newRequest(Mockito.eq(target))).thenReturn(mockRequest);
147
146
 
148
- when(mockRequest.method(eq(HttpMethod.POST))).thenReturn(mockRequest);
147
+ Mockito.when(mockRequest.method(Mockito.eq(HttpMethod.POST))).thenReturn(mockRequest);
149
148
  Jetty92SingleRequester jetty92SingleRequester = jetty92SingleRequesterArgumentCaptor.getValue();
150
149
  jetty92SingleRequester.requestOnce(client, listener);
151
150
 
152
- assertEquals(expectedMarketoResponse, marketoResponse);
151
+ Assert.assertEquals(expectedMarketoResponse, marketoResponse);
153
152
 
154
- verify(mockRequest, times(1)).header(eq("testHeader1"), eq("testHeaderValue1"));
155
- verify(mockRequest, times(1)).header(eq("Authorization"), eq("Bearer access_token"));
156
- verify(mockRequest, times(1)).param(eq("param"), eq("param1"));
157
- verify(mockRequest, times(1)).content(eq(contentProvider), eq("application/json"));
153
+ Mockito.verify(mockRequest, Mockito.times(1)).header(Mockito.eq("testHeader1"), Mockito.eq("testHeaderValue1"));
154
+ Mockito.verify(mockRequest, Mockito.times(1)).header(Mockito.eq("Authorization"), Mockito.eq("Bearer access_token"));
155
+ Mockito.verify(mockRequest, Mockito.times(1)).param(Mockito.eq("param"), Mockito.eq("param1"));
156
+ Mockito.verify(mockRequest, Mockito.times(1)).content(Mockito.eq(contentProvider), Mockito.eq("application/json"));
158
157
  }
159
158
 
160
159
  @Test
161
160
  public void testDoRequesterRetry() throws Exception
162
161
  {
163
- MarketoBaseRestClient spy = spy(marketoBaseRestClient);
162
+ MarketoBaseRestClient spy = Mockito.spy(marketoBaseRestClient);
164
163
  ArgumentCaptor<Jetty92SingleRequester> jetty92SingleRequesterArgumentCaptor = ArgumentCaptor.forClass(Jetty92SingleRequester.class);
165
164
 
166
- when(mockJetty92.requestWithRetry(any(MarketoResponseJetty92EntityReader.class), jetty92SingleRequesterArgumentCaptor.capture())).thenReturn(new MarketoResponse<>());
167
- when(mockJetty92.requestWithRetry(any(StringJetty92ResponseEntityReader.class), any(Jetty92SingleRequester.class))).thenReturn("{\"access_token\": \"access_token\"}");
165
+ Mockito.when(mockJetty92.requestWithRetry(Mockito.any(MarketoResponseJetty92EntityReader.class), jetty92SingleRequesterArgumentCaptor.capture())).thenReturn(new MarketoResponse<>());
166
+ Mockito.when(mockJetty92.requestWithRetry(Mockito.any(StringJetty92ResponseEntityReader.class), Mockito.any(Jetty92SingleRequester.class))).thenReturn("{\"access_token\": \"access_token\"}");
168
167
 
169
168
  spy.doRequest("", HttpMethod.POST, null, null, null, new MarketoResponseJetty92EntityReader<Object>(10));
170
169
 
171
- HttpClient client = mock(HttpClient.class);
172
- Response.Listener listener = mock(Response.Listener.class);
173
- Request mockRequest = mock(Request.class);
174
- when(client.newRequest(anyString())).thenReturn(mockRequest);
170
+ HttpClient client = Mockito.mock(HttpClient.class);
171
+ Response.Listener listener = Mockito.mock(Response.Listener.class);
172
+ Request mockRequest = Mockito.mock(Request.class);
173
+ Mockito.when(client.newRequest(Mockito.anyString())).thenReturn(mockRequest);
175
174
 
176
- when(mockRequest.method(eq(HttpMethod.POST))).thenReturn(mockRequest);
175
+ Mockito.when(mockRequest.method(Mockito.eq(HttpMethod.POST))).thenReturn(mockRequest);
177
176
 
178
177
  Jetty92SingleRequester jetty92SingleRequester = jetty92SingleRequesterArgumentCaptor.getValue();
179
178
  jetty92SingleRequester.requestOnce(client, listener);
180
- assertTrue(jetty92SingleRequester.toRetry(createHttpResponseException(502)));
179
+ Assert.assertTrue(jetty92SingleRequester.toRetry(createHttpResponseException(502)));
181
180
 
182
- assertFalse(jetty92SingleRequester.toRetry(createHttpResponseException(400)));
181
+ Assert.assertFalse(jetty92SingleRequester.toRetry(createHttpResponseException(400)));
183
182
 
184
- assertFalse(jetty92SingleRequester.toRetry(createMarketoAPIException("ERR", "ERR")));
185
- assertTrue(jetty92SingleRequester.toRetry(createMarketoAPIException("606", "")));
186
- assertTrue(jetty92SingleRequester.toRetry(createMarketoAPIException("615", "")));
187
- assertTrue(jetty92SingleRequester.toRetry(createMarketoAPIException("602", "")));
183
+ Assert.assertFalse(jetty92SingleRequester.toRetry(createMarketoAPIException("ERR", "ERR")));
184
+ Assert.assertTrue(jetty92SingleRequester.toRetry(createMarketoAPIException("606", "")));
185
+ Assert.assertTrue(jetty92SingleRequester.toRetry(createMarketoAPIException("615", "")));
186
+ Assert.assertTrue(jetty92SingleRequester.toRetry(createMarketoAPIException("602", "")));
188
187
 
189
- verify(mockJetty92, times(2)).requestWithRetry(any(StringJetty92ResponseEntityReader.class), any(Jetty92SingleRequester.class));
188
+ Mockito.verify(mockJetty92, Mockito.times(2)).requestWithRetry(Mockito.any(StringJetty92ResponseEntityReader.class), Mockito.any(Jetty92SingleRequester.class));
190
189
  }
191
190
 
192
191
  private HttpResponseException createHttpResponseException(int statusCode)
193
192
  {
194
- HttpResponseException exception = mock(HttpResponseException.class);
195
- Response response = mock(Response.class);
196
- when(exception.getResponse()).thenReturn(response);
197
- when(response.getStatus()).thenReturn(statusCode);
193
+ HttpResponseException exception = Mockito.mock(HttpResponseException.class);
194
+ Response response = Mockito.mock(Response.class);
195
+ Mockito.when(exception.getResponse()).thenReturn(response);
196
+ Mockito.when(response.getStatus()).thenReturn(statusCode);
198
197
  return exception;
199
198
  }
200
199
 
@@ -10,6 +10,8 @@ import com.fasterxml.jackson.databind.node.TextNode;
10
10
  import com.google.common.collect.ImmutableListMultimap;
11
11
  import com.google.common.collect.Multimap;
12
12
  import com.google.common.io.ByteStreams;
13
+ import org.eclipse.jetty.client.api.ContentProvider;
14
+ import org.eclipse.jetty.client.util.FormContentProvider;
13
15
  import org.embulk.EmbulkTestRuntime;
14
16
  import org.embulk.config.ConfigSource;
15
17
  import org.embulk.input.marketo.MarketoUtils;
@@ -19,18 +21,23 @@ import org.embulk.input.marketo.model.MarketoResponse;
19
21
  import org.embulk.spi.DataException;
20
22
  import org.embulk.util.retryhelper.jetty92.Jetty92ResponseReader;
21
23
  import org.embulk.util.retryhelper.jetty92.Jetty92RetryHelper;
24
+ import org.junit.Assert;
22
25
  import org.junit.Before;
23
26
  import org.junit.Rule;
24
27
  import org.junit.Test;
25
28
  import org.mockito.ArgumentCaptor;
29
+ import org.mockito.Mockito;
26
30
 
27
31
  import java.io.IOException;
28
32
  import java.io.InputStream;
33
+ import java.nio.ByteBuffer;
29
34
  import java.text.SimpleDateFormat;
30
- import java.util.*;
31
-
32
- import static org.junit.Assert.*;
33
- import static org.mockito.Mockito.*;
35
+ import java.util.Arrays;
36
+ import java.util.Date;
37
+ import java.util.HashMap;
38
+ import java.util.Iterator;
39
+ import java.util.List;
40
+ import java.util.Map;
34
41
 
35
42
  /**
36
43
  * Created by khuutantaitai on 10/3/17.
@@ -65,9 +72,9 @@ public class MarketoRestClientTest
65
72
  configSource.set("client_id", TEST_CLIENT_ID);
66
73
  configSource.set("max_return", 2);
67
74
  MarketoRestClient.PluginTask task = configSource.loadConfig(MarketoRestClient.PluginTask.class);
68
- mockRetryHelper = mock(Jetty92RetryHelper.class);
75
+ mockRetryHelper = Mockito.mock(Jetty92RetryHelper.class);
69
76
  MarketoRestClient realRestClient = new MarketoRestClient(task, mockRetryHelper);
70
- marketoRestClient = spy(realRestClient);
77
+ marketoRestClient = Mockito.spy(realRestClient);
71
78
  }
72
79
 
73
80
  @Test
@@ -75,26 +82,14 @@ public class MarketoRestClientTest
75
82
  {
76
83
  String leadSchema = new String(ByteStreams.toByteArray(this.getClass().getResourceAsStream("/fixtures/lead_describe.json")));
77
84
  MarketoResponse<ObjectNode> marketoResponse = OBJECT_MAPPER.readValue(leadSchema, RESPONSE_TYPE);
78
- doReturn(marketoResponse).when(marketoRestClient).doGet(eq(END_POINT + MarketoRESTEndpoint.DESCRIBE_LEAD.getEndpoint()), isNull(Map.class), isNull(ImmutableListMultimap.class), any(MarketoResponseJetty92EntityReader.class));
85
+ Mockito.doReturn(marketoResponse).when(marketoRestClient).doGet(Mockito.eq(END_POINT + MarketoRESTEndpoint.DESCRIBE_LEAD.getEndpoint()), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.any(MarketoResponseJetty92EntityReader.class));
79
86
  List<MarketoField> marketoFields = marketoRestClient.describeLead();
80
- assertEquals(16, marketoFields.size());
87
+ Assert.assertEquals(16, marketoFields.size());
81
88
  JavaType marketoFieldType = OBJECT_MAPPER.getTypeFactory().constructParametrizedType(List.class, List.class, MarketoField.class);
82
89
  List<MarketoField> expectedFields = OBJECT_MAPPER.readValue(new String(ByteStreams.toByteArray(this.getClass().getResourceAsStream("/fixtures/lead_describe_expected.json"))), marketoFieldType);
83
- assertArrayEquals(expectedFields.toArray(), marketoFields.toArray());
90
+ Assert.assertArrayEquals(expectedFields.toArray(), marketoFields.toArray());
84
91
  }
85
92
 
86
- // @Test
87
- // public void describeLead2() throws Exception {
88
- // String leadSchema = new String(ByteStreams.toByteArray(this.getClass().getResourceAsStream("/fixtures/lead_describe_full.json")));
89
- // MarketoResponse<ObjectNode> marketoResponse = OBJECT_MAPPER.readValue(leadSchema, RESPONSE_TYPE);
90
- // doReturn(marketoResponse).when(marketoRestClient).doGet(eq(END_POINT + MarketoRESTEndpoint.DESCRIBE_LEAD.getEndpoint()), isNull(Map.class), isNull(ImmutableListMultimap.class), any(MarketoResponseJetty92EntityReader.class));
91
- // List<MarketoField> marketoFields = marketoRestClient.describeLead();
92
- // assertEquals(16, marketoFields.size());
93
- // JavaType marketoFieldType = OBJECT_MAPPER.getTypeFactory().constructParametrizedType(List.class, List.class, MarketoField.class);
94
- // List<MarketoField> expectedFields = OBJECT_MAPPER.readValue(new String(ByteStreams.toByteArray(this.getClass().getResourceAsStream("/fixtures/lead_describe_expected.json"))), marketoFieldType);
95
- // assertArrayEquals(expectedFields.toArray(), marketoFields.toArray());
96
- // }
97
-
98
93
  @Test
99
94
  public void createLeadBulkExtract() throws Exception
100
95
  {
@@ -106,21 +101,21 @@ public class MarketoRestClientTest
106
101
  bulkExtractResult.set("exportId", new TextNode("bulkExtractId"));
107
102
  marketoResponse.setResult(Arrays.asList(bulkExtractResult));
108
103
  ArgumentCaptor<String> argumentCaptor = ArgumentCaptor.forClass(String.class);
109
- doReturn(marketoResponse).when(marketoRestClient).doPost(eq(END_POINT + MarketoRESTEndpoint.CREATE_LEAD_EXTRACT.getEndpoint()), isNull(Map.class), isNull(ImmutableListMultimap.class), argumentCaptor.capture(), any(MarketoResponseJetty92EntityReader.class));
104
+ Mockito.doReturn(marketoResponse).when(marketoRestClient).doPost(Mockito.eq(END_POINT + MarketoRESTEndpoint.CREATE_LEAD_EXTRACT.getEndpoint()), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), argumentCaptor.capture(), Mockito.any(MarketoResponseJetty92EntityReader.class));
110
105
  String filterField = "filterField";
111
106
  String bulkExtractId = marketoRestClient.createLeadBulkExtract(startDate, endDate, Arrays.asList("extract_field1", "extract_field2"), filterField);
112
- assertEquals("bulkExtractId", bulkExtractId);
107
+ Assert.assertEquals("bulkExtractId", bulkExtractId);
113
108
  String postContent = argumentCaptor.getValue();
114
109
  ObjectNode marketoBulkExtractRequest = (ObjectNode) OBJECT_MAPPER.readTree(postContent);
115
110
  ObjectNode filter = (ObjectNode) marketoBulkExtractRequest.get("filter");
116
111
  ObjectNode dateRangeFilter = (ObjectNode) filter.get(filterField);
117
112
  SimpleDateFormat simpleDateFormat = new SimpleDateFormat(MarketoUtils.MARKETO_DATE_SIMPLE_DATE_FORMAT);
118
- assertEquals(simpleDateFormat.format(startDate), dateRangeFilter.get("startAt").textValue());
119
- assertEquals(simpleDateFormat.format(endDate), dateRangeFilter.get("endAt").textValue());
120
- assertEquals("CSV", marketoBulkExtractRequest.get("format").textValue());
113
+ Assert.assertEquals(simpleDateFormat.format(startDate), dateRangeFilter.get("startAt").textValue());
114
+ Assert.assertEquals(simpleDateFormat.format(endDate), dateRangeFilter.get("endAt").textValue());
115
+ Assert.assertEquals("CSV", marketoBulkExtractRequest.get("format").textValue());
121
116
  ArrayNode fields = (ArrayNode) marketoBulkExtractRequest.get("fields");
122
- assertEquals("extract_field1", fields.get(0).textValue());
123
- assertEquals("extract_field2", fields.get(1).textValue());
117
+ Assert.assertEquals("extract_field1", fields.get(0).textValue());
118
+ Assert.assertEquals("extract_field2", fields.get(1).textValue());
124
119
  }
125
120
 
126
121
  @Test
@@ -132,22 +127,22 @@ public class MarketoRestClientTest
132
127
  marketoError.setCode("ErrorCode1");
133
128
  marketoError.setMessage("Message");
134
129
  marketoResponse.setErrors(Arrays.asList(marketoError));
135
- doReturn(marketoResponse).when(marketoRestClient).doPost(eq(END_POINT + MarketoRESTEndpoint.CREATE_LEAD_EXTRACT.getEndpoint()), isNull(Map.class), isNull(ImmutableListMultimap.class), anyString(), any(MarketoResponseJetty92EntityReader.class));
130
+ Mockito.doReturn(marketoResponse).when(marketoRestClient).doPost(Mockito.eq(END_POINT + MarketoRESTEndpoint.CREATE_LEAD_EXTRACT.getEndpoint()), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.anyString(), Mockito.any(MarketoResponseJetty92EntityReader.class));
136
131
  String filterField = "filterField";
137
132
  try {
138
133
  marketoRestClient.createLeadBulkExtract(new Date(), new Date(), Arrays.asList("extract_field1", "extract_field2"), filterField);
139
134
  }
140
135
  catch (DataException ex) {
141
- assertEquals("ErrorCode1: Message", ex.getMessage());
136
+ Assert.assertEquals("ErrorCode1: Message", ex.getMessage());
142
137
  return;
143
138
  }
144
- fail();
139
+ Assert.fail();
145
140
  }
146
141
 
147
142
  @Test()
148
143
  public void createLeadBulkExtractWithParseError() throws Exception
149
144
  {
150
- doThrow(JsonProcessingException.class).when(marketoRestClient).doPost(eq(END_POINT + MarketoRESTEndpoint.CREATE_LEAD_EXTRACT.getEndpoint()), isNull(Map.class), isNull(ImmutableListMultimap.class), anyString(), any(MarketoResponseJetty92EntityReader.class));
145
+ Mockito.doThrow(JsonProcessingException.class).when(marketoRestClient).doPost(Mockito.eq(END_POINT + MarketoRESTEndpoint.CREATE_LEAD_EXTRACT.getEndpoint()), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.anyString(), Mockito.any(MarketoResponseJetty92EntityReader.class));
151
146
  String filterField = "filterField";
152
147
  try {
153
148
  marketoRestClient.createLeadBulkExtract(new Date(), new Date(), Arrays.asList("extract_field1", "extract_field2"), filterField);
@@ -155,7 +150,7 @@ public class MarketoRestClientTest
155
150
  catch (DataException ex) {
156
151
  return;
157
152
  }
158
- fail();
153
+ Assert.fail();
159
154
  }
160
155
 
161
156
  @Test
@@ -169,13 +164,13 @@ public class MarketoRestClientTest
169
164
  bulkExtractResult.set("exportId", new TextNode("bulkExtractId"));
170
165
  marketoResponse.setResult(Arrays.asList(bulkExtractResult));
171
166
  ArgumentCaptor<String> argumentCaptor = ArgumentCaptor.forClass(String.class);
172
- doReturn(marketoResponse).when(marketoRestClient).doPost(eq(END_POINT + MarketoRESTEndpoint.CREATE_ACTIVITY_EXTRACT.getEndpoint()), isNull(Map.class), isNull(ImmutableListMultimap.class), argumentCaptor.capture(), any(MarketoResponseJetty92EntityReader.class));
167
+ Mockito.doReturn(marketoResponse).when(marketoRestClient).doPost(Mockito.eq(END_POINT + MarketoRESTEndpoint.CREATE_ACTIVITY_EXTRACT.getEndpoint()), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), argumentCaptor.capture(), Mockito.any(MarketoResponseJetty92EntityReader.class));
173
168
  String bulkExtractId = marketoRestClient.createActivityExtract(startDate, endDate);
174
- assertEquals("bulkExtractId", bulkExtractId);
169
+ Assert.assertEquals("bulkExtractId", bulkExtractId);
175
170
  String postContent = argumentCaptor.getValue();
176
171
  ObjectNode marketoBulkExtractRequest = (ObjectNode) OBJECT_MAPPER.readTree(postContent);
177
172
  ObjectNode filter = (ObjectNode) marketoBulkExtractRequest.get("filter");
178
- assertTrue(filter.has("createdAt"));
173
+ Assert.assertTrue(filter.has("createdAt"));
179
174
  }
180
175
 
181
176
  @Test
@@ -186,9 +181,9 @@ public class MarketoRestClientTest
186
181
  pathParams.put("export_id", bulkExportId);
187
182
  MarketoResponse<ObjectNode> marketoResponse = new MarketoResponse<>();
188
183
  marketoResponse.setSuccess(true);
189
- doReturn(marketoResponse).when(marketoRestClient).doPost(eq(END_POINT + MarketoRESTEndpoint.START_LEAD_EXPORT_JOB.getEndpoint(pathParams)), isNull(Map.class), isNull(ImmutableListMultimap.class), isNull(String.class), any(MarketoResponseJetty92EntityReader.class));
184
+ Mockito.doReturn(marketoResponse).when(marketoRestClient).doPost(Mockito.eq(END_POINT + MarketoRESTEndpoint.START_LEAD_EXPORT_JOB.getEndpoint(pathParams)), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.isNull(String.class), Mockito.any(MarketoResponseJetty92EntityReader.class));
190
185
  marketoRestClient.startLeadBulkExtract(bulkExportId);
191
- verify(marketoRestClient, times(1)).doPost(eq(END_POINT + MarketoRESTEndpoint.START_LEAD_EXPORT_JOB.getEndpoint(pathParams)), isNull(Map.class), isNull(ImmutableListMultimap.class), isNull(String.class), any(MarketoResponseJetty92EntityReader.class));
186
+ Mockito.verify(marketoRestClient, Mockito.times(1)).doPost(Mockito.eq(END_POINT + MarketoRESTEndpoint.START_LEAD_EXPORT_JOB.getEndpoint(pathParams)), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.isNull(String.class), Mockito.any(MarketoResponseJetty92EntityReader.class));
192
187
  }
193
188
 
194
189
  @Test
@@ -203,15 +198,15 @@ public class MarketoRestClientTest
203
198
  marketoError.setCode("ErrorCode");
204
199
  marketoError.setMessage("Message");
205
200
  marketoResponse.setErrors(Arrays.asList(marketoError));
206
- doReturn(marketoResponse).when(marketoRestClient).doPost(eq(END_POINT + MarketoRESTEndpoint.START_LEAD_EXPORT_JOB.getEndpoint(pathParams)), isNull(Map.class), isNull(ImmutableListMultimap.class), isNull(String.class), any(MarketoResponseJetty92EntityReader.class));
201
+ Mockito.doReturn(marketoResponse).when(marketoRestClient).doPost(Mockito.eq(END_POINT + MarketoRESTEndpoint.START_LEAD_EXPORT_JOB.getEndpoint(pathParams)), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.isNull(String.class), Mockito.any(MarketoResponseJetty92EntityReader.class));
207
202
  try {
208
203
  marketoRestClient.startLeadBulkExtract(bulkExportId);
209
204
  }
210
205
  catch (DataException ex) {
211
- verify(marketoRestClient, times(1)).doPost(eq(END_POINT + MarketoRESTEndpoint.START_LEAD_EXPORT_JOB.getEndpoint(pathParams)), isNull(Map.class), isNull(ImmutableListMultimap.class), isNull(String.class), any(MarketoResponseJetty92EntityReader.class));
206
+ Mockito.verify(marketoRestClient, Mockito.times(1)).doPost(Mockito.eq(END_POINT + MarketoRESTEndpoint.START_LEAD_EXPORT_JOB.getEndpoint(pathParams)), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.isNull(String.class), Mockito.any(MarketoResponseJetty92EntityReader.class));
212
207
  return;
213
208
  }
214
- fail();
209
+ Assert.fail();
215
210
  }
216
211
 
217
212
  @Test
@@ -222,9 +217,9 @@ public class MarketoRestClientTest
222
217
  pathParams.put("export_id", bulkExportId);
223
218
  MarketoResponse<ObjectNode> marketoResponse = new MarketoResponse<>();
224
219
  marketoResponse.setSuccess(true);
225
- doReturn(marketoResponse).when(marketoRestClient).doPost(eq(END_POINT + MarketoRESTEndpoint.START_ACTIVITY_EXPORT_JOB.getEndpoint(pathParams)), isNull(Map.class), isNull(ImmutableListMultimap.class), isNull(String.class), any(MarketoResponseJetty92EntityReader.class));
220
+ Mockito.doReturn(marketoResponse).when(marketoRestClient).doPost(Mockito.eq(END_POINT + MarketoRESTEndpoint.START_ACTIVITY_EXPORT_JOB.getEndpoint(pathParams)), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.isNull(String.class), Mockito.any(MarketoResponseJetty92EntityReader.class));
226
221
  marketoRestClient.startActitvityBulkExtract(bulkExportId);
227
- verify(marketoRestClient, times(1)).doPost(eq(END_POINT + MarketoRESTEndpoint.START_ACTIVITY_EXPORT_JOB.getEndpoint(pathParams)), isNull(Map.class), isNull(ImmutableListMultimap.class), isNull(String.class), any(MarketoResponseJetty92EntityReader.class));
222
+ Mockito.verify(marketoRestClient, Mockito.times(1)).doPost(Mockito.eq(END_POINT + MarketoRESTEndpoint.START_ACTIVITY_EXPORT_JOB.getEndpoint(pathParams)), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.isNull(String.class), Mockito.any(MarketoResponseJetty92EntityReader.class));
228
223
  }
229
224
 
230
225
  @Test
@@ -233,14 +228,14 @@ public class MarketoRestClientTest
233
228
  String bulkExportId = "bulkExportId";
234
229
  Map<String, String> pathParams = new HashMap<>();
235
230
  pathParams.put("export_id", bulkExportId);
236
- MarketoResponse<ObjectNode> marketoResponse = mock(MarketoResponse.class);
237
- when(marketoResponse.isSuccess()).thenReturn(true);
238
- ObjectNode result = mock(ObjectNode.class);
239
- when(marketoResponse.getResult()).thenReturn(Arrays.asList(result));
240
- when(result.get("status")).thenReturn(new TextNode("Queued")).thenReturn(new TextNode("Processing")).thenReturn(new TextNode("Completed"));
241
- doReturn(marketoResponse).when(marketoRestClient).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_STATUS.getEndpoint(pathParams)), isNull(Map.class), isNull(ImmutableListMultimap.class), any(MarketoResponseJetty92EntityReader.class));
231
+ MarketoResponse<ObjectNode> marketoResponse = Mockito.mock(MarketoResponse.class);
232
+ Mockito.when(marketoResponse.isSuccess()).thenReturn(true);
233
+ ObjectNode result = Mockito.mock(ObjectNode.class);
234
+ Mockito.when(marketoResponse.getResult()).thenReturn(Arrays.asList(result));
235
+ Mockito.when(result.get("status")).thenReturn(new TextNode("Queued")).thenReturn(new TextNode("Processing")).thenReturn(new TextNode("Completed"));
236
+ Mockito.doReturn(marketoResponse).when(marketoRestClient).doGet(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_STATUS.getEndpoint(pathParams)), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.any(MarketoResponseJetty92EntityReader.class));
242
237
  marketoRestClient.waitLeadExportJobComplete(bulkExportId, 1, 4);
243
- verify(marketoRestClient, times(3)).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_STATUS.getEndpoint(pathParams)), isNull(Map.class), isNull(ImmutableListMultimap.class), any(MarketoResponseJetty92EntityReader.class));
238
+ Mockito.verify(marketoRestClient, Mockito.times(3)).doGet(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_STATUS.getEndpoint(pathParams)), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.any(MarketoResponseJetty92EntityReader.class));
244
239
  }
245
240
 
246
241
  @Test
@@ -249,21 +244,21 @@ public class MarketoRestClientTest
249
244
  String bulkExportId = "bulkExportId";
250
245
  Map<String, String> pathParams = new HashMap<>();
251
246
  pathParams.put("export_id", bulkExportId);
252
- MarketoResponse<ObjectNode> marketoResponse = mock(MarketoResponse.class);
253
- when(marketoResponse.isSuccess()).thenReturn(true);
254
- ObjectNode result = mock(ObjectNode.class);
255
- when(marketoResponse.getResult()).thenReturn(Arrays.asList(result));
256
- when(result.get("status")).thenReturn(new TextNode("Queued")).thenReturn(new TextNode("Processing"));
257
- doReturn(marketoResponse).when(marketoRestClient).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_STATUS.getEndpoint(pathParams)), isNull(Map.class), isNull(ImmutableListMultimap.class), any(MarketoResponseJetty92EntityReader.class));
247
+ MarketoResponse<ObjectNode> marketoResponse = Mockito.mock(MarketoResponse.class);
248
+ Mockito.when(marketoResponse.isSuccess()).thenReturn(true);
249
+ ObjectNode result = Mockito.mock(ObjectNode.class);
250
+ Mockito.when(marketoResponse.getResult()).thenReturn(Arrays.asList(result));
251
+ Mockito.when(result.get("status")).thenReturn(new TextNode("Queued")).thenReturn(new TextNode("Processing"));
252
+ Mockito.doReturn(marketoResponse).when(marketoRestClient).doGet(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_STATUS.getEndpoint(pathParams)), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.any(MarketoResponseJetty92EntityReader.class));
258
253
  try {
259
254
  marketoRestClient.waitLeadExportJobComplete(bulkExportId, 1, 4);
260
255
  }
261
256
  catch (DataException e) {
262
- assertTrue(e.getMessage().contains("Job timeout exception"));
263
- verify(marketoRestClient, times(3)).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_STATUS.getEndpoint(pathParams)), isNull(Map.class), isNull(ImmutableListMultimap.class), any(MarketoResponseJetty92EntityReader.class));
257
+ Assert.assertTrue(e.getMessage().contains("Job timeout exception"));
258
+ Mockito.verify(marketoRestClient, Mockito.times(3)).doGet(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_STATUS.getEndpoint(pathParams)), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.any(MarketoResponseJetty92EntityReader.class));
264
259
  return;
265
260
  }
266
- fail();
261
+ Assert.fail();
267
262
  }
268
263
 
269
264
  @Test
@@ -272,23 +267,23 @@ public class MarketoRestClientTest
272
267
  String bulkExportId = "bulkExportId";
273
268
  Map<String, String> pathParams = new HashMap<>();
274
269
  pathParams.put("export_id", bulkExportId);
275
- MarketoResponse<ObjectNode> marketoResponse = mock(MarketoResponse.class);
276
- when(marketoResponse.isSuccess()).thenReturn(true);
277
- ObjectNode result = mock(ObjectNode.class);
278
- when(marketoResponse.getResult()).thenReturn(Arrays.asList(result));
279
- when(result.get("status")).thenReturn(new TextNode("Queued")).thenReturn(new TextNode("Failed"));
280
- when(result.get("errorMsg")).thenReturn(new TextNode("ErrorMessage"));
281
- doReturn(marketoResponse).when(marketoRestClient).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_STATUS.getEndpoint(pathParams)), isNull(Map.class), isNull(ImmutableListMultimap.class), any(MarketoResponseJetty92EntityReader.class));
270
+ MarketoResponse<ObjectNode> marketoResponse = Mockito.mock(MarketoResponse.class);
271
+ Mockito.when(marketoResponse.isSuccess()).thenReturn(true);
272
+ ObjectNode result = Mockito.mock(ObjectNode.class);
273
+ Mockito.when(marketoResponse.getResult()).thenReturn(Arrays.asList(result));
274
+ Mockito.when(result.get("status")).thenReturn(new TextNode("Queued")).thenReturn(new TextNode("Failed"));
275
+ Mockito.when(result.get("errorMsg")).thenReturn(new TextNode("ErrorMessage"));
276
+ Mockito.doReturn(marketoResponse).when(marketoRestClient).doGet(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_STATUS.getEndpoint(pathParams)), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.any(MarketoResponseJetty92EntityReader.class));
282
277
  try {
283
278
  marketoRestClient.waitLeadExportJobComplete(bulkExportId, 1, 4);
284
279
  }
285
280
  catch (DataException e) {
286
- assertTrue(e.getMessage().contains("Bulk extract job failed"));
287
- assertTrue(e.getMessage().contains("ErrorMessage"));
288
- verify(marketoRestClient, times(2)).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_STATUS.getEndpoint(pathParams)), isNull(Map.class), isNull(ImmutableListMultimap.class), any(MarketoResponseJetty92EntityReader.class));
281
+ Assert.assertTrue(e.getMessage().contains("Bulk extract job failed"));
282
+ Assert.assertTrue(e.getMessage().contains("ErrorMessage"));
283
+ Mockito.verify(marketoRestClient, Mockito.times(2)).doGet(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_STATUS.getEndpoint(pathParams)), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.any(MarketoResponseJetty92EntityReader.class));
289
284
  return;
290
285
  }
291
- fail();
286
+ Assert.fail();
292
287
  }
293
288
 
294
289
  @Test
@@ -297,14 +292,14 @@ public class MarketoRestClientTest
297
292
  String exportId = "exportId";
298
293
  Map<String, String> pathParamMap = new HashMap<>();
299
294
  pathParamMap.put("export_id", exportId);
300
- MarketoResponse<ObjectNode> marketoResponse = mock(MarketoResponse.class);
301
- when(marketoResponse.isSuccess()).thenReturn(true);
302
- ObjectNode mockObjectNode = mock(ObjectNode.class);
303
- when(marketoResponse.getResult()).thenReturn(Arrays.asList(mockObjectNode));
304
- when(mockObjectNode.get("status")).thenReturn(new TextNode("Completed"));
305
- doReturn(marketoResponse).when(marketoRestClient).doGet(anyString(), isNull(Map.class), isNull(ImmutableListMultimap.class), any(Jetty92ResponseReader.class));
295
+ MarketoResponse<ObjectNode> marketoResponse = Mockito.mock(MarketoResponse.class);
296
+ Mockito.when(marketoResponse.isSuccess()).thenReturn(true);
297
+ ObjectNode mockObjectNode = Mockito.mock(ObjectNode.class);
298
+ Mockito.when(marketoResponse.getResult()).thenReturn(Arrays.asList(mockObjectNode));
299
+ Mockito.when(mockObjectNode.get("status")).thenReturn(new TextNode("Completed"));
300
+ Mockito.doReturn(marketoResponse).when(marketoRestClient).doGet(Mockito.anyString(), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.any(Jetty92ResponseReader.class));
306
301
  marketoRestClient.waitActitvityExportJobComplete(exportId, 1, 3);
307
- verify(marketoRestClient, times(1)).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_ACTIVITY_EXPORT_STATUS.getEndpoint(pathParamMap)), isNull(Map.class), isNull(ImmutableListMultimap.class), any(Jetty92ResponseReader.class));
302
+ Mockito.verify(marketoRestClient, Mockito.times(1)).doGet(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_ACTIVITY_EXPORT_STATUS.getEndpoint(pathParamMap)), Mockito.isNull(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.any(Jetty92ResponseReader.class));
308
303
  }
309
304
 
310
305
  @Test
@@ -313,9 +308,9 @@ public class MarketoRestClientTest
313
308
  String exportId = "exportId";
314
309
  Map<String, String> pathParamMap = new HashMap<>();
315
310
  pathParamMap.put("export_id", exportId);
316
- doReturn(mock(InputStream.class)).when(marketoRestClient).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_RESULT.getEndpoint(pathParamMap)), isNull(Map.class), isNull(ImmutableListMultimap.class), any(MarketoInputStreamResponseEntityReader.class));
317
- marketoRestClient.getLeadBulkExtractResult(exportId);
318
- verify(marketoRestClient, times(1)).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_RESULT.getEndpoint(pathParamMap)), isNull(Map.class), isNull(ImmutableListMultimap.class), any(MarketoInputStreamResponseEntityReader.class));
311
+ Mockito.doReturn(Mockito.mock(InputStream.class)).when(marketoRestClient).doGet(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_RESULT.getEndpoint(pathParamMap)), Mockito.any(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.any(MarketoInputStreamResponseEntityReader.class));
312
+ marketoRestClient.getLeadBulkExtractResult(exportId, null);
313
+ Mockito.verify(marketoRestClient, Mockito.times(1)).doGet(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_RESULT.getEndpoint(pathParamMap)), Mockito.any(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.any(MarketoInputStreamResponseEntityReader.class));
319
314
  }
320
315
 
321
316
  @Test
@@ -324,9 +319,9 @@ public class MarketoRestClientTest
324
319
  String exportId = "exportId";
325
320
  Map<String, String> pathParamMap = new HashMap<>();
326
321
  pathParamMap.put("export_id", exportId);
327
- doReturn(mock(InputStream.class)).when(marketoRestClient).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_ACTIVITY_EXPORT_RESULT.getEndpoint(pathParamMap)), isNull(Map.class), isNull(ImmutableListMultimap.class), any(MarketoInputStreamResponseEntityReader.class));
328
- marketoRestClient.getActivitiesBulkExtractResult(exportId);
329
- verify(marketoRestClient, times(1)).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_ACTIVITY_EXPORT_RESULT.getEndpoint(pathParamMap)), isNull(Map.class), isNull(ImmutableListMultimap.class), any(MarketoInputStreamResponseEntityReader.class));
322
+ Mockito.doReturn(Mockito.mock(InputStream.class)).when(marketoRestClient).doGet(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_ACTIVITY_EXPORT_RESULT.getEndpoint(pathParamMap)), Mockito.any(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.any(MarketoInputStreamResponseEntityReader.class));
323
+ marketoRestClient.getActivitiesBulkExtractResult(exportId, null);
324
+ Mockito.verify(marketoRestClient, Mockito.times(1)).doGet(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_ACTIVITY_EXPORT_RESULT.getEndpoint(pathParamMap)), Mockito.any(Map.class), Mockito.isNull(ImmutableListMultimap.class), Mockito.any(MarketoInputStreamResponseEntityReader.class));
330
325
  }
331
326
 
332
327
  @Test
@@ -337,39 +332,42 @@ public class MarketoRestClientTest
337
332
  Iterator<ObjectNode> iterator = lists.iterator();
338
333
  ObjectNode list1 = iterator.next();
339
334
  ObjectNode list2 = iterator.next();
340
- assertFalse(iterator.hasNext());
341
- assertEquals("Test list 1", list1.get("name").asText());
342
- assertEquals("Test list 2", list2.get("name").asText());
335
+ Assert.assertFalse(iterator.hasNext());
336
+ Assert.assertEquals("Test list 1", list1.get("name").asText());
337
+ Assert.assertEquals("Test list 2", list2.get("name").asText());
343
338
  ArgumentCaptor<Multimap> immutableListMultimapArgumentCaptor = ArgumentCaptor.forClass(Multimap.class);
344
- verify(marketoRestClient, times(2)).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_LISTS.getEndpoint()), isNull(Map.class), immutableListMultimapArgumentCaptor.capture(), any(MarketoResponseJetty92EntityReader.class));
339
+ ArgumentCaptor<FormContentProvider> formContentProviderArgumentCaptor = ArgumentCaptor.forClass(FormContentProvider.class);
340
+ Mockito.verify(marketoRestClient, Mockito.times(2)).doPost(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_LISTS.getEndpoint()), Mockito.isNull(Map.class), immutableListMultimapArgumentCaptor.capture(), Mockito.any(MarketoResponseJetty92EntityReader.class), formContentProviderArgumentCaptor.capture());
345
341
  List<Multimap> params = immutableListMultimapArgumentCaptor.getAllValues();
346
342
  Multimap params1 = params.get(0);
347
- assertEquals("300", params1.get("batchSize").iterator().next());
348
- Multimap params2 = params.get(1);
349
- assertEquals("GWP55GLCVCZLPE6SS7OCG5IEXQ======", params2.get("nextPageToken").iterator().next());
343
+ Assert.assertEquals("GET", params1.get("_method").iterator().next());
344
+ Assert.assertEquals("nextPageToken=GWP55GLCVCZLPE6SS7OCG5IEXQ%3D%3D%3D%3D%3D%3D&batchSize=300", fromContentProviderToString(formContentProviderArgumentCaptor.getValue()));
350
345
  }
351
346
 
352
347
  @Test
353
348
  public void getPrograms() throws Exception
354
349
  {
355
- mockMarketoPageResponse("/fixtures/program_response.json", END_POINT + MarketoRESTEndpoint.GET_PROGRAMS.getEndpoint());
350
+ ArrayNode listPages = (ArrayNode) OBJECT_MAPPER.readTree(new String(ByteStreams.toByteArray(this.getClass().getResourceAsStream("/fixtures/program_response.json")))).get("responses");
351
+ MarketoResponse<ObjectNode> page1 = OBJECT_MAPPER.readValue(listPages.get(0).toString(), RESPONSE_TYPE);
352
+ MarketoResponse<ObjectNode> page2 = OBJECT_MAPPER.readValue(listPages.get(1).toString(), RESPONSE_TYPE);
353
+ Mockito.doReturn(page1).doReturn(page2).when(marketoRestClient).doGet(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_PROGRAMS.getEndpoint()), Mockito.isNull(Map.class), Mockito.any(Multimap.class), Mockito.any(MarketoResponseJetty92EntityReader.class));
356
354
  RecordPagingIterable<ObjectNode> lists = marketoRestClient.getPrograms();
357
355
  Iterator<ObjectNode> iterator = lists.iterator();
358
356
  ObjectNode program1 = iterator.next();
359
357
  ObjectNode program2 = iterator.next();
360
358
  ObjectNode program3 = iterator.next();
361
- assertFalse(iterator.hasNext());
362
- assertEquals("MB_Sep_25_test_program", program1.get("name").asText());
363
- assertEquals("TD Output Test Program", program2.get("name").asText());
364
- assertEquals("Bill_progream", program3.get("name").asText());
359
+ Assert.assertFalse(iterator.hasNext());
360
+ Assert.assertEquals("MB_Sep_25_test_program", program1.get("name").asText());
361
+ Assert.assertEquals("TD Output Test Program", program2.get("name").asText());
362
+ Assert.assertEquals("Bill_progream", program3.get("name").asText());
365
363
  ArgumentCaptor<ImmutableListMultimap> immutableListMultimapArgumentCaptor = ArgumentCaptor.forClass(ImmutableListMultimap.class);
366
- verify(marketoRestClient, times(2)).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_PROGRAMS.getEndpoint()), isNull(Map.class), immutableListMultimapArgumentCaptor.capture(), any(MarketoResponseJetty92EntityReader.class));
364
+ Mockito.verify(marketoRestClient, Mockito.times(2)).doGet(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_PROGRAMS.getEndpoint()), Mockito.isNull(Map.class), immutableListMultimapArgumentCaptor.capture(), Mockito.any(MarketoResponseJetty92EntityReader.class));
367
365
  List<ImmutableListMultimap> params = immutableListMultimapArgumentCaptor.getAllValues();
368
366
  ImmutableListMultimap params1 = params.get(0);
369
- assertEquals("0", params1.get("offset").get(0));
370
- assertEquals("2", params1.get("maxReturn").get(0));
367
+ Assert.assertEquals("0", params1.get("offset").get(0));
368
+ Assert.assertEquals("2", params1.get("maxReturn").get(0));
371
369
  ImmutableListMultimap params2 = params.get(1);
372
- assertEquals("2", params2.get("offset").get(0));
370
+ Assert.assertEquals("2", params2.get("offset").get(0));
373
371
  }
374
372
 
375
373
  private void mockMarketoPageResponse(String fixtureName, String mockEndpoint) throws IOException
@@ -377,7 +375,7 @@ public class MarketoRestClientTest
377
375
  ArrayNode listPages = (ArrayNode) OBJECT_MAPPER.readTree(new String(ByteStreams.toByteArray(this.getClass().getResourceAsStream(fixtureName)))).get("responses");
378
376
  MarketoResponse<ObjectNode> page1 = OBJECT_MAPPER.readValue(listPages.get(0).toString(), RESPONSE_TYPE);
379
377
  MarketoResponse<ObjectNode> page2 = OBJECT_MAPPER.readValue(listPages.get(1).toString(), RESPONSE_TYPE);
380
- doReturn(page1).doReturn(page2).when(marketoRestClient).doGet(eq(mockEndpoint), isNull(Map.class), any(Multimap.class), any(MarketoResponseJetty92EntityReader.class));
378
+ Mockito.doReturn(page1).doReturn(page2).when(marketoRestClient).doPost(Mockito.eq(mockEndpoint), Mockito.isNull(Map.class), Mockito.any(Multimap.class), Mockito.any(MarketoResponseJetty92EntityReader.class), Mockito.any(FormContentProvider.class));
381
379
  }
382
380
 
383
381
  @Test
@@ -387,21 +385,32 @@ public class MarketoRestClientTest
387
385
  Map<String, String> pathParamPath = new HashMap<>();
388
386
  pathParamPath.put("program_id", programId);
389
387
  mockMarketoPageResponse("/fixtures/lead_by_program_response.json", END_POINT + MarketoRESTEndpoint.GET_LEADS_BY_PROGRAM.getEndpoint(pathParamPath));
390
- RecordPagingIterable<ObjectNode> lists = marketoRestClient.getLeadsByProgram(programId, Arrays.asList("firstName", "lastName"));
388
+ RecordPagingIterable<ObjectNode> lists = marketoRestClient.getLeadsByProgram(programId, "firstName,lastName");
391
389
  Iterator<ObjectNode> iterator = lists.iterator();
392
390
  ObjectNode lead1 = iterator.next();
393
391
  ObjectNode lead2 = iterator.next();
394
- assertFalse(iterator.hasNext());
395
- assertEquals("Tai 1", lead1.get("firstName").asText());
396
- assertEquals("Tai", lead2.get("firstName").asText());
392
+ Assert.assertFalse(iterator.hasNext());
393
+ Assert.assertEquals("Tai 1", lead1.get("firstName").asText());
394
+ Assert.assertEquals("Tai", lead2.get("firstName").asText());
397
395
  ArgumentCaptor<ImmutableListMultimap> immutableListMultimapArgumentCaptor = ArgumentCaptor.forClass(ImmutableListMultimap.class);
398
- verify(marketoRestClient, times(2)).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_LEADS_BY_PROGRAM.getEndpoint(pathParamPath)), isNull(Map.class), immutableListMultimapArgumentCaptor.capture(), any(MarketoResponseJetty92EntityReader.class));
396
+ ArgumentCaptor<FormContentProvider> formContentProviderArgumentCaptor = ArgumentCaptor.forClass(FormContentProvider.class);
397
+ Mockito.verify(marketoRestClient, Mockito.times(2)).doPost(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_LEADS_BY_PROGRAM.getEndpoint(pathParamPath)), Mockito.isNull(Map.class), immutableListMultimapArgumentCaptor.capture(), Mockito.any(MarketoResponseJetty92EntityReader.class), formContentProviderArgumentCaptor.capture());
398
+ String formContent = fromContentProviderToString(formContentProviderArgumentCaptor.getValue());
399
399
  List<ImmutableListMultimap> params = immutableListMultimapArgumentCaptor.getAllValues();
400
400
  Multimap params1 = params.get(0);
401
- assertEquals("300", params1.get("batchSize").iterator().next());
402
- assertEquals("firstName,lastName", params1.get("fields").iterator().next());
403
- Multimap params2 = params.get(1);
404
- assertEquals("z4MgsIiC5C======", params2.get("nextPageToken").iterator().next());
401
+ Assert.assertEquals("GET", params1.get("_method").iterator().next());
402
+ Assert.assertEquals("nextPageToken=z4MgsIiC5C%3D%3D%3D%3D%3D%3D&batchSize=300&fields=firstName%2ClastName", formContent);
403
+ }
404
+
405
+ private String fromContentProviderToString(ContentProvider formContentProvider)
406
+ {
407
+ Iterator<ByteBuffer> byteBufferIterator = formContentProvider.iterator();
408
+ StringBuilder stringBuilder = new StringBuilder();
409
+ while (byteBufferIterator.hasNext()) {
410
+ ByteBuffer next = byteBufferIterator.next();
411
+ stringBuilder.append(new String(next.array()));
412
+ }
413
+ return stringBuilder.toString();
405
414
  }
406
415
 
407
416
  @Test
@@ -411,21 +420,21 @@ public class MarketoRestClientTest
411
420
  Map<String, String> pathParamPath = new HashMap<>();
412
421
  pathParamPath.put("list_id", listId);
413
422
  mockMarketoPageResponse("/fixtures/lead_by_list.json", END_POINT + MarketoRESTEndpoint.GET_LEADS_BY_LIST.getEndpoint(pathParamPath));
414
- RecordPagingIterable<ObjectNode> lists = marketoRestClient.getLeadsByList(listId, Arrays.asList("firstName", "lastName"));
423
+ RecordPagingIterable<ObjectNode> lists = marketoRestClient.getLeadsByList(listId, "firstName,lastName");
415
424
  Iterator<ObjectNode> iterator = lists.iterator();
416
425
  ObjectNode lead1 = iterator.next();
417
426
  ObjectNode lead2 = iterator.next();
418
- assertFalse(iterator.hasNext());
419
- assertEquals("John10093", lead1.get("firstName").asText());
420
- assertEquals("John10094", lead2.get("firstName").asText());
427
+ Assert.assertFalse(iterator.hasNext());
428
+ Assert.assertEquals("John10093", lead1.get("firstName").asText());
429
+ Assert.assertEquals("John10094", lead2.get("firstName").asText());
421
430
  ArgumentCaptor<ImmutableListMultimap> immutableListMultimapArgumentCaptor = ArgumentCaptor.forClass(ImmutableListMultimap.class);
422
- verify(marketoRestClient, times(2)).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_LEADS_BY_LIST.getEndpoint(pathParamPath)), isNull(Map.class), immutableListMultimapArgumentCaptor.capture(), any(MarketoResponseJetty92EntityReader.class));
431
+ ArgumentCaptor<FormContentProvider> formContentProviderArgumentCaptor = ArgumentCaptor.forClass(FormContentProvider.class);
432
+ Mockito.verify(marketoRestClient, Mockito.times(2)).doPost(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_LEADS_BY_LIST.getEndpoint(pathParamPath)), Mockito.isNull(Map.class), immutableListMultimapArgumentCaptor.capture(), Mockito.any(MarketoResponseJetty92EntityReader.class), formContentProviderArgumentCaptor.capture());
433
+ String formContent = fromContentProviderToString(formContentProviderArgumentCaptor.getValue());
423
434
  List<ImmutableListMultimap> params = immutableListMultimapArgumentCaptor.getAllValues();
424
435
  Multimap params1 = params.get(0);
425
- assertEquals("300", params1.get("batchSize").iterator().next());
426
- assertEquals("firstName,lastName", params1.get("fields").iterator().next());
427
- Multimap params2 = params.get(1);
428
- assertEquals("z4MgsIiC5C======", params2.get("nextPageToken").iterator().next());
436
+ Assert.assertEquals("GET", params1.get("_method").iterator().next());
437
+ Assert.assertEquals("nextPageToken=z4MgsIiC5C%3D%3D%3D%3D%3D%3D&batchSize=300&fields=firstName%2ClastName", formContent);
429
438
  }
430
439
 
431
440
  @Test
@@ -436,15 +445,17 @@ public class MarketoRestClientTest
436
445
  Iterator<ObjectNode> iterator = lists.iterator();
437
446
  ObjectNode campaign1 = iterator.next();
438
447
  ObjectNode campaign2 = iterator.next();
439
- assertFalse(iterator.hasNext());
440
- assertEquals("Opened Sales Email", campaign1.get("name").asText());
441
- assertEquals("Clicks Link in Email", campaign2.get("name").asText());
448
+ Assert.assertFalse(iterator.hasNext());
449
+ Assert.assertEquals("Opened Sales Email", campaign1.get("name").asText());
450
+ Assert.assertEquals("Clicks Link in Email", campaign2.get("name").asText());
442
451
  ArgumentCaptor<ImmutableListMultimap> immutableListMultimapArgumentCaptor = ArgumentCaptor.forClass(ImmutableListMultimap.class);
443
- verify(marketoRestClient, times(2)).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_CAMPAIGN.getEndpoint()), isNull(Map.class), immutableListMultimapArgumentCaptor.capture(), any(MarketoResponseJetty92EntityReader.class));
452
+ ArgumentCaptor<FormContentProvider> formContentProviderArgumentCaptor = ArgumentCaptor.forClass(FormContentProvider.class);
453
+ Mockito.verify(marketoRestClient, Mockito.times(2)).doPost(Mockito.eq(END_POINT + MarketoRESTEndpoint.GET_CAMPAIGN.getEndpoint()), Mockito.isNull(Map.class), immutableListMultimapArgumentCaptor.capture(), Mockito.any(MarketoResponseJetty92EntityReader.class), formContentProviderArgumentCaptor.capture());
454
+ String content = fromContentProviderToString(formContentProviderArgumentCaptor.getValue());
455
+
444
456
  List<ImmutableListMultimap> params = immutableListMultimapArgumentCaptor.getAllValues();
445
457
  Multimap params1 = params.get(0);
446
- assertEquals("300", params1.get("batchSize").iterator().next());
447
- Multimap params2 = params.get(1);
448
- assertEquals("z4MgsIiC5C======", params2.get("nextPageToken").iterator().next());
458
+ Assert.assertEquals("GET", params1.get("_method").iterator().next());
459
+ Assert.assertEquals("nextPageToken=z4MgsIiC5C%3D%3D%3D%3D%3D%3D&batchSize=300", content);
449
460
  }
450
461
  }