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); }
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"); }
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); }
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); }
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); }
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"); }
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); } }
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'); }
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); } }
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); }
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)); }
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); }
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); }