コード例 #1
0
        public async Task CanReadSingleCharacterBufferAsync()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("abc"), Encoding.UTF8);

            Assert.Equal('a', await reader.ReadAsync().ConfigureAwait(false));
            Assert.Equal('b', await reader.ReadAsync().ConfigureAwait(false));
            Assert.Equal('c', await reader.ReadAsync().ConfigureAwait(false));
        }
        public void CanReadSingleCharacterBuffer()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("abc"), Encoding.UTF8);

            Assert.Equal(reader.Read(), 'a');
            Assert.Equal(reader.Read(), 'b');
            Assert.Equal(reader.Read(), 'c');
        }
        public void ReadLineReturnsNullOnNoData()
        {
            var reader = new RebufferableBinaryReader(new MemoryStream(new byte[6]), Encoding.UTF8);

            var s = reader.ReadLine();
            Assert.AreEqual(s, "\0\0\0\0\0\0");
            Assert.IsNull(reader.ReadLine());
        }
        public void ReadCorrectlyHandlesLargerBufferThenStream()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("6chars"), Encoding.UTF8);

            var buffer = new byte[10];
            int amountRead = reader.Read(buffer, 0, buffer.Length);
            Assert.AreEqual(Encoding.UTF8.GetString(buffer), "6chars\0\0\0\0");
            Assert.AreEqual(amountRead, 6);
        }
        public void ReadReturnsZeroOnNoData()
        {
            var reader = new RebufferableBinaryReader(new MemoryStream(), Encoding.UTF8);

            var buffer = new byte[6];
            int amountRead = reader.Read(buffer, 0, buffer.Length);
            Assert.AreEqual(Encoding.UTF8.GetString(buffer), "\0\0\0\0\0\0");
            Assert.AreEqual(amountRead, 0);
        }
コード例 #6
0
        public async Task ReadLineReturnsNullOnNoDataAsync()
        {
            var reader = new RebufferableBinaryReader(new MemoryStream(new byte[6]), Encoding.UTF8);

            var s = await reader.ReadLineAsync().ConfigureAwait(false);

            Assert.Equal("\0\0\0\0\0\0", s);
            Assert.Null(await reader.ReadLineAsync().ConfigureAwait(false));
        }
        public void CanReadMixedAsciiAndUTF8()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("5èats"), Encoding.UTF8);

            var buffer = new byte[Encoding.UTF8.GetByteCount("5èats")];
            reader.Read(buffer, 0, buffer.Length);
            string result = Encoding.UTF8.GetString(buffer);
            Assert.AreEqual(result, "5èats");
        }
        public void CanReadAcrossMultipleBuffers()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("ars"), Encoding.UTF8);
            reader.Buffer(TestUtil.StringToByteNoBom("6ch"));

            var buffer = new byte[6];
            reader.Read(buffer, 0, buffer.Length);
            Assert.AreEqual(Encoding.UTF8.GetString(buffer), "6chars");
        }
コード例 #9
0
        public async Task ReadReturnsZeroOnNoDataAsync()
        {
            var reader = new RebufferableBinaryReader(new MemoryStream(), Encoding.UTF8);

            var buffer     = new byte[6];
            int amountRead = await reader.ReadAsync(buffer, 0, buffer.Length).ConfigureAwait(false);

            Assert.Equal("\0\0\0\0\0\0", Encoding.UTF8.GetString(buffer));
            Assert.Equal(0, amountRead);
        }
コード例 #10
0
        public async Task ReadCorrectlyHandlesLargerBufferThenStreamAsync()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("6chars"), Encoding.UTF8);

            var buffer     = new byte[10];
            int amountRead = await reader.ReadAsync(buffer, 0, buffer.Length).ConfigureAwait(false);

            Assert.Equal("6chars\0\0\0\0", Encoding.UTF8.GetString(buffer));
            Assert.Equal(6, amountRead);
        }
コード例 #11
0
        public async Task CanReadMixedAsciiAndUTF8Async()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("5èats"), Encoding.UTF8);

            var buffer = new byte[Encoding.UTF8.GetByteCount("5èats")];
            await reader.ReadAsync(buffer, 0, buffer.Length).ConfigureAwait(false);

            string result = Encoding.UTF8.GetString(buffer);

            Assert.Equal("5èats", result);
        }
コード例 #12
0
        public async Task CanReadAcrossMultipleBuffersAsync()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("ars"), Encoding.UTF8);

            reader.Buffer(TestUtil.StringToByteNoBom("6ch"));

            var buffer = new byte[6];
            await reader.ReadAsync(buffer, 0, buffer.Length).ConfigureAwait(false);

            Assert.Equal("6chars", Encoding.UTF8.GetString(buffer));
        }
        public void CanReadSingleBuffer()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("6chars"), Encoding.UTF8);

            var buffer = new byte[Encoding.UTF8.GetByteCount("6chars")];

            reader.Read(buffer, 0, buffer.Length);
            string result = Encoding.UTF8.GetString(buffer);

            Assert.Equal(result, "6chars");
        }
コード例 #14
0
        public void CanReadByteLineOnMixedAsciiAndUTF8Text()
        {
            var reader   = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("Bonjour poignée"), Encoding.UTF8);
            var bytes    = reader.ReadByteLine();
            var expected = new byte[] { 66, 111, 110, 106, 111, 117, 114, 32, 112, 111, 105, 103, 110, 195, 169, 101 };

            foreach (var pair in expected.Zip(bytes, Tuple.Create))
            {
                Assert.AreEqual(pair.Item1, pair.Item2);
            }
        }
コード例 #15
0
        public async Task CanReadMixedAsciiAndUTFCharactersAsync()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("abcdèfg"), Encoding.UTF8);

            Assert.Equal('a', await reader.ReadAsync().ConfigureAwait(false));
            Assert.Equal('b', await reader.ReadAsync().ConfigureAwait(false));
            Assert.Equal('c', await reader.ReadAsync().ConfigureAwait(false));
            Assert.Equal('d', await reader.ReadAsync().ConfigureAwait(false));
            Assert.Equal('è', await reader.ReadAsync().ConfigureAwait(false));
            Assert.Equal('f', await reader.ReadAsync().ConfigureAwait(false));
            Assert.Equal('g', await reader.ReadAsync().ConfigureAwait(false));
        }
        public void CanReadMixedAsciiAndUTFCharacters()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("abcdèfg"), Encoding.UTF8);

            Assert.Equal(reader.Read(), 'a');
            Assert.Equal(reader.Read(), 'b');
            Assert.Equal(reader.Read(), 'c');
            Assert.Equal(reader.Read(), 'd');
            Assert.Equal(reader.Read(), 'è');
            Assert.Equal(reader.Read(), 'f');
            Assert.Equal(reader.Read(), 'g');
        }
        public void ReadCorrectlyHandlesSmallerBufferThenStream()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("6chars"), Encoding.UTF8);

            var buffer = new byte[4];
            reader.Read(buffer, 0, buffer.Length);
            Assert.AreEqual(Encoding.UTF8.GetString(buffer), "6cha");

            buffer = new byte[2];
            reader.Read(buffer, 0, buffer.Length);
            Assert.AreEqual(Encoding.UTF8.GetString(buffer), "rs");
        }
        public void CanReadSingleCharacterOverBuffers()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("def"), Encoding.UTF8);
            reader.Buffer(TestUtil.StringToByteNoBom("abc"));

            Assert.AreEqual(reader.Read(), 'a');
            Assert.AreEqual(reader.Read(), 'b');
            Assert.AreEqual(reader.Read(), 'c');
            Assert.AreEqual(reader.Read(), 'd');
            Assert.AreEqual(reader.Read(), 'e');
            Assert.AreEqual(reader.Read(), 'f');
        }
コード例 #19
0
        public async Task CanReadByteLineOnMixedAsciiAndUTF8TextAsync()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("Bonjour poignée"), Encoding.UTF8);

            byte[] bytes = await reader.ReadByteLineAsync().ConfigureAwait(false);

            var expected = new byte[] { 66, 111, 110, 106, 111, 117, 114, 32, 112, 111, 105, 103, 110, 195, 169, 101 };

            foreach (var pair in expected.Zip(bytes, Tuple.Create))
            {
                Assert.Equal(pair.Item1, pair.Item2);
            }
        }
コード例 #20
0
        public void CanReadMixedAsciiAndUTF8AcrossMultipleBuffers()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("ts"), Encoding.UTF8);

            reader.Buffer(TestUtil.StringToByteNoBom(("5èa")));

            var buffer = new byte[Encoding.UTF8.GetByteCount("5èats")];

            reader.Read(buffer, 0, buffer.Length);
            string result = Encoding.UTF8.GetString(buffer);

            Assert.Equal("5èats", result);
        }
コード例 #21
0
        public async Task ReadCorrectlyHandlesSmallerBufferThenStreamAsync()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("6chars"), Encoding.UTF8);

            var buffer = new byte[4];
            await reader.ReadAsync(buffer, 0, buffer.Length).ConfigureAwait(false);

            Assert.Equal("6cha", Encoding.UTF8.GetString(buffer));

            buffer = new byte[2];
            await reader.ReadAsync(buffer, 0, buffer.Length).ConfigureAwait(false);

            Assert.Equal("rs", Encoding.UTF8.GetString(buffer));
        }
コード例 #22
0
        public void CanReadMixedAsciiAndUTFCharactersOverBuffers()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("dèfg"), Encoding.UTF8);

            reader.Buffer(TestUtil.StringToByteNoBom("abc"));

            Assert.Equal('a', reader.Read());
            Assert.Equal('b', reader.Read());
            Assert.Equal('c', reader.Read());
            Assert.Equal('d', reader.Read());
            Assert.Equal('è', reader.Read());
            Assert.Equal('f', reader.Read());
            Assert.Equal('g', reader.Read());
        }
        public void ReadCanResumeInterruptedStream()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("6chars"), Encoding.UTF8);

            var buffer = new byte[4];
            int amountRead = reader.Read(buffer, 0, buffer.Length);
            Assert.AreEqual(Encoding.UTF8.GetString(buffer), "6cha");
            Assert.AreEqual(amountRead, 4);

            reader.Buffer(TestUtil.StringToByteNoBom("14intermission"));
            buffer = new byte[14];
            amountRead = reader.Read(buffer, 0, buffer.Length);
            Assert.AreEqual(Encoding.UTF8.GetString(buffer), "14intermission");
            Assert.AreEqual(amountRead, 14);

            buffer = new byte[2];
            amountRead = reader.Read(buffer, 0, buffer.Length);
            Assert.AreEqual(Encoding.UTF8.GetString(buffer), "rs");
            Assert.AreEqual(amountRead, 2);
        }
コード例 #24
0
        public async Task ReadCanResumeInterruptedStreamAsync()
        {
            var reader = new RebufferableBinaryReader(TestUtil.StringToStreamNoBom("6chars"), Encoding.UTF8);

            var buffer     = new byte[4];
            int amountRead = await reader.ReadAsync(buffer, 0, buffer.Length).ConfigureAwait(false);

            Assert.Equal("6cha", Encoding.UTF8.GetString(buffer));
            Assert.Equal(4, amountRead);

            reader.Buffer(TestUtil.StringToByteNoBom("14intermission"));
            buffer     = new byte[14];
            amountRead = await reader.ReadAsync(buffer, 0, buffer.Length).ConfigureAwait(false);

            Assert.Equal("14intermission", Encoding.UTF8.GetString(buffer));
            Assert.Equal(14, amountRead);

            buffer     = new byte[2];
            amountRead = await reader.ReadAsync(buffer, 0, buffer.Length).ConfigureAwait(false);

            Assert.Equal("rs", Encoding.UTF8.GetString(buffer));
            Assert.Equal(2, amountRead);
        }