public void DirectoryNode_AddMultipleFiles_ToSameDirectory() { // Arrange var root = new DirectoryNode("/"); var projectItem1 = new TestRazorProjectItem("/Pages/Shared/_Layout.cshtml"); var projectItem2 = new TestRazorProjectItem("/Pages/Shared/_Partial.cshtml"); // Act root.AddFile(new FileNode(projectItem1.FilePath, projectItem1)); root.AddFile(new FileNode(projectItem2.FilePath, projectItem2)); // Assert Assert.Collection( root.Directories, directory => { Assert.Equal("/Pages/", directory.Path); Assert.Empty(directory.Files); Assert.Collection( directory.Directories, subDirectory => { Assert.Equal("/Pages/Shared/", subDirectory.Path); Assert.Collection( subDirectory.Files, file => Assert.Same(projectItem1, file.ProjectItem), file => Assert.Same(projectItem2, file.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); }
public void DirectoryNode_AddFile_CanAddToNestedDirectory() { // Arrange var root = new DirectoryNode("/"); var projectItem = new TestRazorProjectItem("/Pages/Shared/_Layout.cshtml"); // Act root.AddFile(new FileNode("/Pages/Shared/_Layout.cshtml", projectItem)); // Assert Assert.Collection( root.Directories, directory => { Assert.Equal("/Pages/", directory.Path); Assert.Empty(directory.Files); Assert.Collection( directory.Directories, subDirectory => { Assert.Equal("/Pages/Shared/", subDirectory.Path); Assert.Collection( subDirectory.Files, file => Assert.Same(projectItem, file.ProjectItem)); }); }); }
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_AddsFiles_ToSiblingDirectories() { // Arrange var root = new DirectoryNode("/"); var projectItem1 = new TestRazorProjectItem("/Pages/Products/Index.cshtml"); var projectItem2 = new TestRazorProjectItem("/Pages/Accounts/About.cshtml"); // Act root.AddFile(new FileNode(projectItem1.FilePath, projectItem1)); root.AddFile(new FileNode(projectItem2.FilePath, projectItem2)); // Assert Assert.Collection( root.Directories, directory => { Assert.Equal("/Pages/", directory.Path); Assert.Empty(directory.Files); Assert.Collection( directory.Directories, subDirectory => { Assert.Equal("/Pages/Products/", subDirectory.Path); Assert.Collection( subDirectory.Files, file => Assert.Same(projectItem1, file.ProjectItem)); }, subDirectory => { Assert.Equal("/Pages/Accounts/", subDirectory.Path); Assert.Collection( subDirectory.Files, file => Assert.Same(projectItem2, file.ProjectItem)); }); }); }
public void DirectoryNode_AddFile_CanAddToRoot() { // Arrange var root = new DirectoryNode("/"); var projectItem = new TestRazorProjectItem("/File.txt"); // Act root.AddFile(new FileNode("/File.txt", projectItem)); // Assert Assert.Empty(root.Directories); Assert.Collection( root.Files, file => Assert.Same(projectItem, file.ProjectItem)); }