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.
- 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
|
}
|