public void ParseSectionMethodThrowsArgNullExceptionOnNullContext() { // Arrange HtmlMarkupParser parser = new HtmlMarkupParser(); // Act and Assert ExceptionAssert.Throws<InvalidOperationException>(() => parser.ParseSection(null, true), RazorResources.Parser_Context_Not_Set); }
public void ConstructorAcceptsActiveParserIfIsSameAsEitherCodeOrMarkupParser() { var codeParser = new CSharpCodeParser(); var markupParser = new HtmlMarkupParser(); new ParserContext(new SeekableTextReader(TextReader.Null), codeParser, markupParser, codeParser); new ParserContext(new SeekableTextReader(TextReader.Null), codeParser, markupParser, markupParser); }
public void ConstructorWithCodeLanguageAndMarkupParserSetsPropertiesAppropriately() { // Arrange RazorCodeLanguage language = new CSharpRazorCodeLanguage(); MarkupParser expected = new HtmlMarkupParser(); // Act RazorEngineHost host = new RazorEngineHost(language, () => expected); // Assert VerifyCommonDefaults(host); Assert.AreSame(language, host.CodeLanguage); Assert.AreSame(expected, host.CreateMarkupParser()); }
public void ConstructorInitializesProperties() { // Arrange SeekableTextReader expectedBuffer = new SeekableTextReader(TextReader.Null); CSharpCodeParser expectedCodeParser = new CSharpCodeParser(); HtmlMarkupParser expectedMarkupParser = new HtmlMarkupParser(); // Act ParserContext context = new ParserContext(expectedBuffer, expectedCodeParser, expectedMarkupParser, expectedCodeParser); // Assert Assert.NotNull(context.Source); Assert.Same(expectedCodeParser, context.CodeParser); Assert.Same(expectedMarkupParser, context.MarkupParser); Assert.Same(expectedCodeParser, context.ActiveParser); }
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); }
private static List<Span> ParseDocument(string documentContents, IList<RazorError> errors = null) { errors = errors ?? new List<RazorError>(); var markupParser = new HtmlMarkupParser(); var codeParser = new TestMvcCSharpRazorCodeParser(); var context = new ParserContext(new SeekableTextReader(documentContents), codeParser, markupParser, markupParser); codeParser.Context = context; markupParser.Context = context; markupParser.ParseDocument(); ParserResults results = context.CompleteParse(); foreach (RazorError error in results.ParserErrors) { errors.Add(error); } return results.Document.Flatten().ToList(); }
public void DecorateMarkupParserReturnsIncomingParser() { // Arrange MarkupParser expected = new HtmlMarkupParser(); // Act MarkupParser actual = CreateHost().DecorateMarkupParser(expected); // Assert Assert.AreSame(expected, actual); }
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 TestMvcVBRazorCodeParser(); var context = new ParserContext(reader, codeParser, markupParser, markupParser, parserConsumerMock.Object); codeParser.Context = context; markupParser.Context = context; markupParser.ParseDocument(); return spans; }
private ParserContext SetupTestRun(string document, Action<TextReader> positioningAction) { var codeParser = new CSharpCodeParser(); var markupParser = new HtmlMarkupParser(); return SetupTestRun(document, positioningAction, codeParser, markupParser, codeParser, new Mock<ParserVisitor>().Object); }
private ParserContext SetupTestRun(string document, ParserVisitor listener) { var codeParser = new CSharpCodeParser(); var markupParser = new HtmlMarkupParser(); return SetupTestRun(document, b => { }, codeParser, markupParser, codeParser, listener); }
public void SwitchActiveParserSetsCodeParserAsActiveIfMarkupParserCurrentlyActive() { // Arrange var codeParser = new CSharpCodeParser(); var markupParser = new HtmlMarkupParser(); ParserContext context = SetupTestRun("barbazbiz", b => b.Read(), codeParser, markupParser, markupParser, new Mock<ParserVisitor>().Object); Assert.AreSame(markupParser, context.ActiveParser); // Act context.SwitchActiveParser(); // Assert Assert.AreSame(codeParser, context.ActiveParser); }
public void ConstructorAcceptsActiveParserIfIsSameAsEitherCodeOrMarkupParser() { var codeParser = new CSharpCodeParser(); var markupParser = new HtmlMarkupParser(); new ParserContext(new BufferingTextReader(TextReader.Null), codeParser, markupParser, codeParser, new Mock<ParserVisitor>().Object); new ParserContext(new BufferingTextReader(TextReader.Null), codeParser, markupParser, markupParser, new Mock<ParserVisitor>().Object); }
// Creates spans when the parsed document isn't available yet. void CreateSpans () { using (SeekableTextReader source = new SeekableTextReader (doc.Text)) { var markupParser = new HtmlMarkupParser (); var codeParser = new MvcCSharpRazorCodeParser (); var context = new ParserContext (source, codeParser, markupParser, markupParser) { DesignTimeMode = true }; codeParser.Context = context; markupParser.Context = context; context.ActiveParser.ParseDocument (); var results = context.CompleteParse (); currentSpans = results.Document.Flatten ().ToList (); } }
private ParserContext SetupTestContext(string document, Action<TextReader> positioningAction) { var codeParser = new CSharpCodeParser(); var markupParser = new HtmlMarkupParser(); return SetupTestContext(document, positioningAction, codeParser, markupParser, codeParser); }
private ParserContext SetupTestContext(string document) { var codeParser = new CSharpCodeParser(); var markupParser = new HtmlMarkupParser(); return SetupTestContext(document, b => { }, codeParser, markupParser, codeParser); }
public void SwitchActiveParserSetsMarkupParserAsActiveIfCodeParserCurrentlyActive() { // Arrange var codeParser = new CSharpCodeParser(); var markupParser = new HtmlMarkupParser(); ParserContext context = SetupTestContext("barbazbiz", b => b.Read(), codeParser, markupParser, codeParser); Assert.Same(codeParser, context.ActiveParser); // Act context.SwitchActiveParser(); // Assert Assert.Same(markupParser, context.ActiveParser); }