public void PeekDoesNotAdvanceStreamPosition() { var str = "Hello World!"; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) using (var bs = new BencodeStream(ms)) { Assert.Equal(0, bs.Position); Assert.Equal('H', bs.Peek()); Assert.Equal(0, bs.Position); Assert.Equal('H', bs.Peek()); Assert.Equal(0, bs.Position); } }
public void PeekUnnaffectedByReadPrevious() { var str = "abcdefghijkl"; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) using (var bs = new BencodeStream(ms)) { bs.Read(0); Assert.Equal('a', bs.Peek()); bs.ReadPrevious(); Assert.Equal('a', bs.Peek()); bs.Read(1); Assert.Equal('b', bs.Peek()); bs.ReadPrevious(); Assert.Equal('b', bs.Peek()); } }
public void PeekAreChangedAfterReadSingleByte() { var str = "abcdefghijkl"; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) using (var bs = new BencodeStream(ms)) { byte[] bytes; Assert.Equal('a', bs.Peek()); bytes = bs.Read(1); Assert.Equal('a', (char)bytes[0]); Assert.Equal('b', bs.Peek()); bytes = bs.Read(1); Assert.Equal('b', (char)bytes[0]); Assert.Equal('c', bs.Peek()); } }
public void PeekAndReadEqual() { var str = "Hello World!"; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) using (var bs = new BencodeStream(ms)) { Assert.Equal('H', bs.Peek()); Assert.Equal('H', bs.Read()); } }
public void PeekAtEndOfStreamThenReadBytes() { var str = "abcdefghijkl"; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) using (var bs = new BencodeStream(ms)) { bs.Read(12); Assert.Equal(-1, bs.Peek()); Assert.Equal(0, bs.Read(4).Length); } }
public void ReadPreviousUnaffectedByPeek() { var str = "Hello World!"; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) using (var bs = new BencodeStream(ms)) { bs.Read(1); Assert.Equal('H', bs.ReadPrevious()); Assert.Equal('e', bs.Peek()); Assert.Equal('H', bs.ReadPrevious()); } }
public void PeekAreChangedAfterRead() { var str = "abcdefghijkl"; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) using (var bs = new BencodeStream(ms)) { Assert.Equal('a', bs.Peek()); Assert.Equal('a', bs.Read()); Assert.Equal('b', bs.Peek()); Assert.Equal('b', bs.Read()); Assert.Equal('c', bs.Peek()); Assert.Equal('c', bs.Read()); Assert.Equal('d', bs.Peek()); Assert.Equal('d', bs.Read()); Assert.Equal('e', bs.Peek()); Assert.Equal('e', bs.Read()); } }