public void WriteInt64_should_throw_when_subject_is_disposed()
        {
            var stream = Substitute.For<Stream>();
            var subject = new BsonStreamAdapter(stream);
            subject.Dispose();

            Action action = () => subject.WriteInt64(1);

            action.ShouldThrow<ObjectDisposedException>().And.ObjectName.Should().Be("BsonStreamAdapter");
        }
        public void WriteInt64_should_write_expected_bytes(
            [Values(-1L, 0L, 1L, long.MaxValue, long.MinValue)]
            long value)
        {
            var stream = new MemoryStream();
            var subject = new BsonStreamAdapter(stream);
            var expectedBytes = BitConverter.GetBytes(value);

            subject.WriteInt64(value);

            stream.ToArray().Should().Equal(expectedBytes);
        }
        public void WriteInt64_should_be_little_endian()
        {
            var stream = new MemoryStream();
            var subject = new BsonStreamAdapter(stream);
            var value = 0x0102030405060708;
            var expectedBytes = new byte[] { 8, 7, 6, 5, 4, 3, 2, 1 };

            subject.WriteInt64(value);

            stream.ToArray().Should().Equal(expectedBytes);
        }