Exemplo n.º 1
0
 private static void AssertRead(IList <string> lines)
 {
     using (var r = new StringListReader(lines)) {
         int charno = 0;
         foreach (var expected in lines.SelectMany(s => s.AsEnumerable()))
         {
             charno += 1;
             var actual = r.Read();
             Assert.AreEqual((int)expected, actual, $"Character #{charno}");
         }
         Assert.IsTrue(r.Read() < 0, "Did not reach EOF");
     }
 }
Exemplo n.º 2
0
 private static void AssertReadLines(IList <string> lines)
 {
     using (var r = new StringListReader(lines)) {
         int lineno = 0;
         foreach (var expected in lines)
         {
             lineno += 1;
             var actual = r.ReadLine();
             Assert.AreEqual(expected, actual, $"Line #{lineno}");
         }
         Assert.IsNull(r.ReadLine(), "Did not reach EOF");
     }
 }
Exemplo n.º 3
0
        public void ReadBlockTest()
        {
            using (var r = new StringListReader(new[] { "0123456789", "ABCDEFGHIJ" })) {
                var buffer = new char[7];
                Assert.AreEqual(7, r.ReadBlock(buffer, 0, 7));
                Assert.AreEqual("0123456", ToString(buffer));

                Assert.AreEqual(7, r.ReadBlock(buffer, 0, 7));
                Assert.AreEqual("789ABCD", ToString(buffer));

                Assert.AreEqual(6, r.ReadBlock(buffer, 0, 7));
                Assert.AreEqual("EFGHIJ", ToString(buffer.Take(6)));
            }
        }
Exemplo n.º 4
0
        public void ReadToEndTest()
        {
            using (var r = new StringListReader(new[] { "A", "B", "C" })) {
                Assert.AreEqual("ABC", r.ReadToEndWithoutAssert());
            }

            using (var r = new StringListReader(new[] { "A", "B", "C" })) {
                Assert.AreEqual('A', r.Read());
                Assert.AreEqual("BC", r.ReadToEndWithoutAssert());
            }

            using (var r = new StringListReader(new[] { "A", "B", "C" })) {
                Assert.AreEqual('A', r.Peek());
                Assert.AreEqual("ABC", r.ReadToEndWithoutAssert());
            }
        }
Exemplo n.º 5
0
        public void PartialReadTest()
        {
            using (var r = new StringListReader(new[] { "0123456789", "ABCDEFGHIJ" })) {
                var buffer = new char[7];
                Assert.AreEqual(7, r.Read(buffer, 0, 7));
                Assert.AreEqual("0123456", ToString(buffer));

                // We do not get a full read here, by design
                Assert.AreEqual(3, r.Read(buffer, 0, 7));
                Assert.AreEqual("789", ToString(buffer.Take(3)));

                Assert.AreEqual(7, r.Read(buffer, 0, 7));
                Assert.AreEqual("ABCDEFG", ToString(buffer));

                // We do not get a full read here, by design
                Assert.AreEqual(3, r.Read(buffer, 0, 7));
                Assert.AreEqual("HIJ", ToString(buffer.Take(3)));
            }
        }
Exemplo n.º 6
0
        public void PeekTest()
        {
            global::System.Char[] buffer = new char[10];

            using (var r = new StringListReader(new[] { "AB", "CD", "EF" }))
            {
                Assert.AreEqual('A', r.Peek());
                Assert.AreEqual('A', r.Peek());
                Assert.AreEqual('A', r.Read());
            }

            using (var r = new StringListReader(new[] { "AB", "CD", "EF" }))
            {
                Assert.AreEqual('A', r.Peek());
                Assert.AreEqual(2, r.Read(buffer, 0, 5));
                Assert.AreEqual('A', buffer[0]);
                Assert.AreEqual('B', buffer[1]);
            }

            using (var r = new StringListReader(new[] { "AB", "CD", "EF" }))
            {
                Assert.AreEqual('A', r.Read());
                Assert.AreEqual('B', r.Peek());
                // Read after peeking the last char in a line will get us
                // the next line too.
                Assert.AreEqual(3, r.Read(buffer, 0, 5));
                Assert.AreEqual('B', buffer[0]);
                Assert.AreEqual('C', buffer[1]);
                Assert.AreEqual('D', buffer[2]);
            }

            using (var r = new StringListReader(new[] { "AB", "CD", "EF" }))
            {
                Assert.AreEqual('A', r.Read());
                Assert.AreEqual('B', r.Peek());
                // Read after peeking the last char in a line will get us
                // the next line too.
                Assert.AreEqual("BCD", r.ReadLine());
            }
        }