コード例 #1
0
        public void binary()
        {
            Assert.Throws <ArgumentNullException>(() => StreamExtensions.Binary(null));
            Assert.Throws <ArgumentNullException>(() => StreamExtensions.Binary(null, Stream.Null));
            Assert.Throws <ArgumentNullException>(() => new object().Binary(null));

            var subject    = new object();
            var serialized = new object().Binary();

            Assert.True(serialized.Length > 0);
            Assert.False(new object().Binary().Binary().SequenceEqual(new object().Binary()));
            Assert.False(new object().Binary().SequenceEqual(string.Empty.Binary()));
            Assert.True(subject.Binary().SequenceEqual(subject.Binary()));
            Assert.True(Guid.Empty.ToString().Binary().SequenceEqual(Guid.Empty.ToString().Binary()));

            using (var stream = new MemoryStream())
            {
                Assert.True(ReferenceEquals(subject.Binary(stream), subject));
                Assert.True(stream.ToArray().SequenceEqual(serialized));
                Assert.True(stream.CanWrite);
            }
            using (var stream = new MemoryStream())
            {
                Assert.True(ReferenceEquals(subject.Binary(stream, true), subject));
                Assert.True(stream.ToArray().SequenceEqual(serialized));
                Assert.Throws <ObjectDisposedException>(() => stream.ReadByte());
            };
        }