private static void RunDisposeTest(Action <LookaheadTextReader> triggerAction)
        {
            // Arrange
            DisposeTestMockTextReader source = new DisposeTestMockTextReader();
            LookaheadTextReader       reader = new BufferingTextReader(source);

            // Act
            triggerAction(reader);

            // Assert
            Assert.True(source.Disposed);
        }
Esempio n. 2
0
        private static List <Span> ParseDocument(string documentContents, List <RazorError> errors = null)
        {
            errors = errors ?? new List <RazorError>();
            var         reader             = new BufferingTextReader(new StringReader(documentContents));
            var         markupParser       = new HtmlMarkupParser();
            var         parserConsumerMock = new Mock <ParserVisitor>();
            List <Span> spans = new List <Span>();

            parserConsumerMock.Setup(consumer => consumer.VisitSpan(It.IsAny <Span>())).Callback <Span>(span => spans.Add(span));
            parserConsumerMock.Setup(consumer => consumer.VisitError(It.IsAny <RazorError>())).Callback <RazorError>(error => errors.Add(error));
            var codeParser = new TestMvcCSharpRazorCodeParser();
            var context    = new ParserContext(reader, codeParser, markupParser, markupParser, parserConsumerMock.Object);

            codeParser.Context   = context;
            markupParser.Context = context;
            markupParser.ParseDocument();
            return(spans);
        }
Esempio n. 3
0
        public void ConstructorInitializesProperties()
        {
            // Arrange
            LookaheadTextReader expectedBuffer       = new BufferingTextReader(TextReader.Null);
            CSharpCodeParser    expectedCodeParser   = new CSharpCodeParser();
            HtmlMarkupParser    expectedMarkupParser = new HtmlMarkupParser();
            ParserVisitor       expectedListener     = new Mock <ParserVisitor>().Object;

            // Act
            ParserContext context = new ParserContext(expectedBuffer, expectedCodeParser, expectedMarkupParser, expectedCodeParser, expectedListener);

            // Assert
            Assert.IsInstanceOfType(context.Source, typeof(BufferingTextReader));
            Assert.AreSame(expectedBuffer, context.Source);
            Assert.AreSame(expectedCodeParser, context.CodeParser);
            Assert.AreSame(expectedMarkupParser, context.MarkupParser);
            Assert.AreSame(expectedCodeParser, context.ActiveParser);
            Assert.AreSame(expectedListener, context.Visitor);
        }
        public void BacktrackBufferIsClearedWhenEndReachedAndNoCurrentLookaheads()
        {
            // Arrange
            StringReader        source = new StringReader(TestString);
            BufferingTextReader reader = new BufferingTextReader(source);

            reader.Read();                   // Reader: "bcdefg"
            using (reader.BeginLookahead()) {
                reader.Read();               // Reader: "cdefg"
            } // Reader: "bcdefg"
            reader.Read();                   // Reader: "cdefg"
            Assert.IsNotNull(reader.Buffer); // Verify our assumption that the buffer still exists

            // Act
            reader.Read();

            // Assert
            Assert.IsFalse(reader.Buffering, "The buffer was not reset when the end was reached");
            Assert.AreEqual(0, reader.Buffer.Length, "The buffer was not reset when the end was reached");
        }
Esempio n. 5
0
        private static void RunDisposeTest(Action<LookaheadTextReader> triggerAction)
        {
            // Arrange
            var source = new DisposeTestMockTextReader();
            var reader = new BufferingTextReader(source);

            // Act
            triggerAction(reader);

            // Assert
            Assert.True(source.Disposed);
        }
Esempio n. 6
0
        public void BacktrackBufferIsClearedWhenEndReachedAndNoCurrentLookaheads()
        {
            // Arrange
            var source = new StringReader(TestString);
            var reader = new BufferingTextReader(source);

            reader.Read(); // Reader: "bcdefg"
            using (reader.BeginLookahead())
            {
                reader.Read(); // Reader: "cdefg"
            } // Reader: "bcdefg"
            reader.Read(); // Reader: "cdefg"
            Assert.NotNull(reader.Buffer); // Verify our assumption that the buffer still exists

            // Act
            reader.Read();

            // Assert
            Assert.False(reader.Buffering, "The buffer was not reset when the end was reached");
            Assert.Equal(0, reader.Buffer.Length);
        }