embulk-input-jira 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +10 -5
  3. data/.travis.yml +4 -34
  4. data/CHANGELOG.md +4 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +5 -4
  7. data/build.gradle +116 -0
  8. data/config/checkstyle/checkstyle.xml +128 -0
  9. data/config/checkstyle/default.xml +108 -0
  10. data/gradle/wrapper/gradle-wrapper.jar +0 -0
  11. data/gradle/wrapper/gradle-wrapper.properties +5 -0
  12. data/gradlew +172 -0
  13. data/gradlew.bat +84 -0
  14. data/lib/embulk/guess/jira.rb +24 -0
  15. data/lib/embulk/input/jira.rb +3 -169
  16. data/src/main/java/org/embulk/input/jira/AuthenticateMethod.java +27 -0
  17. data/src/main/java/org/embulk/input/jira/Constant.java +17 -0
  18. data/src/main/java/org/embulk/input/jira/Issue.java +150 -0
  19. data/src/main/java/org/embulk/input/jira/JiraInputPlugin.java +226 -0
  20. data/src/main/java/org/embulk/input/jira/client/JiraClient.java +254 -0
  21. data/src/main/java/org/embulk/input/jira/util/JiraException.java +18 -0
  22. data/src/main/java/org/embulk/input/jira/util/JiraUtil.java +264 -0
  23. data/src/test/java/org/embulk/input/jira/IssueTest.java +278 -0
  24. data/src/test/java/org/embulk/input/jira/JiraInputPluginTest.java +204 -0
  25. data/src/test/java/org/embulk/input/jira/JiraPluginTestRuntime.java +133 -0
  26. data/src/test/java/org/embulk/input/jira/TestHelpers.java +41 -0
  27. data/src/test/java/org/embulk/input/jira/client/JiraClientTest.java +222 -0
  28. data/src/test/java/org/embulk/input/jira/util/JiraUtilTest.java +318 -0
  29. data/src/test/resources/config.yml +13 -0
  30. data/src/test/resources/issue_flatten.json +129 -0
  31. data/src/test/resources/issue_flatten_expected.json +73 -0
  32. data/src/test/resources/issue_get.json +36 -0
  33. data/src/test/resources/issue_get_expected.json +62 -0
  34. data/src/test/resources/jira_client.json +81 -0
  35. data/src/test/resources/jira_input_plugin.json +114 -0
  36. data/src/test/resources/jira_util.json +26 -0
  37. metadata +55 -175
  38. data/Gemfile +0 -3
  39. data/LICENSE +0 -13
  40. data/Rakefile +0 -15
  41. data/embulk-input-jira.gemspec +0 -27
  42. data/gemfiles/embulk-0.8.0-latest +0 -4
  43. data/gemfiles/embulk-0.8.7 +0 -4
  44. data/gemfiles/embulk-0.8.8 +0 -4
  45. data/gemfiles/embulk-latest +0 -4
  46. data/gemfiles/template.erb +0 -4
  47. data/lib/embulk/input/jira_api.rb +0 -9
  48. data/lib/embulk/input/jira_api/client.rb +0 -144
  49. data/lib/embulk/input/jira_api/issue.rb +0 -133
  50. data/lib/embulk/input/jira_input_plugin_utils.rb +0 -58
  51. data/spec/embulk/input/jira-input-plugin-utils_spec.rb +0 -89
  52. data/spec/embulk/input/jira_api/client_spec.rb +0 -224
  53. data/spec/embulk/input/jira_api/issue_spec.rb +0 -394
  54. data/spec/embulk/input/jira_spec.rb +0 -322
  55. data/spec/embulk_spec.rb +0 -32
  56. data/spec/spec_helper.rb +0 -26
  57. data/spec/support/stdout_and_err_capture.rb +0 -45
@@ -0,0 +1,18 @@
1
+ package org.embulk.input.jira.util;
2
+
3
+ public class JiraException extends Exception
4
+ {
5
+ private static final long serialVersionUID = -256731723520584046L;
6
+ private final int statusCode;
7
+
8
+ public JiraException(int statusCode, String message)
9
+ {
10
+ super(message + ":" + Integer.toString(statusCode));
11
+ this.statusCode = statusCode;
12
+ }
13
+
14
+ public int getStatusCode()
15
+ {
16
+ return statusCode;
17
+ }
18
+ }
@@ -0,0 +1,264 @@
1
+ package org.embulk.input.jira.util;
2
+
3
+ import com.google.gson.JsonElement;
4
+
5
+ import org.embulk.config.ConfigException;
6
+ import org.embulk.input.jira.Issue;
7
+ import org.embulk.input.jira.JiraInputPlugin.PluginTask;
8
+ import org.embulk.spi.Column;
9
+ import org.embulk.spi.ColumnConfig;
10
+ import org.embulk.spi.ColumnVisitor;
11
+ import org.embulk.spi.PageBuilder;
12
+ import org.embulk.spi.Schema;
13
+ import org.embulk.spi.json.JsonParser;
14
+ import org.embulk.spi.time.Timestamp;
15
+ import org.embulk.spi.time.TimestampParser;
16
+
17
+ import javax.ws.rs.core.UriBuilder;
18
+
19
+ import java.io.IOException;
20
+ import java.net.HttpURLConnection;
21
+ import java.net.URL;
22
+ import java.util.List;
23
+ import java.util.stream.Collectors;
24
+ import java.util.stream.StreamSupport;
25
+
26
+ import static com.google.common.base.Strings.isNullOrEmpty;
27
+ import static org.embulk.input.jira.Constant.CREDENTIAL_URI_PATH;
28
+ import static org.embulk.input.jira.Constant.DEFAULT_TIMESTAMP_PATTERN;
29
+ import static org.embulk.input.jira.Constant.SEARCH_URI_PATH;
30
+
31
+ public final class JiraUtil
32
+ {
33
+ private JiraUtil() {}
34
+
35
+ public static int calculateTotalPage(int totalCount, int resultPerPage)
36
+ {
37
+ return (int) Math.ceil((double) totalCount / resultPerPage);
38
+ }
39
+
40
+ public static String buildPermissionUrl(String url)
41
+ {
42
+ return UriBuilder.fromUri(url).path(CREDENTIAL_URI_PATH).build().toString();
43
+ }
44
+
45
+ public static String buildSearchUrl(String url)
46
+ {
47
+ return UriBuilder.fromUri(url).path(SEARCH_URI_PATH).build().toString();
48
+ }
49
+
50
+ public static void validateTaskConfig(final PluginTask task)
51
+ {
52
+ String username = task.getUsername();
53
+ if (isNullOrEmpty(username)) {
54
+ throw new ConfigException("Username or email could not be empty");
55
+ }
56
+ String password = task.getPassword();
57
+ if (isNullOrEmpty(password)) {
58
+ throw new ConfigException("Password could not be empty");
59
+ }
60
+ String uri = task.getUri();
61
+ if (isNullOrEmpty(uri)) {
62
+ throw new ConfigException("JIRA API endpoint could not be empty");
63
+ }
64
+ HttpURLConnection connection = null;
65
+ try {
66
+ URL u = new URL(uri);
67
+ connection = (HttpURLConnection) u.openConnection();
68
+ connection.setRequestMethod("GET");
69
+ connection.getResponseCode();
70
+ }
71
+ catch (IOException e) {
72
+ throw new ConfigException("JIRA API endpoint is incorrect or not available");
73
+ }
74
+ finally {
75
+ if (connection != null) {
76
+ connection.disconnect();
77
+ }
78
+ }
79
+ String jql = task.getJQL();
80
+ if (isNullOrEmpty(jql)) {
81
+ throw new ConfigException("JQL could not be empty");
82
+ }
83
+ int retryInitialWaitSec = task.getInitialRetryIntervalMillis();
84
+ if (retryInitialWaitSec < 1) {
85
+ throw new ConfigException("Initial retry delay should be equal or greater than 1");
86
+ }
87
+ int retryLimit = task.getRetryLimit();
88
+ if (retryLimit < 0 || retryLimit > 10) {
89
+ throw new ConfigException("Retry limit should between 0 and 10");
90
+ }
91
+ }
92
+
93
+ /*
94
+ * For getting the timestamp value of the node
95
+ * Sometime if the parser could not parse the value then return null
96
+ * */
97
+ private static Timestamp getTimestampValue(PluginTask task, Column column, String value)
98
+ {
99
+ List<ColumnConfig> columnConfigs = task.getColumns().getColumns();
100
+ String pattern = DEFAULT_TIMESTAMP_PATTERN;
101
+ for (ColumnConfig config : columnConfigs) {
102
+ if (config.getName().equals(column.getName())
103
+ && config.getConfigSource() != null
104
+ && config.getConfigSource().getObjectNode() != null
105
+ && config.getConfigSource().getObjectNode().get("format") != null
106
+ && config.getConfigSource().getObjectNode().get("format").isTextual()) {
107
+ pattern = config.getConfigSource().getObjectNode().get("format").asText();
108
+ break;
109
+ }
110
+ }
111
+ TimestampParser parser = TimestampParser.of(pattern, "UTC");
112
+ Timestamp result = null;
113
+ try {
114
+ result = parser.parse(value);
115
+ }
116
+ catch (Exception e) {
117
+ }
118
+ return result;
119
+ }
120
+
121
+ /*
122
+ * For getting the Long value of the node
123
+ * Sometime if error occurs (i.e a JSON value but user modified it as long) then return null
124
+ * */
125
+ private static Long getLongValue(JsonElement value)
126
+ {
127
+ Long result = null;
128
+ try {
129
+ result = value.getAsLong();
130
+ }
131
+ catch (Exception e) {
132
+ }
133
+ return result;
134
+ }
135
+
136
+ /*
137
+ * For getting the Double value of the node
138
+ * Sometime if error occurs (i.e a JSON value but user modified it as double) then return null
139
+ * */
140
+ private static Double getDoubleValue(JsonElement value)
141
+ {
142
+ Double result = null;
143
+ try {
144
+ result = value.getAsDouble();
145
+ }
146
+ catch (Exception e) {
147
+ }
148
+ return result;
149
+ }
150
+
151
+ /*
152
+ * For getting the Boolean value of the node
153
+ * Sometime if error occurs (i.e a JSON value but user modified it as boolean) then return null
154
+ * */
155
+ private static Boolean getBooleanValue(JsonElement value)
156
+ {
157
+ Boolean result = null;
158
+ try {
159
+ result = value.getAsBoolean();
160
+ }
161
+ catch (Exception e) {
162
+ }
163
+ return result;
164
+ }
165
+
166
+ public static void addRecord(Issue issue, Schema schema, PluginTask task, PageBuilder pageBuilder)
167
+ {
168
+ schema.visitColumns(new ColumnVisitor() {
169
+ @Override
170
+ public void jsonColumn(Column column)
171
+ {
172
+ JsonElement data = issue.getValue(column.getName());
173
+ if (data.isJsonNull() || data.isJsonPrimitive()) {
174
+ pageBuilder.setNull(column);
175
+ }
176
+ else {
177
+ pageBuilder.setJson(column, new JsonParser().parse(data.toString()));
178
+ }
179
+ }
180
+
181
+ @Override
182
+ public void stringColumn(Column column)
183
+ {
184
+ JsonElement data = issue.getValue(column.getName());
185
+ if (data.isJsonNull()) {
186
+ pageBuilder.setNull(column);
187
+ }
188
+ else if (data.isJsonPrimitive()) {
189
+ pageBuilder.setString(column, data.getAsString());
190
+ }
191
+ else if (data.isJsonArray()) {
192
+ pageBuilder.setString(column, StreamSupport.stream(data.getAsJsonArray().spliterator(), false)
193
+ .map(obj -> {
194
+ if (obj.isJsonPrimitive()) {
195
+ return obj.getAsString();
196
+ }
197
+ else {
198
+ return obj.toString();
199
+ }
200
+ })
201
+ .collect(Collectors.joining(",")));
202
+ }
203
+ else {
204
+ pageBuilder.setString(column, data.toString());
205
+ }
206
+ }
207
+
208
+ @Override
209
+ public void timestampColumn(Column column)
210
+ {
211
+ JsonElement data = issue.getValue(column.getName());
212
+ if (data.isJsonNull() || data.isJsonObject() || data.isJsonArray()) {
213
+ pageBuilder.setNull(column);
214
+ }
215
+ else {
216
+ Timestamp value = getTimestampValue(task, column, data.getAsString());
217
+ if (value == null) {
218
+ pageBuilder.setNull(column);
219
+ }
220
+ else {
221
+ pageBuilder.setTimestamp(column, value);
222
+ }
223
+ }
224
+ }
225
+
226
+ @Override
227
+ public void booleanColumn(Column column)
228
+ {
229
+ Boolean value = getBooleanValue(issue.getValue(column.getName()));
230
+ if (value == null) {
231
+ pageBuilder.setNull(column);
232
+ }
233
+ else {
234
+ pageBuilder.setBoolean(column, value);
235
+ }
236
+ }
237
+
238
+ @Override
239
+ public void longColumn(Column column)
240
+ {
241
+ Long value = getLongValue(issue.getValue(column.getName()));
242
+ if (value == null) {
243
+ pageBuilder.setNull(column);
244
+ }
245
+ else {
246
+ pageBuilder.setLong(column, value);
247
+ }
248
+ }
249
+
250
+ @Override
251
+ public void doubleColumn(Column column)
252
+ {
253
+ Double value = getDoubleValue(issue.getValue(column.getName()));
254
+ if (value == null) {
255
+ pageBuilder.setNull(column);
256
+ }
257
+ else {
258
+ pageBuilder.setDouble(column, value);
259
+ }
260
+ }
261
+ });
262
+ pageBuilder.addRecord();
263
+ }
264
+ }
@@ -0,0 +1,278 @@
1
+ package org.embulk.input.jira;
2
+
3
+ import com.google.gson.JsonElement;
4
+ import com.google.gson.JsonObject;
5
+
6
+ import org.junit.BeforeClass;
7
+ import org.junit.Test;
8
+
9
+ import java.io.IOException;
10
+
11
+ import static org.junit.Assert.assertEquals;
12
+
13
+ public class IssueTest
14
+ {
15
+ private static JsonObject flattenData;
16
+ private static JsonObject flattenExpected;
17
+ private static JsonObject issueGet;
18
+ private static JsonObject issueGetExpected;
19
+ @BeforeClass
20
+ public static void setUp() throws IOException
21
+ {
22
+ flattenData = TestHelpers.getJsonFromFile("issue_flatten.json");
23
+ flattenExpected = TestHelpers.getJsonFromFile("issue_flatten_expected.json");
24
+ issueGet = TestHelpers.getJsonFromFile("issue_get.json");
25
+ issueGetExpected = TestHelpers.getJsonFromFile("issue_get_expected.json");
26
+ }
27
+
28
+ @Test
29
+ public void test_toRecord_simple()
30
+ {
31
+ String testName = "simple";
32
+ Issue issue = new Issue(flattenData.get(testName).getAsJsonObject());
33
+ JsonObject expected = flattenExpected.get(testName).getAsJsonObject();
34
+ assertEquals(expected, issue.getFlatten());
35
+ }
36
+
37
+ @Test
38
+ public void test_toRecord_twoLevels()
39
+ {
40
+ String testName = "twoLevels";
41
+ Issue issue = new Issue(flattenData.get(testName).getAsJsonObject());
42
+ JsonObject expected = flattenExpected.get(testName).getAsJsonObject();
43
+ assertEquals(expected, issue.getFlatten());
44
+ }
45
+
46
+ @Test
47
+ public void test_toRecord_threeLevels()
48
+ {
49
+ String testName = "threeLevels";
50
+ Issue issue = new Issue(flattenData.get(testName).getAsJsonObject());
51
+ JsonObject expected = flattenExpected.get(testName).getAsJsonObject();
52
+ assertEquals(expected, issue.getFlatten());
53
+ }
54
+
55
+ @Test
56
+ public void test_toRecord_threeLevelsWithoutKeys()
57
+ {
58
+ String testName = "threeLevelsWithoutKeys";
59
+ Issue issue = new Issue(flattenData.get(testName).getAsJsonObject());
60
+ JsonObject expected = flattenExpected.get(testName).getAsJsonObject();
61
+ assertEquals(expected, issue.getFlatten());
62
+ }
63
+
64
+ @Test
65
+ public void test_toRecord_threeLevelsWithKeys()
66
+ {
67
+ String testName = "threeLevelsWithKeys";
68
+ Issue issue = new Issue(flattenData.get(testName).getAsJsonObject());
69
+ JsonObject expected = flattenExpected.get(testName).getAsJsonObject();
70
+ assertEquals(expected, issue.getFlatten());
71
+ }
72
+
73
+ @Test
74
+ public void test_toRecord_threeLevelsWithNullKeys()
75
+ {
76
+ String testName = "threeLevelsWithNullKeys";
77
+ Issue issue = new Issue(flattenData.get(testName).getAsJsonObject());
78
+ JsonObject expected = flattenExpected.get(testName).getAsJsonObject();
79
+ assertEquals(expected, issue.getFlatten());
80
+ }
81
+
82
+ @Test
83
+ public void test_toRecord_arrayWithAllJsonObjectWithSameKeysAndEmptyObject()
84
+ {
85
+ String testName = "arrayWithAllJsonObjectWithSameKeysAndEmptyObject";
86
+ Issue issue = new Issue(flattenData.get(testName).getAsJsonObject());
87
+ JsonObject expected = flattenExpected.get(testName).getAsJsonObject();
88
+ assertEquals(expected, issue.getFlatten());
89
+ }
90
+
91
+ @Test
92
+ public void test_toRecord_arrayWithAllJsonObjectWithSameKeysAndNotEmptyObject()
93
+ {
94
+ String testName = "arrayWithAllJsonObjectWithSameKeysAndNotEmptyObject";
95
+ Issue issue = new Issue(flattenData.get(testName).getAsJsonObject());
96
+ JsonObject expected = flattenExpected.get(testName).getAsJsonObject();
97
+ assertEquals(expected, issue.getFlatten());
98
+ }
99
+
100
+ @Test
101
+ public void test_toRecord_arrayWithAllJsonObjectWithoutSameKeys()
102
+ {
103
+ String testName = "arrayWithAllJsonObjectWithoutSameKeys";
104
+ Issue issue = new Issue(flattenData.get(testName).getAsJsonObject());
105
+ JsonObject expected = flattenExpected.get(testName).getAsJsonObject();
106
+ assertEquals(expected, issue.getFlatten());
107
+ }
108
+
109
+ @Test
110
+ public void test_getValue_primitive()
111
+ {
112
+ String testName = "primitive";
113
+ Issue issue = new Issue(issueGet);
114
+ String path = issueGetExpected.get(testName).getAsString();
115
+ JsonElement expected = issueGetExpected.get(testName + "Result");
116
+ assertEquals(expected, issue.getValue(path));
117
+ }
118
+
119
+ @Test
120
+ public void test_getValue_string()
121
+ {
122
+ String testName = "string";
123
+ Issue issue = new Issue(issueGet);
124
+ String path = issueGetExpected.get(testName).getAsString();
125
+ JsonElement expected = issueGetExpected.get(testName + "Result");
126
+ assertEquals(expected, issue.getValue(path));
127
+ }
128
+
129
+ @Test
130
+ public void test_getValue_emptyObject()
131
+ {
132
+ String testName = "emptyObject";
133
+ Issue issue = new Issue(issueGet);
134
+ String path = issueGetExpected.get(testName).getAsString();
135
+ JsonElement expected = issueGetExpected.get(testName + "Result");
136
+ assertEquals(expected, issue.getValue(path));
137
+ }
138
+
139
+ @Test
140
+ public void test_getValue_object()
141
+ {
142
+ String testName = "object";
143
+ Issue issue = new Issue(issueGet);
144
+ String path = issueGetExpected.get(testName).getAsString();
145
+ JsonElement expected = issueGetExpected.get(testName + "Result");
146
+ assertEquals(expected, issue.getValue(path));
147
+ }
148
+
149
+ @Test
150
+ public void test_getValue_null()
151
+ {
152
+ String testName = "null";
153
+ Issue issue = new Issue(issueGet);
154
+ String path = issueGetExpected.get(testName).getAsString();
155
+ JsonElement expected = issueGetExpected.get(testName + "Result");
156
+ assertEquals(expected, issue.getValue(path));
157
+ }
158
+
159
+ @Test
160
+ public void test_getValue_notExisted()
161
+ {
162
+ String testName = "notExisted";
163
+ Issue issue = new Issue(issueGet);
164
+ String path = issueGetExpected.get(testName).getAsString();
165
+ JsonElement expected = issueGetExpected.get(testName + "Result");
166
+ assertEquals(expected, issue.getValue(path));
167
+ }
168
+
169
+ @Test
170
+ public void test_getValue_notExisted2Levels()
171
+ {
172
+ String testName = "notExisted2Levels";
173
+ Issue issue = new Issue(issueGet);
174
+ String path = issueGetExpected.get(testName).getAsString();
175
+ JsonElement expected = issueGetExpected.get(testName + "Result");
176
+ assertEquals(expected, issue.getValue(path));
177
+ }
178
+
179
+ @Test
180
+ public void test_getValue_emptyArray()
181
+ {
182
+ String testName = "emptyArray";
183
+ Issue issue = new Issue(issueGet);
184
+ String path = issueGetExpected.get(testName).getAsString();
185
+ JsonElement expected = issueGetExpected.get(testName + "Result");
186
+ assertEquals(expected, issue.getValue(path));
187
+ }
188
+
189
+ @Test
190
+ public void test_getValue_primitiveArray()
191
+ {
192
+ String testName = "primitiveArray";
193
+ Issue issue = new Issue(issueGet);
194
+ String path = issueGetExpected.get(testName).getAsString();
195
+ JsonElement expected = issueGetExpected.get(testName + "Result");
196
+ assertEquals(expected, issue.getValue(path));
197
+ }
198
+
199
+ @Test
200
+ public void test_getValue_nestedPrimitive()
201
+ {
202
+ String testName = "nestedPrimitive";
203
+ Issue issue = new Issue(issueGet);
204
+ String path = issueGetExpected.get(testName).getAsString();
205
+ JsonElement expected = issueGetExpected.get(testName + "Result");
206
+ assertEquals(expected, issue.getValue(path));
207
+ }
208
+
209
+ @Test
210
+ public void test_getValue_nestedObject()
211
+ {
212
+ String testName = "nestedObject";
213
+ Issue issue = new Issue(issueGet);
214
+ String path = issueGetExpected.get(testName).getAsString();
215
+ JsonElement expected = issueGetExpected.get(testName + "Result");
216
+ assertEquals(expected, issue.getValue(path));
217
+ }
218
+
219
+ @Test
220
+ public void test_getValue_nestedArray()
221
+ {
222
+ String testName = "nestedArray";
223
+ Issue issue = new Issue(issueGet);
224
+ String path = issueGetExpected.get(testName).getAsString();
225
+ JsonElement expected = issueGetExpected.get(testName + "Result");
226
+ assertEquals(expected, issue.getValue(path));
227
+ }
228
+
229
+ @Test
230
+ public void test_getValue_3levelsArraysNull()
231
+ {
232
+ String testName = "3levelsArraysNull";
233
+ Issue issue = new Issue(issueGet);
234
+ String path = issueGetExpected.get(testName).getAsString();
235
+ JsonElement expected = issueGetExpected.get(testName + "Result");
236
+ assertEquals(expected, issue.getValue(path));
237
+ }
238
+
239
+ @Test
240
+ public void test_getValue_allJsonObjectArrayPrimitive()
241
+ {
242
+ String testName = "allJsonObjectArrayPrimitive";
243
+ Issue issue = new Issue(issueGet);
244
+ String path = issueGetExpected.get(testName).getAsString();
245
+ JsonElement expected = issueGetExpected.get(testName + "Result");
246
+ assertEquals(expected, issue.getValue(path));
247
+ }
248
+
249
+ @Test
250
+ public void test_getValue_allJsonObjectArrayString()
251
+ {
252
+ String testName = "allJsonObjectArrayString";
253
+ Issue issue = new Issue(issueGet);
254
+ String path = issueGetExpected.get(testName).getAsString();
255
+ JsonElement expected = issueGetExpected.get(testName + "Result");
256
+ assertEquals(expected, issue.getValue(path));
257
+ }
258
+
259
+ @Test
260
+ public void test_getValue_allJsonObjectArrayOnly1()
261
+ {
262
+ String testName = "allJsonObjectArrayOnly1";
263
+ Issue issue = new Issue(issueGet);
264
+ String path = issueGetExpected.get(testName).getAsString();
265
+ JsonElement expected = issueGetExpected.get(testName + "Result");
266
+ assertEquals(expected, issue.getValue(path));
267
+ }
268
+
269
+ @Test
270
+ public void test_getValue_allJsonObjectArrayOnly2()
271
+ {
272
+ String testName = "allJsonObjectArrayOnly2";
273
+ Issue issue = new Issue(issueGet);
274
+ String path = issueGetExpected.get(testName).getAsString();
275
+ JsonElement expected = issueGetExpected.get(testName + "Result");
276
+ assertEquals(expected, issue.getValue(path));
277
+ }
278
+ }