This is an automated email from the ASF dual-hosted git repository.
suneet pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/druid.git
The following commit(s) were added to refs/heads/master by this push:
new a2538d2 Add back missing unit test coverage in AvroFlattenerMakerTest
(#11451)
a2538d2 is described below
commit a2538d264d7dad829bcc48968100043694b55475
Author: zachjsh <[email protected]>
AuthorDate: Tue Jul 20 21:27:00 2021 -0400
Add back missing unit test coverage in AvroFlattenerMakerTest (#11451)
* Add back missing unit test coverage in AvroFlattenerMakerTest
Adds back test coverage for Avro flattener that was mistakenly removed in
https://github.com/apache/druid/pull/10505. Recfactored the tests a bit too.
* resolve checkstyle warnings
---
.../data/input/avro/AvroFlattenerMakerTest.java | 202 ++++++++++++---------
1 file changed, 115 insertions(+), 87 deletions(-)
diff --git
a/extensions-core/avro-extensions/src/test/java/org/apache/druid/data/input/avro/AvroFlattenerMakerTest.java
b/extensions-core/avro-extensions/src/test/java/org/apache/druid/data/input/avro/AvroFlattenerMakerTest.java
index e064e7a..db2fea4 100644
---
a/extensions-core/avro-extensions/src/test/java/org/apache/druid/data/input/avro/AvroFlattenerMakerTest.java
+++
b/extensions-core/avro-extensions/src/test/java/org/apache/druid/data/input/avro/AvroFlattenerMakerTest.java
@@ -36,13 +36,125 @@ import java.util.List;
public class AvroFlattenerMakerTest
{
+ private static final AvroFlattenerMaker
FLATTENER_WITHOUT_EXTRACT_UNION_BY_TYPE =
+ new AvroFlattenerMaker(false, false, false);
+ private static final AvroFlattenerMaker FLATTENER_WITH_EXTRACT_UNION_BY_TYPE
=
+ new AvroFlattenerMaker(false, false, true);
+
+ private static final SomeAvroDatum RECORD =
AvroStreamInputRowParserTest.buildSomeAvroDatum();
+
+ @Test
+ public void getRootField_flattenerWithoutExtractUnionsByType()
+ {
+ getRootField_common(RECORD, FLATTENER_WITHOUT_EXTRACT_UNION_BY_TYPE);
+ }
+
+ @Test
+ public void getRootField_flattenerWithExtractUnionsByType()
+ {
+ getRootField_common(RECORD, FLATTENER_WITH_EXTRACT_UNION_BY_TYPE);
+ }
+
+ @Test
+ public void makeJsonPathExtractor_flattenerWithoutExtractUnionsByType()
+ {
+ makeJsonPathExtractor_common(RECORD,
FLATTENER_WITHOUT_EXTRACT_UNION_BY_TYPE);
+ }
@Test
- public void getRootField()
+ public void makeJsonPathExtractor_flattenerWithExtractUnionsByType()
+ {
+ makeJsonPathExtractor_common(RECORD, FLATTENER_WITH_EXTRACT_UNION_BY_TYPE);
+ Assert.assertEquals(
+ RECORD.getSomeMultiMemberUnion(),
+
FLATTENER_WITH_EXTRACT_UNION_BY_TYPE.makeJsonPathExtractor("$.someMultiMemberUnion.int").apply(RECORD)
+ );
+ }
+
+ @Test
+ public void jsonPathExtractorExtractUnionsByType()
{
- final SomeAvroDatum record =
AvroStreamInputRowParserTest.buildSomeAvroDatum();
final AvroFlattenerMaker flattener = new AvroFlattenerMaker(false, false,
true);
+ // Unmamed types are accessed by type
+
+ // int
+ Assert.assertEquals(1,
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.int").apply(
+ AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(1)));
+
+ // long
+ Assert.assertEquals(1L,
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.long").apply(
+ AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(1L)));
+
+ // float
+ Assert.assertEquals((float) 1.0,
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.float").apply(
+ AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue((float)
1.0)));
+
+ // double
+ Assert.assertEquals(1.0,
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.double").apply(
+ AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(1.0)));
+
+ // string
+ Assert.assertEquals("string",
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.string").apply(
+ AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(new
Utf8("string"))));
+
+ // bytes
+ Assert.assertArrayEquals(new byte[] {1}, (byte[])
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.bytes").apply(
+
AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(ByteBuffer.wrap(new
byte[] {1}))));
+
+ // map
+ Assert.assertEquals(2,
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.map.two").apply(
+ AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(new
HashMap<String, Integer>() {{
+ put("one", 1);
+ put("two", 2);
+ put("three", 3);
+ }
+ }
+ )));
+
+ // array
+ Assert.assertEquals(3,
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.array[2]").apply(
+
AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(Arrays.asList(1,
2, 3))));
+
+ // Named types are accessed by name
+
+ // record
+ Assert.assertEquals("subRecordString",
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.UnionSubRecord.subString").apply(
+ AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(
+ UnionSubRecord.newBuilder()
+ .setSubString("subRecordString")
+ .build())));
+
+ // fixed
+ final byte[] fixedBytes = new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
+ Assert.assertEquals(fixedBytes,
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.UnionSubFixed").apply(
+ AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(new
UnionSubFixed(fixedBytes))));
+
+ // enum
+ Assert.assertEquals(String.valueOf(UnionSubEnum.ENUM1),
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.UnionSubEnum").apply(
+
AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(UnionSubEnum.ENUM1)));
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void makeJsonQueryExtractor_flattenerWithoutExtractUnionsByType()
+ {
+ Assert.assertEquals(
+ RECORD.getTimestamp(),
+
FLATTENER_WITHOUT_EXTRACT_UNION_BY_TYPE.makeJsonQueryExtractor("$.timestamp").apply(RECORD)
+ );
+ }
+
+ @Test(expected = UnsupportedOperationException.class)
+ public void makeJsonQueryExtractor_flattenerWithExtractUnionsByType()
+ {
+ Assert.assertEquals(
+ RECORD.getTimestamp(),
+
FLATTENER_WITH_EXTRACT_UNION_BY_TYPE.makeJsonQueryExtractor("$.timestamp").apply(RECORD)
+ );
+ }
+
+ private void getRootField_common(final SomeAvroDatum record, final
AvroFlattenerMaker flattener)
+ {
Assert.assertEquals(
record.getTimestamp(),
flattener.getRootField(record, "timestamp")
@@ -124,12 +236,8 @@ public class AvroFlattenerMakerTest
);
}
- @Test
- public void makeJsonPathExtractor()
+ private void makeJsonPathExtractor_common(final SomeAvroDatum record, final
AvroFlattenerMaker flattener)
{
- final SomeAvroDatum record =
AvroStreamInputRowParserTest.buildSomeAvroDatum();
- final AvroFlattenerMaker flattener = new AvroFlattenerMaker(false, false,
true);
-
Assert.assertEquals(
record.getTimestamp(),
flattener.makeJsonPathExtractor("$.timestamp").apply(record)
@@ -171,10 +279,6 @@ public class AvroFlattenerMakerTest
flattener.makeJsonPathExtractor("$.someUnion").apply(record)
);
Assert.assertEquals(
- record.getSomeMultiMemberUnion(),
-
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.int").apply(record)
- );
- Assert.assertEquals(
record.getSomeNull(),
flattener.makeJsonPathExtractor("$.someNull").apply(record)
);
@@ -230,80 +334,4 @@ public class AvroFlattenerMakerTest
flattener.makeJsonPathExtractor("$.someRecordArray[?(@.nestedString=='string in
record')].nestedString").apply(record)
);
}
-
- @Test
- public void jsonPathExtractorExtractUnionsByType()
- {
- final AvroFlattenerMaker flattener = new AvroFlattenerMaker(false, false,
true);
-
- // Unmamed types are accessed by type
-
- // int
- Assert.assertEquals(1,
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.int").apply(
- AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(1)));
-
- // long
- Assert.assertEquals(1L,
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.long").apply(
- AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(1L)));
-
- // float
- Assert.assertEquals((float) 1.0,
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.float").apply(
- AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue((float)
1.0)));
-
- // double
- Assert.assertEquals(1.0,
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.double").apply(
- AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(1.0)));
-
- // string
- Assert.assertEquals("string",
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.string").apply(
- AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(new
Utf8("string"))));
-
- // bytes
- Assert.assertArrayEquals(new byte[] {1}, (byte[])
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.bytes").apply(
-
AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(ByteBuffer.wrap(new
byte[] {1}))));
-
- // map
- Assert.assertEquals(2,
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.map.two").apply(
- AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(new
HashMap<String, Integer>() {{
- put("one", 1);
- put("two", 2);
- put("three", 3);
- }
- }
- )));
-
- // array
- Assert.assertEquals(3,
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.array[2]").apply(
-
AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(Arrays.asList(1,
2, 3))));
-
- // Named types are accessed by name
-
- // record
- Assert.assertEquals("subRecordString",
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.UnionSubRecord.subString").apply(
- AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(
- UnionSubRecord.newBuilder()
- .setSubString("subRecordString")
- .build())));
-
- // fixed
- final byte[] fixedBytes = new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
- Assert.assertEquals(fixedBytes,
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.UnionSubFixed").apply(
- AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(new
UnionSubFixed(fixedBytes))));
-
- // enum
- Assert.assertEquals(String.valueOf(UnionSubEnum.ENUM1),
flattener.makeJsonPathExtractor("$.someMultiMemberUnion.UnionSubEnum").apply(
-
AvroStreamInputRowParserTest.buildSomeAvroDatumWithUnionValue(UnionSubEnum.ENUM1)));
- }
-
- @Test(expected = UnsupportedOperationException.class)
- public void makeJsonQueryExtractor()
- {
- final SomeAvroDatum record =
AvroStreamInputRowParserTest.buildSomeAvroDatum();
- final AvroFlattenerMaker flattener = new AvroFlattenerMaker(false, false,
false);
-
- Assert.assertEquals(
- record.getTimestamp(),
- flattener.makeJsonQueryExtractor("$.timestamp").apply(record)
- );
- }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]