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));