public void DirectoryNode_GetItem_WhenFileNameIsSameAsDirectoryName()
    {
        // Arrange
        var projectItem1 = new TestRazorProjectItem("/Home/Home.cshtml");
        var projectItem2 = new TestRazorProjectItem("/Home/About.cshtml");
        var root         = new DirectoryNode("/")
        {
            Directories =
            {
                new DirectoryNode("/Home/")
                {
                    Files =
                    {
                        new FileNode(projectItem1.FilePath, projectItem1),
                        new FileNode(projectItem2.FilePath, projectItem2),
                    }
                }
            },
        };

        // Act
        var result = root.GetItem(projectItem1.FilePath);

        // Assert
        Assert.Same(result, projectItem1);
    }
    public void DirectoryNode_GetItem_ReturnsItemAtRoot()
    {
        // Arrange
        var root        = new DirectoryNode("/");
        var projectItem = new TestRazorProjectItem("/_ViewStart.cshtml");

        root.AddFile(new FileNode(projectItem.FilePath, projectItem));

        // Act
        var result = root.GetItem(projectItem.FilePath);

        // Assert
        Assert.Same(result, projectItem);
    }
    public void DirectoryNode_GetItem_WhenFilePathSharesSameNameAsSiblingDirectory()
    {
        // Arrange
        var root         = new DirectoryNode("/");
        var projectItem1 = new TestRazorProjectItem("/Home.cshtml");
        var projectItem2 = new TestRazorProjectItem("/Home/About.cshtml");

        root.AddFile(new FileNode(projectItem1.FilePath, projectItem1));
        root.AddFile(new FileNode(projectItem2.FilePath, projectItem2));

        // Act
        var result = root.GetItem(projectItem1.FilePath);

        // Assert
        Assert.Same(result, projectItem1);
    }