You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@avro.apache.org by rs...@apache.org on 2023/03/13 17:56:34 UTC
[avro] branch master updated: [AVRO-2943] Add new GenericData String/Utf8 ARRAY comparison test (#2137)
This is an automated email from the ASF dual-hosted git repository.
rskraba pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/avro.git
The following commit(s) were added to refs/heads/master by this push:
new 5c0b17dec [AVRO-2943] Add new GenericData String/Utf8 ARRAY comparison test (#2137)
5c0b17dec is described below
commit 5c0b17dec3dc0e9693db6e87a41b1d37ded7cfea
Author: frankgrimes97 <fr...@yahoo.com>
AuthorDate: Mon Mar 13 13:56:27 2023 -0400
[AVRO-2943] Add new GenericData String/Utf8 ARRAY comparison test (#2137)
GenericRecord comparison already handles String vs Utf8 for ARRAY elements.
This just adds a unit test to explicitly verify the current correct behaviour.
Also renamed GenericData String/Utf8 MAP unit tests which were added
on https://github.com/apache/avro/pull/974 to improve
clarity on what those tests are actually verifying.
https://issues.apache.org/jira/browse/AVRO-2943
---
.../org/apache/avro/generic/TestGenericData.java | 28 +++++++++++++++++-----
1 file changed, 22 insertions(+), 6 deletions(-)
diff --git a/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java b/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java
index bca151c15..9be294f3c 100644
--- a/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java
+++ b/lang/java/avro/src/test/java/org/apache/avro/generic/TestGenericData.java
@@ -157,9 +157,8 @@ public class TestGenericData {
}
@Test
- public void testMapKeyEquals() {
- Schema mapSchema = new Schema.Parser().parse("{\"type\": \"map\", \"values\": \"string\"}");
- Field myMapField = new Field("my_map", Schema.createMap(mapSchema), null, null);
+ public void testMapKeyEqualsStringAndUtf8Compatibility() {
+ Field myMapField = new Field("my_map", Schema.createMap(Schema.create(Schema.Type.STRING)), null, null);
Schema schema = Schema.createRecord("my_record", "doc", "mytest", false);
schema.setFields(Arrays.asList(myMapField));
GenericRecord r0 = new GenericData.Record(schema);
@@ -178,9 +177,8 @@ public class TestGenericData {
}
@Test
- public void testMapValuesEquals() {
- Schema mapSchema = new Schema.Parser().parse("{\"type\": \"map\", \"values\": \"string\"}");
- Field myMapField = new Field("my_map", Schema.createMap(mapSchema), null, null);
+ public void testMapValuesEqualsStringAndUtf8Compatibility() {
+ Field myMapField = new Field("my_map", Schema.createMap(Schema.create(Schema.Type.STRING)), null, null);
Schema schema = Schema.createRecord("my_record", "doc", "mytest", false);
schema.setFields(Arrays.asList(myMapField));
GenericRecord r0 = new GenericData.Record(schema);
@@ -198,6 +196,24 @@ public class TestGenericData {
assertEquals(r1, r0);
}
+ @Test
+ public void testArrayValuesEqualsStringAndUtf8Compatibility() {
+ Field myArrayField = new Field("my_array", Schema.createArray(Schema.create(Schema.Type.STRING)), null, null);
+ Schema schema = Schema.createRecord("my_record", "doc", "mytest", false);
+ schema.setFields(Arrays.asList(myArrayField));
+ GenericRecord r0 = new GenericData.Record(schema);
+ GenericRecord r1 = new GenericData.Record(schema);
+
+ List<CharSequence> array1 = Arrays.asList("valueOne");
+ r0.put("my_array", array1);
+
+ List<CharSequence> array2 = Arrays.asList(new Utf8("valueOne"));
+ r1.put("my_array", array2);
+
+ assertEquals(r0, r1);
+ assertEquals(r1, r0);
+ }
+
private Schema recordSchema() {
List<Field> fields = new ArrayList<>();
fields.add(new Field("anArray", Schema.createArray(Schema.create(Type.STRING)), null, null));