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); }
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); }
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"); }
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); }
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); }