embulk-input-marketo 0.6.0 → 0.6.1.alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/README.md +132 -12
- data/build.gradle +1 -1
- data/src/main/java/org/embulk/input/marketo/MarketoServiceImpl.java +115 -44
- data/src/main/java/org/embulk/input/marketo/MarketoUtils.java +83 -0
- data/src/main/java/org/embulk/input/marketo/delegate/MarketoBaseBulkExtractInputPlugin.java +17 -3
- data/src/main/java/org/embulk/input/marketo/model/BulkExtractRangeHeader.java +26 -0
- data/src/main/java/org/embulk/input/marketo/rest/MarketoBaseRestClient.java +8 -3
- data/src/main/java/org/embulk/input/marketo/rest/MarketoInputStreamResponseEntityReader.java +1 -1
- data/src/main/java/org/embulk/input/marketo/rest/MarketoResponseJetty92EntityReader.java +2 -4
- data/src/main/java/org/embulk/input/marketo/rest/MarketoRestClient.java +47 -20
- data/src/test/java/org/embulk/input/marketo/MarketoServiceImplTest.java +60 -57
- data/src/test/java/org/embulk/input/marketo/delegate/ActivityBulkExtractInputPluginTest.java +16 -15
- data/src/test/java/org/embulk/input/marketo/delegate/CampaignInputPluginTest.java +10 -10
- data/src/test/java/org/embulk/input/marketo/delegate/LeadBulkExtractInputPluginTest.java +22 -21
- data/src/test/java/org/embulk/input/marketo/delegate/LeadWithListInputPluginTest.java +22 -20
- data/src/test/java/org/embulk/input/marketo/delegate/LeadWithProgramInputPluginTest.java +22 -20
- data/src/test/java/org/embulk/input/marketo/delegate/MarketoBaseBulkExtractInputPluginTest.java +27 -28
- data/src/test/java/org/embulk/input/marketo/rest/MarketoBaseRestClientTest.java +56 -57
- data/src/test/java/org/embulk/input/marketo/rest/MarketoRestClientTest.java +136 -125
- metadata +6 -5
@@ -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
|
33
|
-
import
|
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)),
|
317
|
-
marketoRestClient.getLeadBulkExtractResult(exportId);
|
318
|
-
verify(marketoRestClient, times(1)).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_LEAD_EXPORT_RESULT.getEndpoint(pathParamMap)),
|
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)),
|
328
|
-
marketoRestClient.getActivitiesBulkExtractResult(exportId);
|
329
|
-
verify(marketoRestClient, times(1)).doGet(eq(END_POINT + MarketoRESTEndpoint.GET_ACTIVITY_EXPORT_RESULT.getEndpoint(pathParamMap)),
|
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
|
-
|
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("
|
348
|
-
|
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
|
-
|
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).
|
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,
|
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
|
-
|
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("
|
402
|
-
assertEquals("firstName
|
403
|
-
|
404
|
-
|
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,
|
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
|
-
|
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("
|
426
|
-
assertEquals("firstName
|
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
|
-
|
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("
|
447
|
-
|
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
|
}
|