embulk-input-marketo 0.6.0 → 0.6.1.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
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
  }