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