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]