tpalfy commented on code in PR #8361:
URL: https://github.com/apache/nifi/pull/8361#discussion_r1483024295


##########
nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/avro/TestAvroReaderWithExplicitSchema.java:
##########
@@ -105,6 +105,36 @@ public void 
testAvroExplicitReaderWithEmbeddedSchemaFileDifferentFromExplicitSch
         assertThrows(IOException.class, () -> new 
AvroReaderWithExplicitSchema(fileInputStream, recordSchema, dataSchema));
     }
 
+    @Test
+    public void testAvroExplicitReaderWithSchemalessFileAndExplicitSchema() 
throws Exception {
+        File avroFileWithoutSchema = new 
File("src/test/resources/avro/schemaless_simple_record.avro");
+        FileInputStream fileInputStream = new 
FileInputStream(avroFileWithoutSchema);
+        Schema dataSchema = new Schema.Parser().parse(new 
File("src/test/resources/avro/schemaless_simple_record.avsc"));
+        RecordSchema recordSchema = new 
SimpleRecordSchema(dataSchema.toString(), AvroTypeUtil.AVRO_SCHEMA_FORMAT, 
null);
+
+        AvroReaderWithExplicitSchema avroReader = new 
AvroReaderWithExplicitSchema(fileInputStream, recordSchema, dataSchema);
+        GenericRecord record = avroReader.nextAvroRecord();
+        assertNotNull(record);
+        assertEquals(123, record.get("field_1"));
+        assertNotNull(record.get("field_2"));
+        assertEquals("44", record.get("field_2").toString());
+        assertEquals(5, record.get("field_3"));
+
+        record = avroReader.nextAvroRecord();
+        assertNull(record);

Review Comment:
   ```suggestion
           AvroReaderWithExplicitSchema avroReader = 
createAvroReaderWithExplicitSchema(
                   "src/test/resources/avro/schemaless_simple_record.avro",
                   "src/test/resources/avro/schemaless_simple_record.avsc"
           );
   
           GenericData.Record expected = new GenericData.Record(new 
Schema.Parser().parse(new 
File("src/test/resources/avro/schemaless_simple_record.avsc")));
           expected.put("field_1", 123);
           expected.put("field_2", "44");
           expected.put("field_3", 5);
   
           GenericRecord actual1 = avroReader.nextAvroRecord();
           assertNotNull(actual1);
   
           GenericRecord actual2 = avroReader.nextAvroRecord();
           assertNull(actual2);
   ```



##########
nifi-nar-bundles/nifi-standard-services/nifi-record-serialization-services-bundle/nifi-record-serialization-services/src/test/java/org/apache/nifi/avro/TestAvroReaderWithExplicitSchema.java:
##########
@@ -105,6 +105,36 @@ public void 
testAvroExplicitReaderWithEmbeddedSchemaFileDifferentFromExplicitSch
         assertThrows(IOException.class, () -> new 
AvroReaderWithExplicitSchema(fileInputStream, recordSchema, dataSchema));
     }
 
+    @Test
+    public void testAvroExplicitReaderWithSchemalessFileAndExplicitSchema() 
throws Exception {
+        File avroFileWithoutSchema = new 
File("src/test/resources/avro/schemaless_simple_record.avro");
+        FileInputStream fileInputStream = new 
FileInputStream(avroFileWithoutSchema);
+        Schema dataSchema = new Schema.Parser().parse(new 
File("src/test/resources/avro/schemaless_simple_record.avsc"));
+        RecordSchema recordSchema = new 
SimpleRecordSchema(dataSchema.toString(), AvroTypeUtil.AVRO_SCHEMA_FORMAT, 
null);
+
+        AvroReaderWithExplicitSchema avroReader = new 
AvroReaderWithExplicitSchema(fileInputStream, recordSchema, dataSchema);
+        GenericRecord record = avroReader.nextAvroRecord();
+        assertNotNull(record);
+        assertEquals(123, record.get("field_1"));
+        assertNotNull(record.get("field_2"));
+        assertEquals("44", record.get("field_2").toString());
+        assertEquals(5, record.get("field_3"));
+
+        record = avroReader.nextAvroRecord();
+        assertNull(record);
+    }
+
+    @Test
+    public void 
testAvroExplicitReaderWithSchemalessFileAndWrongExplicitSchema() throws 
Exception {
+        File avroFileWithoutSchema = new 
File("src/test/resources/avro/schemaless_simple_record.avro");
+        FileInputStream fileInputStream = new 
FileInputStream(avroFileWithoutSchema);
+        Schema dataSchema = new Schema.Parser().parse(new 
File("src/test/resources/avro/schemaless_simple_record_extra_field.avsc"));
+        RecordSchema recordSchema = new 
SimpleRecordSchema(dataSchema.toString(), AvroTypeUtil.AVRO_SCHEMA_FORMAT, 
null);
+
+        AvroReaderWithExplicitSchema avroReader = new 
AvroReaderWithExplicitSchema(fileInputStream, recordSchema, dataSchema);

Review Comment:
   ```suggestion
           AvroReaderWithExplicitSchema avroReader = 
createAvroReaderWithExplicitSchema(
                   "src/test/resources/avro/schemaless_simple_record.avro",
                   
"src/test/resources/avro/schemaless_simple_record_extra_field.avsc"
           );
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to