예제 #1
0
        public void ForwardReadsPrev()
        {
            var lastPageCount = 10;
            var prevPageCount = 3;
            var logReader     = new PageReaderData()
            {
                Id    = Fixture.TestName,
                Count = lastPageCount
            };
            long pageTop    = (Fixture.LineCount - lastPageCount) * Fixture.TextLine(0).Length;
            long pageBottom = PageReaderData.EOF;

            Assert.True(Fixture.LineCount > lastPageCount, "Not enough lines to perform test.");

            PageReader.ReadLast(logReader);

            Assert.Equal(pageTop, logReader.PageTop);
            Assert.Equal(pageBottom, logReader.PageBottom);
            Assert.Equal(lastPageCount, logReader.Lines.Count());

            pageBottom      = pageTop;
            pageTop         = (Fixture.LineCount - lastPageCount - prevPageCount) * Fixture.TextLine(0).Length;
            logReader.Count = prevPageCount;

            PageReader.ReadPrev(logReader);

            Assert.Equal(pageTop, logReader.PageTop);
            Assert.Equal(pageBottom, logReader.PageBottom);
            Assert.Equal(prevPageCount, logReader.Lines.Count());
            for (var i = 0; i < prevPageCount; i++)
            {
                Assert.Equal(Fixture.Text(lastPageCount + prevPageCount + i), logReader.Lines.Skip(i).First());
            }
        }