This is an automated email from the ASF dual-hosted git repository.
aloyszhang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/inlong.git
The following commit(s) were added to refs/heads/master by this push:
new ffd5f1b43b [INLONG-10872][SDK] Add a More Complex Json Test Case
(#10885)
ffd5f1b43b is described below
commit ffd5f1b43bc68ffa61b85e5f36166963fa47c070
Author: Xincheng Huang <[email protected]>
AuthorDate: Wed Aug 28 14:12:21 2024 +0800
[INLONG-10872][SDK] Add a More Complex Json Test Case (#10885)
---
.../transform/process/TestTransformProcessor.java | 74 ++++++++++++++++++----
1 file changed, 61 insertions(+), 13 deletions(-)
diff --git
a/inlong-sdk/transform-sdk/src/test/java/org/apache/inlong/sdk/transform/process/TestTransformProcessor.java
b/inlong-sdk/transform-sdk/src/test/java/org/apache/inlong/sdk/transform/process/TestTransformProcessor.java
index 52838ab06c..20af097de6 100644
---
a/inlong-sdk/transform-sdk/src/test/java/org/apache/inlong/sdk/transform/process/TestTransformProcessor.java
+++
b/inlong-sdk/transform-sdk/src/test/java/org/apache/inlong/sdk/transform/process/TestTransformProcessor.java
@@ -148,16 +148,16 @@ public class TestTransformProcessor {
@Test
public void testJson2Csv() throws Exception {
- List<FieldInfo> fields = this.getTestFieldList();
- JsonSourceInfo jsonSource = new JsonSourceInfo("UTF-8", "msgs");
- CsvSinkInfo csvSink = new CsvSinkInfo("UTF-8", '|', '\\', fields);
- String transformSql = "select
$root.sid,$root.packageID,$child.msgTime,$child.msg from source";
- TransformConfig config = new TransformConfig(transformSql);
+ List<FieldInfo> fields1 = this.getTestFieldList();
+ JsonSourceInfo jsonSource1 = new JsonSourceInfo("UTF-8", "msgs");
+ CsvSinkInfo csvSink1 = new CsvSinkInfo("UTF-8", '|', '\\', fields1);
+ String transformSql1 = "select
$root.sid,$root.packageID,$child.msgTime,$child.msg from source";
+ TransformConfig config1 = new TransformConfig(transformSql1);
// case1
- TransformProcessor<String, String> processor = TransformProcessor
- .create(config,
SourceDecoderFactory.createJsonDecoder(jsonSource),
- SinkEncoderFactory.createCsvEncoder(csvSink));
- String srcString = "{\n"
+ TransformProcessor<String, String> processor1 = TransformProcessor
+ .create(config1,
SourceDecoderFactory.createJsonDecoder(jsonSource1),
+ SinkEncoderFactory.createCsvEncoder(csvSink1));
+ String srcString1 = "{\n"
+ " \"sid\":\"value1\",\n"
+ " \"packageID\":\"value2\",\n"
+ " \"msgs\":[\n"
@@ -165,10 +165,42 @@ public class TestTransformProcessor {
+ " {\"msg\":\"v4\",\"msgTime\":1713243918000}\n"
+ " ]\n"
+ "}";
- List<String> output = processor.transform(srcString, new HashMap<>());
- Assert.assertEquals(2, output.size());
- Assert.assertEquals(output.get(0),
"value1|value2|1713243918000|value4");
- Assert.assertEquals(output.get(1), "value1|value2|1713243918000|v4");
+ List<String> output1 = processor1.transform(srcString1, new
HashMap<>());
+ Assert.assertEquals(2, output1.size());
+ Assert.assertEquals(output1.get(0),
"value1|value2|1713243918000|value4");
+ Assert.assertEquals(output1.get(1), "value1|value2|1713243918000|v4");
+ // case2
+ List<FieldInfo> fields2 = this.getTestFieldList2();
+ JsonSourceInfo jsonSource2 = new JsonSourceInfo("UTF-8", "items");
+ CsvSinkInfo csvSink2 = new CsvSinkInfo("UTF-8", '|', '\\', fields2);
+ String transformSql2 =
+ "select
$root.id,$child.itemId,$child.subItems(0).subItemId,$child.subItems(1).msg from
source";
+ TransformConfig config2 = new TransformConfig(transformSql2);
+ TransformProcessor<String, String> processor2 = TransformProcessor
+ .create(config2,
SourceDecoderFactory.createJsonDecoder(jsonSource2),
+ SinkEncoderFactory.createCsvEncoder(csvSink2));
+ String srcString2 = "{\n"
+ + " \"id\":\"value1\",\n"
+ + " \"name\":\"value2\",\n"
+ + " \"items\":[\n"
+ + " {\"itemId\":\"item1\",\n"
+ + " \"subItems\":[\n"
+ + " {\"subItemId\":\"1001\", \"msg\":\"1001msg\"},\n"
+ + " {\"subItemId\":\"1002\", \"msg\":\"1002msg\"}\n"
+ + " ]\n"
+ + " },\n"
+ + " {\"itemId\":\"item2\",\n"
+ + " \"subItems\":[\n"
+ + " {\"subItemId\":\"2001\", \"msg\":\"2001msg\"},\n"
+ + " {\"subItemId\":\"2002\", \"msg\":\"2002msg\"}\n"
+ + " ]\n"
+ + " }\n"
+ + " ]\n"
+ + "}";
+ List<String> output2 = processor2.transform(srcString2, new
HashMap<>());
+ Assert.assertEquals(2, output2.size());
+ Assert.assertEquals(output2.get(0), "value1|item1|1001|1002msg");
+ Assert.assertEquals(output2.get(1), "value1|item2|2001|2002msg");
}
@Test
@@ -230,6 +262,22 @@ public class TestTransformProcessor {
fields.add(msg);
return fields;
}
+ private List<FieldInfo> getTestFieldList2() {
+ List<FieldInfo> fields = new ArrayList<>();
+ FieldInfo id = new FieldInfo();
+ id.setName("id");
+ fields.add(id);
+ FieldInfo itemId = new FieldInfo();
+ itemId.setName("itemId");
+ fields.add(itemId);
+ FieldInfo subItemId = new FieldInfo();
+ subItemId.setName("subItemId");
+ fields.add(subItemId);
+ FieldInfo msg = new FieldInfo();
+ msg.setName("msg");
+ fields.add(msg);
+ return fields;
+ }
private byte[] getPbTestData() {
String srcString =