public void Peek() { var str = "Hello World!"; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) using (var bs = new BencodeStream(ms)) { Assert.Equal('H', bs.Peek()); } }
public void ReadMoreBytesThanInStream() { using (var ms = new MemoryStream(Encoding.UTF8.GetBytes("Hello World!"))) using (var bs = new BencodeStream(ms)) { var bytes = bs.Read(20); Assert.Equal(12, bytes.Length); Assert.Equal("Hello World!", Encoding.UTF8.GetString(bytes)); } }
#pragma warning disable 1591 protected override void EncodeObject(BencodeStream stream) { stream.Write('d'); foreach (var kvPair in this) { kvPair.Key.EncodeTo(stream); kvPair.Value.EncodeTo(stream); } stream.Write('e'); }
public void ReadZeroBytes() { using (var ms = new MemoryStream(Encoding.UTF8.GetBytes("Hello World!"))) using (var bs = new BencodeStream(ms)) { var bytes = bs.Read(0); Assert.Equal(0, bytes.Length); Assert.Equal("", Encoding.UTF8.GetString(bytes)); } }
public void ReadPreviousAtStartOfStream() { var str = "Hello World!"; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) using (var bs = new BencodeStream(ms)) { Assert.Equal(-1, bs.ReadPrevious()); } }
public void EndOfStream() { var str = "Hello World!"; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) using (var bs = new BencodeStream(ms)) { bs.Read(12); Assert.True(bs.EndOfStream); Assert.Equal(-1, 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 ReadUnnaffectedByReadPrevious() { var str = "abcdefghijkl"; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) using (var bs = new BencodeStream(ms)) { Assert.Equal('a', bs.Read()); bs.ReadPrevious(); Assert.Equal('b', bs.Read()); } }
public void ReadPreviousChar() { var str = "Hello World!"; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) using (var bs = new BencodeStream(ms)) { Assert.Equal(default(char), bs.ReadPreviousChar()); bs.Read(1); Assert.Equal('H', bs.ReadPreviousChar()); } }
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 ReadChangeStreamPosition() { var str = "Hello World!"; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) using (var bs = new BencodeStream(ms)) { Assert.Equal('H', bs.Read()); Assert.Equal('e', bs.Read()); bs.Position -= 1; Assert.Equal('e', bs.Read()); } }
public void PeekAfterPositionChange() { var str = "abcdefghijkl"; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) using (var bs = new BencodeStream(ms)) { Assert.Equal(0, bs.Position); Assert.Equal('a', bs.PeekChar()); bs.Position = 1; Assert.Equal(1, bs.Position); Assert.Equal('b', bs.PeekChar()); } }
public void ReadBytesChangesStreamPosition() { var str = "Hello World!"; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) using (var bs = new BencodeStream(ms)) { Assert.Equal(0, bs.Position); var bytes = bs.Read(str.Length); Assert.Equal(12, bytes.Length); Assert.Equal(str, Encoding.UTF8.GetString(bytes)); Assert.Equal(12, bs.Position); } }
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 Read() { var str = "Hello World!"; using (var ms = new MemoryStream(Encoding.UTF8.GetBytes(str))) using (var bs = new BencodeStream(ms)) { Assert.Equal('H', bs.Read()); Assert.Equal('e', bs.Read()); Assert.Equal('l', bs.Read()); Assert.Equal('l', bs.Read()); Assert.Equal('o', bs.Read()); Assert.Equal(' ', bs.Read()); Assert.Equal('W', bs.Read()); Assert.Equal('o', bs.Read()); Assert.Equal('r', bs.Read()); Assert.Equal('l', bs.Read()); Assert.Equal('d', bs.Read()); Assert.Equal('!', bs.Read()); Assert.Equal(-1, bs.Read()); } }
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()); } }
/// <summary> /// Encodes the torrent and writes it to the stream. /// </summary> /// <param name="stream"></param> /// <returns></returns> protected override void EncodeObject(BencodeStream stream) { var torrent = ToBDictionary(); torrent.EncodeTo(stream); }
#pragma warning disable 1591 protected override void EncodeObject(BencodeStream stream) { stream.Write('i'); stream.Write(Value); stream.Write('e'); }
#pragma warning disable 1591 protected override void EncodeObject(BencodeStream stream) { stream.Write(_value.Length); stream.Write(':'); stream.Write(_value); }
/// <summary> /// Writes the object as bencode to the specified stream. /// </summary> /// <param name="stream">The stream to write to.</param> /// <returns>The used stream.</returns> public BencodeStream EncodeTo(BencodeStream stream) { EncodeObject(stream); return(stream); }
public override IBObject Parse(BencodeStream stream) { return(Substitute.Parse(stream)); }