embulk-input-http 0.0.13 → 0.0.14
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/classpath/{embulk-input-http-0.0.13.jar → embulk-input-http-0.0.14.jar} +0 -0
- data/classpath/{httpclient-4.4.jar → httpclient-4.5.jar} +0 -0
- data/classpath/{httpcore-4.4.jar → httpcore-4.4.1.jar} +0 -0
- metadata +5 -28
- data/.gitignore +0 -8
- data/LICENSE.txt +0 -21
- data/README.md +0 -188
- data/build.gradle +0 -76
- data/config/checkstyle/checkstyle.xml +0 -128
- data/config/checkstyle/default.xml +0 -108
- data/example/json-example.yml +0 -21
- data/gradle/wrapper/gradle-wrapper.jar +0 -0
- data/gradle/wrapper/gradle-wrapper.properties +0 -6
- data/gradlew +0 -164
- data/gradlew.bat +0 -90
- data/lib/embulk/input/http.rb +0 -3
- data/settings.gradle +0 -1
- data/src/main/java/org/embulk/input/BasicAuthConfig.java +0 -39
- data/src/main/java/org/embulk/input/HttpInputPlugin.java +0 -332
- data/src/main/java/org/embulk/input/PagerConfig.java +0 -86
- data/src/main/java/org/embulk/input/ParamsConfig.java +0 -82
- data/src/main/java/org/embulk/input/QueryConfig.java +0 -171
- data/src/main/java/org/embulk/input/RetryableHandler.java +0 -90
- data/src/test/java/org/embulk/input/TestHttpInputPlugin.java +0 -5
- data/src/test/java/org/embulk/input/TestPagerConfig.java +0 -78
- data/src/test/java/org/embulk/input/TestParamsConfig.java +0 -105
- data/src/test/java/org/embulk/input/TestQueryConfig.java +0 -125
@@ -1,86 +0,0 @@
|
|
1
|
-
package org.embulk.input;
|
2
|
-
|
3
|
-
import com.fasterxml.jackson.annotation.JsonCreator;
|
4
|
-
import com.fasterxml.jackson.annotation.JsonProperty;
|
5
|
-
import com.google.common.base.Optional;
|
6
|
-
|
7
|
-
import java.util.ArrayList;
|
8
|
-
import java.util.List;
|
9
|
-
|
10
|
-
public class PagerConfig {
|
11
|
-
|
12
|
-
private final String fromParam;
|
13
|
-
private final Optional<String> toParam;
|
14
|
-
private final int start;
|
15
|
-
private final int pages;
|
16
|
-
private final int step;
|
17
|
-
|
18
|
-
@JsonCreator
|
19
|
-
public PagerConfig(@JsonProperty("from_param") String fromParam,
|
20
|
-
@JsonProperty("to_param") Optional<String> toParam,
|
21
|
-
@JsonProperty("start") Optional<Integer> start,
|
22
|
-
@JsonProperty("pages") int pages,
|
23
|
-
@JsonProperty("step") Optional<Integer> step) {
|
24
|
-
this.fromParam = fromParam;
|
25
|
-
this.toParam = toParam;
|
26
|
-
this.start = start.or(0);
|
27
|
-
this.pages = pages;
|
28
|
-
this.step = step.or(1);
|
29
|
-
}
|
30
|
-
|
31
|
-
public List<List<QueryConfig.Query>> expand() {
|
32
|
-
List<List<QueryConfig.Query>> queries = new ArrayList<>();
|
33
|
-
int p = 1;
|
34
|
-
int index = start;
|
35
|
-
while (p <= pages) {
|
36
|
-
List<QueryConfig.Query> one = new ArrayList<>();
|
37
|
-
one.add(new QueryConfig.Query(fromParam, Integer.toString(index)));
|
38
|
-
if (toParam.isPresent()) {
|
39
|
-
int t = index + step - 1;
|
40
|
-
one.add(new QueryConfig.Query(toParam.get(), Integer.toString(t)));
|
41
|
-
index = t + 1;
|
42
|
-
} else {
|
43
|
-
index += step;
|
44
|
-
}
|
45
|
-
queries.add(one);
|
46
|
-
p++;
|
47
|
-
}
|
48
|
-
return queries;
|
49
|
-
}
|
50
|
-
|
51
|
-
@JsonProperty("from_param")
|
52
|
-
public String getFromParam() {
|
53
|
-
return fromParam;
|
54
|
-
}
|
55
|
-
|
56
|
-
@JsonProperty("to_param")
|
57
|
-
public Optional<String> getToParam() {
|
58
|
-
return toParam;
|
59
|
-
}
|
60
|
-
|
61
|
-
@JsonProperty("start")
|
62
|
-
public int getStart() {
|
63
|
-
return start;
|
64
|
-
}
|
65
|
-
|
66
|
-
@JsonProperty("pages")
|
67
|
-
public int getPages() {
|
68
|
-
return pages;
|
69
|
-
}
|
70
|
-
|
71
|
-
@JsonProperty("step")
|
72
|
-
public int getStep() {
|
73
|
-
return step;
|
74
|
-
}
|
75
|
-
|
76
|
-
@Override
|
77
|
-
public String toString() {
|
78
|
-
return "PagerConfig{" +
|
79
|
-
"fromParam='" + fromParam + '\'' +
|
80
|
-
", toParam=" + toParam +
|
81
|
-
", start=" + start +
|
82
|
-
", pages=" + pages +
|
83
|
-
", step=" + step +
|
84
|
-
'}';
|
85
|
-
}
|
86
|
-
}
|
@@ -1,82 +0,0 @@
|
|
1
|
-
package org.embulk.input;
|
2
|
-
|
3
|
-
import com.fasterxml.jackson.annotation.JsonCreator;
|
4
|
-
import com.fasterxml.jackson.annotation.JsonValue;
|
5
|
-
import com.google.common.base.Objects;
|
6
|
-
import com.google.common.base.Optional;
|
7
|
-
|
8
|
-
import java.util.ArrayList;
|
9
|
-
import java.util.List;
|
10
|
-
|
11
|
-
public class ParamsConfig {
|
12
|
-
|
13
|
-
private final List<QueryConfig> queries;
|
14
|
-
|
15
|
-
@JsonCreator
|
16
|
-
public ParamsConfig(List<QueryConfig> queries) {
|
17
|
-
this.queries = queries;
|
18
|
-
}
|
19
|
-
|
20
|
-
@JsonValue
|
21
|
-
public List<QueryConfig> getQueries() {
|
22
|
-
return queries;
|
23
|
-
}
|
24
|
-
|
25
|
-
public List<List<QueryConfig.Query>> generateQueries(Optional<PagerConfig> pagerConfig) {
|
26
|
-
List<List<QueryConfig.Query>> base = new ArrayList<>(queries.size());
|
27
|
-
for (QueryConfig p : queries) {
|
28
|
-
base.add(p.expand());
|
29
|
-
}
|
30
|
-
|
31
|
-
int productSize = 1;
|
32
|
-
int baseSize = base.size();
|
33
|
-
for (int i = 0; i < baseSize; productSize *= base.get(i).size(), i++);
|
34
|
-
|
35
|
-
List<List<QueryConfig.Query>> expands = new ArrayList<>(productSize);
|
36
|
-
for (int i = 0; i < productSize; i++) {
|
37
|
-
int j = 1;
|
38
|
-
List<QueryConfig.Query> one = new ArrayList<>();
|
39
|
-
for (List<QueryConfig.Query> list : base) {
|
40
|
-
QueryConfig.Query pc = list.get((i / j) % list.size());
|
41
|
-
one.add(pc);
|
42
|
-
j *= list.size();
|
43
|
-
}
|
44
|
-
if (pagerConfig.isPresent()) {
|
45
|
-
for (List<QueryConfig.Query> q : pagerConfig.get().expand()) {
|
46
|
-
expands.add(copyAndConcat(one, q));
|
47
|
-
}
|
48
|
-
} else {
|
49
|
-
expands.add(one);
|
50
|
-
}
|
51
|
-
}
|
52
|
-
|
53
|
-
return expands;
|
54
|
-
}
|
55
|
-
|
56
|
-
@Override
|
57
|
-
public boolean equals(Object obj) {
|
58
|
-
if (this == obj) {
|
59
|
-
return true;
|
60
|
-
}
|
61
|
-
if (!(obj instanceof ParamsConfig)) {
|
62
|
-
return false;
|
63
|
-
}
|
64
|
-
ParamsConfig other = (ParamsConfig) obj;
|
65
|
-
return Objects.equal(queries, other.queries);
|
66
|
-
}
|
67
|
-
|
68
|
-
@Override
|
69
|
-
public int hashCode() {
|
70
|
-
return Objects.hashCode(queries);
|
71
|
-
}
|
72
|
-
|
73
|
-
private List<QueryConfig.Query> copyAndConcat(List<QueryConfig.Query>... srcs) {
|
74
|
-
List<QueryConfig.Query> dest = new ArrayList<>();
|
75
|
-
for (List<QueryConfig.Query> src : srcs) {
|
76
|
-
for (QueryConfig.Query q : src) {
|
77
|
-
dest.add(q.copy());
|
78
|
-
}
|
79
|
-
}
|
80
|
-
return dest;
|
81
|
-
}
|
82
|
-
}
|
@@ -1,171 +0,0 @@
|
|
1
|
-
package org.embulk.input;
|
2
|
-
|
3
|
-
import com.fasterxml.jackson.annotation.JsonCreator;
|
4
|
-
import com.fasterxml.jackson.annotation.JsonProperty;
|
5
|
-
import com.google.common.base.Objects;
|
6
|
-
import com.google.common.base.Optional;
|
7
|
-
|
8
|
-
import java.util.ArrayList;
|
9
|
-
import java.util.Arrays;
|
10
|
-
import java.util.List;
|
11
|
-
|
12
|
-
public class QueryConfig {
|
13
|
-
|
14
|
-
private final String name;
|
15
|
-
private final Optional<String> value;
|
16
|
-
private final Optional<List<String>> values;
|
17
|
-
private final boolean expand;
|
18
|
-
|
19
|
-
@JsonCreator
|
20
|
-
public QueryConfig(
|
21
|
-
@JsonProperty("name") String name,
|
22
|
-
@JsonProperty("value") Optional<String> value,
|
23
|
-
@JsonProperty("values") Optional<List<String>> values,
|
24
|
-
@JsonProperty("expand") boolean expand) {
|
25
|
-
this.name = name;
|
26
|
-
this.value = value;
|
27
|
-
this.values = values;
|
28
|
-
this.expand = expand;
|
29
|
-
}
|
30
|
-
|
31
|
-
public List<Query> expand() {
|
32
|
-
List<Query> dest;
|
33
|
-
if (value.isPresent()) {
|
34
|
-
if (expand) {
|
35
|
-
List<String> expanded = BraceExpansion.expand(value.get());
|
36
|
-
dest = new ArrayList<>(expanded.size());
|
37
|
-
for (String s : expanded) {
|
38
|
-
dest.add(new Query(name, s));
|
39
|
-
}
|
40
|
-
} else {
|
41
|
-
dest = new ArrayList<>(1);
|
42
|
-
dest.add(new Query(name, value.get()));
|
43
|
-
}
|
44
|
-
} else if (values.isPresent()) {
|
45
|
-
if (expand) {
|
46
|
-
dest = new ArrayList<>(values.get().size());
|
47
|
-
for (String s : values.get()) {
|
48
|
-
dest.add(new Query(name, s));
|
49
|
-
}
|
50
|
-
} else {
|
51
|
-
dest = new ArrayList<>(1);
|
52
|
-
final String[] valueArr = values.get().toArray(new String[values.get().size()]);
|
53
|
-
dest.add(new Query(name, valueArr));
|
54
|
-
}
|
55
|
-
} else {
|
56
|
-
throw new IllegalArgumentException("value or values must be specified to 'params'");
|
57
|
-
}
|
58
|
-
return dest;
|
59
|
-
}
|
60
|
-
|
61
|
-
@JsonProperty("name")
|
62
|
-
public String getName() {
|
63
|
-
return name;
|
64
|
-
}
|
65
|
-
|
66
|
-
@JsonProperty("value")
|
67
|
-
public Optional<String> getValue() {
|
68
|
-
return value;
|
69
|
-
}
|
70
|
-
|
71
|
-
@JsonProperty("expand")
|
72
|
-
public boolean isExpand() {
|
73
|
-
return expand;
|
74
|
-
}
|
75
|
-
|
76
|
-
@Override
|
77
|
-
public boolean equals(Object obj) {
|
78
|
-
if (this == obj) {
|
79
|
-
return true;
|
80
|
-
}
|
81
|
-
if (!(obj instanceof QueryConfig)) {
|
82
|
-
return false;
|
83
|
-
}
|
84
|
-
QueryConfig other = (QueryConfig) obj;
|
85
|
-
return Objects.equal(this.name, other.name) &&
|
86
|
-
Objects.equal(value, other.value) &&
|
87
|
-
Objects.equal(expand, other.expand);
|
88
|
-
}
|
89
|
-
|
90
|
-
@Override
|
91
|
-
public int hashCode() {
|
92
|
-
return Objects.hashCode(name, value, expand);
|
93
|
-
}
|
94
|
-
|
95
|
-
@Override
|
96
|
-
public String toString() {
|
97
|
-
return String.format("ParameterConfig[%s, %s, %s]",
|
98
|
-
getName(), getValue(), isExpand());
|
99
|
-
}
|
100
|
-
|
101
|
-
public static class Query {
|
102
|
-
private final String name;
|
103
|
-
private final String[] values;
|
104
|
-
|
105
|
-
public Query(
|
106
|
-
@JsonProperty("name") String name,
|
107
|
-
@JsonProperty("values") String... values) {
|
108
|
-
this.name = name;
|
109
|
-
this.values = values;
|
110
|
-
}
|
111
|
-
|
112
|
-
public String getName() {
|
113
|
-
return name;
|
114
|
-
}
|
115
|
-
|
116
|
-
public String[] getValues() {
|
117
|
-
return values;
|
118
|
-
}
|
119
|
-
|
120
|
-
public Query copy() {
|
121
|
-
return new Query(this.name, Arrays.copyOf(this.values, this.values.length));
|
122
|
-
}
|
123
|
-
}
|
124
|
-
|
125
|
-
private static class BraceExpansion {
|
126
|
-
|
127
|
-
public static List<String> expand(String s) {
|
128
|
-
return expandRecursive("", s, "", new ArrayList<String>());
|
129
|
-
}
|
130
|
-
|
131
|
-
private static List<String> expandRecursive(String prefix, String s,
|
132
|
-
String suffix, List<String> dest) {
|
133
|
-
// I used the code below as reference.
|
134
|
-
// http://rosettacode.org/wiki/Brace_expansion#Java
|
135
|
-
int i1 = -1, i2 = 0;
|
136
|
-
String noEscape = s.replaceAll("([\\\\]{2}|[\\\\][,}{])", " ");
|
137
|
-
StringBuilder sb = null;
|
138
|
-
|
139
|
-
outer:
|
140
|
-
while ((i1 = noEscape.indexOf('{', i1 + 1)) != -1) {
|
141
|
-
i2 = i1 + 1;
|
142
|
-
sb = new StringBuilder(s);
|
143
|
-
for (int depth = 1; i2 < s.length() && depth > 0; i2++) {
|
144
|
-
char c = noEscape.charAt(i2);
|
145
|
-
depth = (c == '{') ? ++depth : depth;
|
146
|
-
depth = (c == '}') ? --depth : depth;
|
147
|
-
if (c == ',' && depth == 1) {
|
148
|
-
sb.setCharAt(i2, '\u0000');
|
149
|
-
} else if (c == '}' && depth == 0 && sb.indexOf("\u0000") != -1) {
|
150
|
-
break outer;
|
151
|
-
}
|
152
|
-
}
|
153
|
-
}
|
154
|
-
|
155
|
-
if (i1 == -1) {
|
156
|
-
if (suffix.length() > 0) {
|
157
|
-
expandRecursive(prefix + s, suffix, "", dest);
|
158
|
-
} else {
|
159
|
-
final String out = String.format("%s%s%s", prefix, s, suffix).
|
160
|
-
replaceAll("[\\\\]{2}", "\\").replaceAll("[\\\\]([,}{])", "$1");
|
161
|
-
dest.add(out);
|
162
|
-
}
|
163
|
-
} else {
|
164
|
-
for (String m : sb.substring(i1 + 1, i2).split("\u0000", -1)) {
|
165
|
-
expandRecursive(prefix + s.substring(0, i1), m, s.substring(i2 + 1) + suffix, dest);
|
166
|
-
}
|
167
|
-
}
|
168
|
-
return dest;
|
169
|
-
}
|
170
|
-
}
|
171
|
-
}
|
@@ -1,90 +0,0 @@
|
|
1
|
-
package org.embulk.input;
|
2
|
-
|
3
|
-
import com.google.common.collect.ImmutableList;
|
4
|
-
import org.apache.http.HttpException;
|
5
|
-
import org.apache.http.HttpResponse;
|
6
|
-
import org.apache.http.client.HttpClient;
|
7
|
-
import org.apache.http.client.methods.HttpRequestBase;
|
8
|
-
import org.apache.http.util.EntityUtils;
|
9
|
-
import org.embulk.spi.Exec;
|
10
|
-
import org.embulk.spi.util.RetryExecutor;
|
11
|
-
import org.slf4j.Logger;
|
12
|
-
|
13
|
-
import javax.net.ssl.SSLException;
|
14
|
-
import java.io.IOException;
|
15
|
-
import java.io.InterruptedIOException;
|
16
|
-
import java.net.UnknownHostException;
|
17
|
-
import java.util.List;
|
18
|
-
|
19
|
-
public class RetryableHandler implements RetryExecutor.Retryable {
|
20
|
-
|
21
|
-
protected final Logger logger = Exec.getLogger(getClass());
|
22
|
-
|
23
|
-
private static List<Class<? extends IOException>> NOT_RETRIABLE_CLAASSES;
|
24
|
-
|
25
|
-
private final HttpClient client;
|
26
|
-
private final HttpRequestBase request;
|
27
|
-
private HttpResponse response;
|
28
|
-
|
29
|
-
static {
|
30
|
-
ImmutableList.Builder<Class<? extends IOException>> classes = ImmutableList.builder();
|
31
|
-
classes.add(UnknownHostException.class).
|
32
|
-
add(InterruptedIOException.class).
|
33
|
-
add(SSLException.class);
|
34
|
-
NOT_RETRIABLE_CLAASSES = classes.build();
|
35
|
-
}
|
36
|
-
|
37
|
-
public RetryableHandler(HttpClient client, HttpRequestBase request) {
|
38
|
-
this.client = client;
|
39
|
-
this.request = request;
|
40
|
-
}
|
41
|
-
|
42
|
-
public HttpResponse getResponse() {
|
43
|
-
return response;
|
44
|
-
}
|
45
|
-
|
46
|
-
@Override
|
47
|
-
public Object call() throws Exception {
|
48
|
-
if (response != null) throw new IllegalStateException("response is already set");
|
49
|
-
HttpResponse response = client.execute(request);
|
50
|
-
statusIsOkOrThrow(response);
|
51
|
-
this.response = response;
|
52
|
-
return null;
|
53
|
-
}
|
54
|
-
|
55
|
-
@Override
|
56
|
-
public boolean isRetryableException(Exception exception) {
|
57
|
-
if (NOT_RETRIABLE_CLAASSES.contains(exception.getClass())) {
|
58
|
-
logger.error(String.format("'%s' is not retriable", exception.getClass()));
|
59
|
-
return false;
|
60
|
-
}
|
61
|
-
return true;
|
62
|
-
}
|
63
|
-
|
64
|
-
@Override
|
65
|
-
public void onRetry(Exception exception, int retryCount, int retryLimit, int retryWait)
|
66
|
-
throws RetryExecutor.RetryGiveupException {
|
67
|
-
logger.warn("retrying {}/{} after {} seconds. Message: {}",
|
68
|
-
retryCount, retryLimit, retryWait / 1000,
|
69
|
-
exception.getMessage());
|
70
|
-
}
|
71
|
-
|
72
|
-
@Override
|
73
|
-
public void onGiveup(Exception firstException, Exception lastException)
|
74
|
-
throws RetryExecutor.RetryGiveupException {
|
75
|
-
logger.error("giveup {}", lastException.getMessage());
|
76
|
-
}
|
77
|
-
|
78
|
-
protected void statusIsOkOrThrow(HttpResponse response)
|
79
|
-
throws HttpException, IOException {
|
80
|
-
int code = response.getStatusLine().getStatusCode();
|
81
|
-
switch (response.getStatusLine().getStatusCode()) {
|
82
|
-
case 200:
|
83
|
-
return;
|
84
|
-
default:
|
85
|
-
throw new HttpException(String.format("Request is not successful, code=%d, body=%s",
|
86
|
-
code, EntityUtils.toString(response.getEntity())));
|
87
|
-
}
|
88
|
-
}
|
89
|
-
|
90
|
-
}
|
@@ -1,78 +0,0 @@
|
|
1
|
-
package org.embulk.input;
|
2
|
-
|
3
|
-
import com.google.common.base.Optional;
|
4
|
-
import org.junit.Test;
|
5
|
-
|
6
|
-
import java.util.List;
|
7
|
-
|
8
|
-
import static org.junit.Assert.assertEquals;
|
9
|
-
|
10
|
-
public class TestPagerConfig {
|
11
|
-
|
12
|
-
@Test
|
13
|
-
public void testExpandFromTo() throws Exception {
|
14
|
-
List<List<QueryConfig.Query>> dest = new PagerConfig("from", Optional.of("to"), Optional.of(1), 3,
|
15
|
-
Optional.of(2)).expand();
|
16
|
-
assertEquals(dest.size(), 3);
|
17
|
-
|
18
|
-
assertEquals(dest.get(0).size(), 2);
|
19
|
-
assertEquals(dest.get(0).get(0).getName(), "from");
|
20
|
-
assertEquals(dest.get(0).get(0).getValues()[0], "1");
|
21
|
-
assertEquals(dest.get(0).get(1).getName(), "to");
|
22
|
-
assertEquals(dest.get(0).get(1).getValues()[0], "2");
|
23
|
-
|
24
|
-
assertEquals(dest.get(1).size(), 2);
|
25
|
-
assertEquals(dest.get(1).get(0).getName(), "from");
|
26
|
-
assertEquals(dest.get(1).get(0).getValues()[0], "3");
|
27
|
-
assertEquals(dest.get(1).get(1).getName(), "to");
|
28
|
-
assertEquals(dest.get(1).get(1).getValues()[0], "4");
|
29
|
-
|
30
|
-
assertEquals(dest.get(2).size(), 2);
|
31
|
-
assertEquals(dest.get(2).get(0).getName(), "from");
|
32
|
-
assertEquals(dest.get(2).get(0).getValues()[0], "5");
|
33
|
-
assertEquals(dest.get(2).get(1).getName(), "to");
|
34
|
-
assertEquals(dest.get(2).get(1).getValues()[0], "6");
|
35
|
-
}
|
36
|
-
|
37
|
-
@Test
|
38
|
-
public void testExpandFromToWithDefault() throws Exception {
|
39
|
-
Optional<Integer> nullValue = Optional.absent();
|
40
|
-
|
41
|
-
List<List<QueryConfig.Query>> dest = new PagerConfig("from", Optional.of("to"), nullValue, 2, nullValue)
|
42
|
-
.expand();
|
43
|
-
assertEquals(dest.size(), 2);
|
44
|
-
|
45
|
-
assertEquals(dest.get(0).size(), 2);
|
46
|
-
assertEquals(dest.get(0).get(0).getName(), "from");
|
47
|
-
assertEquals(dest.get(0).get(0).getValues()[0], "0");
|
48
|
-
assertEquals(dest.get(0).get(1).getName(), "to");
|
49
|
-
assertEquals(dest.get(0).get(1).getValues()[0], "0");
|
50
|
-
|
51
|
-
assertEquals(dest.get(1).size(), 2);
|
52
|
-
assertEquals(dest.get(1).get(0).getName(), "from");
|
53
|
-
assertEquals(dest.get(1).get(0).getValues()[0], "1");
|
54
|
-
assertEquals(dest.get(1).get(1).getName(), "to");
|
55
|
-
assertEquals(dest.get(1).get(1).getValues()[0], "1");
|
56
|
-
}
|
57
|
-
|
58
|
-
@Test
|
59
|
-
public void testExpandPagenate() throws Exception {
|
60
|
-
Optional<String> nullValue = Optional.absent();
|
61
|
-
List<List<QueryConfig.Query>> dest = new PagerConfig("page", nullValue, Optional.of(1), 3,
|
62
|
-
Optional.of(1)).expand();
|
63
|
-
assertEquals(dest.size(), 3);
|
64
|
-
|
65
|
-
assertEquals(dest.get(0).size(), 1);
|
66
|
-
assertEquals(dest.get(0).get(0).getName(), "page");
|
67
|
-
assertEquals(dest.get(0).get(0).getValues()[0], "1");
|
68
|
-
|
69
|
-
assertEquals(dest.get(1).size(), 1);
|
70
|
-
assertEquals(dest.get(1).get(0).getName(), "page");
|
71
|
-
assertEquals(dest.get(1).get(0).getValues()[0], "2");
|
72
|
-
|
73
|
-
assertEquals(dest.get(2).size(), 1);
|
74
|
-
assertEquals(dest.get(2).get(0).getName(), "page");
|
75
|
-
assertEquals(dest.get(2).get(0).getValues()[0], "3");
|
76
|
-
}
|
77
|
-
|
78
|
-
}
|
@@ -1,105 +0,0 @@
|
|
1
|
-
package org.embulk.input;
|
2
|
-
|
3
|
-
import com.google.common.base.Optional;
|
4
|
-
import com.google.common.collect.Lists;
|
5
|
-
import org.junit.Test;
|
6
|
-
|
7
|
-
import java.util.List;
|
8
|
-
|
9
|
-
import static org.junit.Assert.assertEquals;
|
10
|
-
|
11
|
-
public class TestParamsConfig {
|
12
|
-
|
13
|
-
@Test
|
14
|
-
public void testUnexpandQueriesSinglePair() throws Exception {
|
15
|
-
Optional<List<String>> nullValues = Optional.absent();
|
16
|
-
QueryConfig q1 = new QueryConfig("test1", Optional.of("awasome1"), nullValues, false);
|
17
|
-
QueryConfig q2 = new QueryConfig("test2", Optional.of("awasome2"), nullValues, false);
|
18
|
-
ParamsConfig paramsConfig = new ParamsConfig(Lists.newArrayList(q1, q2));
|
19
|
-
Optional<PagerConfig> pagerConfig = Optional.absent();
|
20
|
-
List<List<QueryConfig.Query>> dest = paramsConfig.generateQueries(pagerConfig);
|
21
|
-
assertEquals(dest.size(), 1);
|
22
|
-
assertEquals(dest.get(0).size(), 2);
|
23
|
-
assertEquals(dest.get(0).get(0).getName(), "test1");
|
24
|
-
assertEquals(dest.get(0).get(0).getValues()[0], "awasome1");
|
25
|
-
assertEquals(dest.get(0).get(1).getName(), "test2");
|
26
|
-
assertEquals(dest.get(0).get(1).getValues()[0], "awasome2");
|
27
|
-
}
|
28
|
-
|
29
|
-
@Test
|
30
|
-
public void testUnexpandQueriesExpandPair() throws Exception {
|
31
|
-
Optional<String> nullValue = Optional.absent();
|
32
|
-
List<String> values1 = Lists.newArrayList("a", "b");
|
33
|
-
List<String> values2 = Lists.newArrayList("c", "d");
|
34
|
-
|
35
|
-
QueryConfig q1 = new QueryConfig("test1", nullValue, Optional.of(values1), false);
|
36
|
-
QueryConfig q2 = new QueryConfig("test2", nullValue, Optional.of(values2), false);
|
37
|
-
|
38
|
-
ParamsConfig paramsConfig = new ParamsConfig(Lists.newArrayList(q1, q2));
|
39
|
-
Optional<PagerConfig> pagerConfig = Optional.absent();
|
40
|
-
List<List<QueryConfig.Query>> dest = paramsConfig.generateQueries(pagerConfig);
|
41
|
-
assertEquals(dest.size(), 1);
|
42
|
-
assertEquals(dest.get(0).size(), 2);
|
43
|
-
assertEquals(dest.get(0).get(0).getName(), "test1");
|
44
|
-
assertEquals(dest.get(0).get(0).getValues()[0], "a");
|
45
|
-
assertEquals(dest.get(0).get(0).getValues()[1], "b");
|
46
|
-
assertEquals(dest.get(0).get(1).getName(), "test2");
|
47
|
-
assertEquals(dest.get(0).get(1).getValues()[0], "c");
|
48
|
-
assertEquals(dest.get(0).get(1).getValues()[1], "d");
|
49
|
-
}
|
50
|
-
|
51
|
-
@Test
|
52
|
-
public void testExpandQueriesSinglePair() throws Exception {
|
53
|
-
Optional<List<String>> nullValues = Optional.absent();
|
54
|
-
QueryConfig q1 = new QueryConfig("test1", Optional.of("awasome1"), nullValues, true);
|
55
|
-
QueryConfig q2 = new QueryConfig("test2", Optional.of("awasome2"), nullValues, true);
|
56
|
-
ParamsConfig paramsConfig = new ParamsConfig(Lists.newArrayList(q1, q2));
|
57
|
-
Optional<PagerConfig> pagerConfig = Optional.absent();
|
58
|
-
List<List<QueryConfig.Query>> dest = paramsConfig.generateQueries(pagerConfig);
|
59
|
-
assertEquals(dest.size(), 1);
|
60
|
-
assertEquals(dest.get(0).size(), 2);
|
61
|
-
assertEquals(dest.get(0).get(0).getName(), "test1");
|
62
|
-
assertEquals(dest.get(0).get(0).getValues()[0], "awasome1");
|
63
|
-
assertEquals(dest.get(0).get(1).getName(), "test2");
|
64
|
-
assertEquals(dest.get(0).get(1).getValues()[0], "awasome2");
|
65
|
-
}
|
66
|
-
|
67
|
-
@Test
|
68
|
-
public void testExpandQueriesExpandPair() throws Exception {
|
69
|
-
Optional<String> nullValue = Optional.absent();
|
70
|
-
List<String> values1 = Lists.newArrayList("a", "b");
|
71
|
-
List<String> values2 = Lists.newArrayList("c", "d");
|
72
|
-
|
73
|
-
QueryConfig q1 = new QueryConfig("test1", nullValue, Optional.of(values1), true);
|
74
|
-
QueryConfig q2 = new QueryConfig("test2", nullValue, Optional.of(values2), true);
|
75
|
-
|
76
|
-
ParamsConfig paramsConfig = new ParamsConfig(Lists.newArrayList(q1, q2));
|
77
|
-
Optional<PagerConfig> pagerConfig = Optional.absent();
|
78
|
-
List<List<QueryConfig.Query>> dest = paramsConfig.generateQueries(pagerConfig);
|
79
|
-
assertEquals(dest.size(), 4);
|
80
|
-
|
81
|
-
assertEquals(dest.get(0).size(), 2);
|
82
|
-
assertEquals(dest.get(0).get(0).getName(), "test1");
|
83
|
-
assertEquals(dest.get(0).get(0).getValues()[0], "a");
|
84
|
-
assertEquals(dest.get(0).get(1).getName(), "test2");
|
85
|
-
assertEquals(dest.get(0).get(1).getValues()[0], "c");
|
86
|
-
|
87
|
-
assertEquals(dest.get(1).size(), 2);
|
88
|
-
assertEquals(dest.get(1).get(0).getName(), "test1");
|
89
|
-
assertEquals(dest.get(1).get(0).getValues()[0], "b");
|
90
|
-
assertEquals(dest.get(1).get(1).getName(), "test2");
|
91
|
-
assertEquals(dest.get(1).get(1).getValues()[0], "c");
|
92
|
-
|
93
|
-
assertEquals(dest.get(2).size(), 2);
|
94
|
-
assertEquals(dest.get(2).get(0).getName(), "test1");
|
95
|
-
assertEquals(dest.get(2).get(0).getValues()[0], "a");
|
96
|
-
assertEquals(dest.get(2).get(1).getName(), "test2");
|
97
|
-
assertEquals(dest.get(2).get(1).getValues()[0], "d");
|
98
|
-
|
99
|
-
assertEquals(dest.get(3).size(), 2);
|
100
|
-
assertEquals(dest.get(3).get(0).getName(), "test1");
|
101
|
-
assertEquals(dest.get(3).get(0).getValues()[0], "b");
|
102
|
-
assertEquals(dest.get(3).get(1).getName(), "test2");
|
103
|
-
assertEquals(dest.get(3).get(1).getValues()[0], "d");
|
104
|
-
}
|
105
|
-
}
|