Пример #1
0
        public void CachesPreviousCharOnPartialMatchBufferOffsetMultiRead()
        {
            const string body       = "the message\nfoo\r\n";
            var          realStream = new MemoryStream(Encoding.UTF8.GetBytes(body));

            var stream    = new MalformedMultipartFixingStream(realStream, "foo");
            var buffer    = new byte[2048];
            var bytesRead = stream.Read(buffer, 1024, "the message\nf".Length);

            bytesRead += stream.Read(buffer, 1024 + bytesRead, 1024 - bytesRead);

            Assert.That(Encoding.UTF8.GetString(buffer, 1024, bytesRead), Is.EqualTo("the message\r\nfoo\r\n"));
        }
Пример #2
0
        public void CachesPreviousCharOnPartialMatch()
        {
            const string body       = "the message\nfoo\r\n";
            var          realStream = new MemoryStream(Encoding.UTF8.GetBytes(body));

            var stream    = new MalformedMultipartFixingStream(realStream, "foo");
            var buffer    = new byte[realStream.Length + 1];
            var bytesRead = stream.Read(buffer, 0, "the message".Length);

            Assert.That(Encoding.UTF8.GetString(buffer, 0, bytesRead) + stream.ReadToEnd(), Is.EqualTo("the message\r\nfoo\r\n"));
        }
Пример #3
0
        public void FixNewlineAtStartShortRead()
        {
            const string body       = "\nfoo\r\nthe message\r\n";
            var          realStream = new MemoryStream(Encoding.UTF8.GetBytes(body));

            var stream    = new MalformedMultipartFixingStream(realStream, "foo");
            var buffer    = new byte[2];
            var bytesRead = stream.Read(buffer, 0, 2);

            Assert.That(bytesRead, Is.EqualTo(2));
            Assert.That(Encoding.UTF8.GetString(buffer, 0, bytesRead) + stream.ReadToEnd(), Is.EqualTo("\r\nfoo\r\nthe message\r\n"));
        }