Esempio n. 1
0
        public void TestReadAvroAsCollection()
        {
            const string Schema = @"{""type"":""array"", ""items"":""long""}";

            var stream = new MemoryStream();

            using (var writer = AvroContainer.CreateGenericWriter(Schema, stream, /*leave open*/ true, Codec.Null))
                using (var seqWriter = new SequentialWriter <object>(writer, 24))
                {
                    // Serialize the data to stream using the sequential writer
                    seqWriter.Write(new[] { 6L, 8 });
                    seqWriter.Flush();
                }

            stream.Flush();
            stream.Seek(0, SeekOrigin.Begin);
            var reader = new ODataAvroCollectionReader(this.CreateODataInputContext(stream));

            Assert.AreEqual(ODataCollectionReaderState.Start, reader.State);
            Assert.IsTrue(reader.Read());
            Assert.AreEqual(ODataCollectionReaderState.CollectionStart, reader.State);
            Assert.IsTrue(reader.Read());
            Assert.AreEqual(ODataCollectionReaderState.Value, reader.State);
            Assert.AreEqual(6L, (long)reader.Item);
            Assert.IsTrue(reader.Read());
            Assert.AreEqual(ODataCollectionReaderState.Value, reader.State);
            Assert.IsTrue(reader.Read());
            Assert.AreEqual(ODataCollectionReaderState.CollectionEnd, reader.State);
            Assert.IsFalse(reader.Read());
            Assert.AreEqual(ODataCollectionReaderState.Completed, reader.State);
        }
        public void TestReadAvroAsCollection()
        {
            const string Schema = @"{""type"":""array"", ""items"":""long""}";

            var stream = new MemoryStream();
            using (var writer = AvroContainer.CreateGenericWriter(Schema, stream, /*leave open*/true, Codec.Null))
            using (var seqWriter = new SequentialWriter<object>(writer, 24))
            {
                // Serialize the data to stream using the sequential writer
                seqWriter.Write(new[] { 6L, 8 });
                seqWriter.Flush();
            }

            stream.Flush();
            stream.Seek(0, SeekOrigin.Begin);
            var reader = new ODataAvroCollectionReader(this.CreateODataInputContext(stream));
            Assert.AreEqual(ODataCollectionReaderState.Start, reader.State);
            Assert.IsTrue(reader.Read());
            Assert.AreEqual(ODataCollectionReaderState.CollectionStart, reader.State);
            Assert.IsTrue(reader.Read());
            Assert.AreEqual(ODataCollectionReaderState.Value, reader.State);
            Assert.AreEqual(6L, (long)reader.Item);
            Assert.IsTrue(reader.Read());
            Assert.AreEqual(ODataCollectionReaderState.Value, reader.State);
            Assert.IsTrue(reader.Read());
            Assert.AreEqual(ODataCollectionReaderState.CollectionEnd, reader.State);
            Assert.IsFalse(reader.Read());
            Assert.AreEqual(ODataCollectionReaderState.Completed, reader.State);
        }