public void NormalizeAndEnsureValidPath_ThrowsIfPathIsNullOrEmpty(string path)
    {
        // Arrange
        var fileSystem = new TestRazorProjectFileSystem("C:/some/test/path/root");

        // Act and Assert
        ExceptionAssert.ThrowsArgumentNullOrEmptyString(() => fileSystem.NormalizeAndEnsureValidPath(path), "path");
    }
    public void NormalizeAndEnsureValidPath_NormalizesToForwardSlashes()
    {
        // Arrange
        var fileSystem = new TestRazorProjectFileSystem(@"C:\some\test\path\root");

        // Act
        var absolutePath = fileSystem.NormalizeAndEnsureValidPath(@"something\file.cshtml");

        // Assert
        Assert.Equal("C:/some/test/path/root/something/file.cshtml", absolutePath);
    }
    public void NormalizeAndEnsureValidPath_NormalizesToAbsolutePathWithoutForwardSlash()
    {
        // Arrange
        var fileSystem = new TestRazorProjectFileSystem("C:/some/test/path/root");

        // Act
        var absolutePath = fileSystem.NormalizeAndEnsureValidPath("/file.cshtml");

        // Assert
        Assert.Equal("C:/some/test/path/root/file.cshtml", absolutePath);
    }
    public void NormalizeAndEnsureValidPath_FileFromNetworkShare_UnixStyle_NormalizesToAbsolutePath()
    {
        // Arrange
        var fileSystem = new TestRazorProjectFileSystem("//some/network/share/root");

        // Act
        var absolutePath = fileSystem.NormalizeAndEnsureValidPath("//some/network/share/root/file.cshtml");

        // Assert
        Assert.Equal("//some/network/share/root/file.cshtml", absolutePath);
    }