Пример #1
0
        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));
                        }
                    }
        }
Пример #2
0
        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));
        }