public void RecordTestWithOverlap() { var expectedValue = new TestRecordWithDefault() { Name = "Test" }; var writeValue = new TestRecordWithExtraField() { Name = "Test", Desc = "Description" }; var writer = new DatumWriter <TestRecordWithExtraField>(writeValue.Schema); var reader = new DatumReader <TestRecordWithDefault>(expectedValue.Schema, writeValue.Schema); using (var stream = new MemoryStream()) using (var encoder = new BinaryEncoder(stream)) using (var decoder = new BinaryDecoder(stream)) { writer.Write(encoder, writeValue); stream.Seek(0, SeekOrigin.Begin); var actualValue = reader.Read(decoder); for (int i = 0; i < expectedValue.FieldCount; i++) { Assert.AreEqual(expectedValue.Get(i), actualValue.Get(i)); } } }
public void RecordTestWithoutOverlap() { var expectedValue = new TestRecordWithoutDefault() { ID = 123, Name = "Test" }; var writeValue = new TestRecordWithExtraField() { Name = "Test", Desc = "Description" }; var writer = new DatumWriter <TestRecordWithExtraField>(writeValue.Schema); Assert.Throws <AvroException>(() => new DatumReader <TestRecordWithDefault>(expectedValue.Schema, writeValue.Schema)); }