Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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();
        }
Exemplo n.º 6
0
        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();
        }
Exemplo n.º 7
0
        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);
        }