public void Execute_NoOpsForBlazorComponents() { // Arrange var properties = new RazorSourceDocumentProperties(filePath: "ignored", relativePath: "Test.razor"); var codeDocument = RazorCodeDocument.Create(RazorSourceDocument.Create("Hello world", properties)); codeDocument.SetFileKind(FileKinds.Component); var engine = CreateProjectEngine(b => { PageDirective.Register(b); }).Engine; var irDocument = CreateIRDocument(engine, codeDocument); var pass = new CreateNewOnMetadataUpdateAttributePass { Engine = engine }; var documentClassifier = new DefaultDocumentClassifierPass { Engine = engine }; // Act documentClassifier.Execute(codeDocument, irDocument); pass.Execute(codeDocument, irDocument); var visitor = new Visitor(); visitor.Visit(irDocument); // Assert Assert.Empty(visitor.ExtensionNodes); }
public void Execute_IgnoresDocumentsWithDocumentKind() { // Arrange var documentNode = new DocumentIntermediateNode() { DocumentKind = "ignore", Options = RazorCodeGenerationOptions.CreateDefault(), }; var pass = new DefaultDocumentClassifierPass(); pass.Engine = CreateProjectEngine().Engine; // Act pass.Execute(TestRazorCodeDocument.CreateEmpty(), documentNode); // Assert Assert.Equal("ignore", documentNode.DocumentKind); NoChildren(documentNode); }
public void Execute_CreatesClassStructure() { // Arrange var documentNode = new DocumentIntermediateNode() { Options = RazorCodeGenerationOptions.CreateDefault(), }; var pass = new DefaultDocumentClassifierPass(); pass.Engine = CreateProjectEngine().Engine; // Act pass.Execute(TestRazorCodeDocument.CreateEmpty(), documentNode); // Assert Assert.Equal("default", documentNode.DocumentKind); var @namespace = SingleChild <NamespaceDeclarationIntermediateNode>(documentNode); var @class = SingleChild <ClassDeclarationIntermediateNode>(@namespace); var method = SingleChild <MethodDeclarationIntermediateNode>(@class); NoChildren(method); }