public void Should_read_failing_on_invalid_tokens( string data, int bufferSize, string invalidTokens, bool endOfSection, bool endOfStream, int read, string expectedData, bool invalid) { var invalidTokenBytes = invalidTokens.Split(",") .Select(x => x.Select(y => (byte)y).ToArray()).ToArray(); var stream = new MemoryStream(data.ToBytes()); var buffer = new DelimitedBuffer(stream, bufferSize); var readBuffer = new byte[10]; var readData = ""; var readLength = 0; DelimitedBuffer.ReadResult result; while (true) { result = buffer.Read(readBuffer, 0, 10, invalidTokenBytes); readLength += result.Read; if (result.Read > 0) { readData += readBuffer.ToString(result.Read); } if (result.Invalid || result.EndOfSection || result.EndOfStream) { break; } } result.Invalid.ShouldEqual(invalid); result.EndOfSection.ShouldEqual(endOfSection); result.EndOfStream.ShouldEqual(endOfStream); readLength.ShouldEqual(read); readData.ShouldEqual(expectedData); }
public void Should_read_to_delimiter_failing_on_invalid_tokens( string data, int bufferSize, string delimiter, string invalidTokens, bool endOfSection1, bool endOfStream1, string read1, bool invalid1, bool endOfSection2, bool endOfStream2, string read2, bool invalid2, string remainingData) { var invalidTokenBytes = invalidTokens.Split(",") .Select(x => x.Select(y => (byte)y).ToArray()).ToArray(); var stream = new MemoryStream(data.ToBytes()); var buffer = new DelimitedBuffer(stream, bufferSize); var readBuffer = new byte[10]; var result = buffer.ReadTo(readBuffer, 0, 10, delimiter.ToBytes(), invalidTokenBytes); result.Invalid.ShouldEqual(invalid1); result.EndOfSection.ShouldEqual(endOfSection1); result.EndOfStream.ShouldEqual(endOfStream1); readBuffer.ToString(result.Read).ShouldEqual(read1); result = buffer.ReadTo(readBuffer, 0, 10, delimiter.ToBytes(), invalidTokenBytes); result.Invalid.ShouldEqual(invalid2); result.EndOfSection.ShouldEqual(endOfSection2); result.EndOfStream.ShouldEqual(endOfStream2); readBuffer.ToString(result.Read).ShouldEqual(read2); ReadRemaining(buffer).ShouldEqual(remainingData); }
public void Should_start_with(string data, int bufferSize, string compare, bool expected) { var stream = new MemoryStream(data.ToBytes()); var buffer = new DelimitedBuffer(stream, bufferSize); buffer.StartsWith(compare.ToBytes()).ShouldEqual(expected); }
public void Should_read_to_failing_on_invalid_chars( string data, int bufferSize, string delimiter, string validChars, bool endOfSection1, bool endOfStream1, int read1, bool invalid1, bool endOfSection2, bool endOfStream2, int read2, bool invalid2, string remainingData) { var stream = new MemoryStream(data.ToBytes()); var buffer = new DelimitedBuffer(stream, bufferSize); var result = buffer.ReadTo(delimiter.ToBytes(), validChars.ToBytes()); result.Invalid.ShouldEqual(invalid1); result.EndOfSection.ShouldEqual(endOfSection1); result.EndOfStream.ShouldEqual(endOfStream1); result.Read.ShouldEqual(read1); result = buffer.ReadTo(delimiter.ToBytes(), validChars.ToBytes()); result.Invalid.ShouldEqual(invalid2); result.EndOfSection.ShouldEqual(endOfSection2); result.EndOfStream.ShouldEqual(endOfStream2); result.Read.ShouldEqual(read2); ReadRemaining(buffer).ShouldEqual(remainingData); }
public void Should_not_start_with_comparison_that_exceeds_buffer_size() { var data = "fark".ToBytes(); var stream = new MemoryStream(data); var buffer = new DelimitedBuffer(stream, 4); buffer.ReadTo(data); buffer.StartsWith(data).ShouldBeFalse(); }
public void Should_indicate_when_at_begining_of_stream() { var stream = new MemoryStream("fark".ToBytes()); var buffer = new DelimitedBuffer(stream); buffer.BeginingOfStream.ShouldBeTrue(); buffer.ReadTo(null, 0, 2, null); buffer.BeginingOfStream.ShouldBeFalse(); }
private string ReadRemaining(DelimitedBuffer delimitedBuffer) { var buffer = new byte[10]; var data = ""; while (true) { var result = delimitedBuffer.Read(buffer, 0, 10); if (result.Read > 0) { data += buffer.ToString(result.Read); } if (result.Invalid || result.EndOfSection || result.EndOfStream) { break; } } return(data); }