Example #1
0
        public async Task UseAfterDisposeShouldThrow()
        {
            var buffer = new JsonBufferWriter();

            buffer.Write("123456789");
            Assert.Equal("123456789", buffer.ToString());

            buffer.Dispose();

            Assert.Throws <ObjectDisposedException>(() => buffer.GetSpan());
            Assert.Throws <ObjectDisposedException>(() => buffer.GetMemory());
            Assert.Throws <ObjectDisposedException>(() => buffer.ToArray());
            Assert.Throws <ObjectDisposedException>(() => buffer.CopyTo(Stream.Null));
            Assert.Throws <ObjectDisposedException>(() => buffer.Write("123"));
            await Assert.ThrowsAsync <ObjectDisposedException>(() => buffer.CopyToAsync(Stream.Null));

            // These should never throw
            Assert.Equal(String.Empty, buffer.ToString());
            Assert.Equal(0, buffer.Sequence.Length);
        }