Example #1
0
        private T RoundTrip <T>(T value, Action <ObjectWriter, T> writeAction, Func <ObjectReader, T> readAction, bool recursive)
        {
            var stream = new MemoryStream();
            var binder = new RecordingObjectBinder();
            var writer = new StreamObjectWriter(stream, binder: binder, recursive: recursive);

            writeAction(writer, value);
            writer.Dispose();

            stream.Position = 0;
            Assert.Equal(recursive, StreamObjectReader.IsRecursive(stream));

            stream.Position = 0;
            using (var reader = new StreamObjectReader(stream, binder: binder))
            {
                return((T)readAction(reader));
            }
        }
Example #2
0
        private void RoundTrip(Action <ObjectWriter> writeAction, Action <ObjectReader> readAction, bool recursive)
        {
            var stream = new MemoryStream();
            var binder = new RecordingObjectBinder();
            var writer = new StreamObjectWriter(stream, binder: binder, recursive: recursive);

            writeAction(writer);
            writer.Dispose();

            stream.Position = 0;
            Assert.Equal(recursive, StreamObjectReader.IsRecursive(stream));

            stream.Position = 0;
            using (var reader = new StreamObjectReader(stream, binder: binder))
            {
                readAction(reader);
            }
        }