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()); }; }