예제 #1
0
        public void FindHierarchicalItems_WithNestedBasePath(string basePath)
        {
            // Arrange
            var path  = "/Areas/MyArea/Views/Home/Test.cshtml";
            var items = new List <RazorProjectItem>
            {
                CreateProjectItem("/Areas/MyArea/File.cshtml"),
                CreateProjectItem("/File.cshtml")
            };
            var project = new TestRazorProject(items);

            // Act
            var result = project.FindHierarchicalItems(basePath, path, "File.cshtml");

            // Assert
            Assert.Collection(
                result,
                item =>
            {
                Assert.Equal("/Areas/MyArea/Views/Home/File.cshtml", item.FilePath);
                Assert.False(item.Exists);
            },
                item =>
            {
                Assert.Equal("/Areas/MyArea/Views/File.cshtml", item.FilePath);
                Assert.False(item.Exists);
            });
        }
예제 #2
0
        public void FindHierarchicalItems_DoesNotIncludePassedInItem()
        {
            // Arrange
            var path  = "/Areas/MyArea/Views/Home/File.cshtml";
            var items = new List <RazorProjectItem>
            {
                CreateProjectItem("/Areas/MyArea/Views/Home/File.cshtml"),
                CreateProjectItem("/Areas/MyArea/Views/File.cshtml"),
                CreateProjectItem("/Areas/MyArea/File.cshtml"),
                CreateProjectItem("/Areas/File.cshtml"),
                CreateProjectItem("/File.cshtml"),
            };
            var project = new TestRazorProject(items);

            // Act
            var result = project.FindHierarchicalItems(path, "File.cshtml");

            // Assert
            Assert.Collection(
                result,
                item => Assert.Equal("/Areas/MyArea/Views/File.cshtml", item.FilePath),
                item => Assert.Equal("/Areas/MyArea/File.cshtml", item.FilePath),
                item => Assert.Equal("/Areas/File.cshtml", item.FilePath),
                item => Assert.Equal("/File.cshtml", item.FilePath));
        }
예제 #3
0
        public void FindHierarchicalItems_ReturnsEmptySequenceIfPathIsAtRoot()
        {
            // Arrange
            var project = new TestRazorProject();

            // Act
            var result = project.FindHierarchicalItems("/", "File.cshtml");

            // Assert
            Assert.Empty(result);
        }
예제 #4
0
        public void FindHierarchicalItems_ReturnsEmptySequenceIfPassedInItemWithFileNameIsAtRoot()
        {
            // Arrange
            var path  = "/File.cshtml";
            var items = new List <RazorProjectItem>
            {
                CreateProjectItem("/File.cshtml")
            };
            var project = new TestRazorProject(items);

            // Act
            var result = project.FindHierarchicalItems(path, "File.cshtml");

            // Assert
            Assert.Empty(result);
        }
예제 #5
0
        public void FindHierarchicalItems_ReturnsItemsForPathAtRoot()
        {
            // Arrange
            var path  = "/Index.cshtml";
            var items = new List <RazorProjectItem>
            {
                CreateProjectItem("/File.cshtml")
            };
            var project = new TestRazorProject(items);

            // Act
            var result = project.FindHierarchicalItems(path, "File.cshtml");

            // Assert
            Assert.Collection(
                result,
                item => Assert.Equal("/File.cshtml", item.FilePath));
        }
예제 #6
0
        public void FindHierarchicalItems_ReturnsEmptySequenceIfPathIsNotASubPathOfBasePath()
        {
            // Arrange
            var basePath = "/Pages";
            var path     = "/Areas/MyArea/Views/Home/Test.cshtml";
            var items    = new List <RazorProjectItem>
            {
                CreateProjectItem("/Areas/MyArea/File.cshtml"),
                CreateProjectItem("/File.cshtml"),
            };
            var project = new TestRazorProject(items);

            // Act
            var result = project.FindHierarchicalItems(basePath, path, "File.cshtml");

            // Assert
            Assert.Empty(result);
        }
예제 #7
0
        public void FindHierarchicalItems_ReturnsItemsForPath(string fileName)
        {
            // Arrange
            var path  = "/Views/Home/Index.cshtml";
            var items = new List <RazorProjectItem>
            {
                CreateProjectItem($"/{fileName}"),
                CreateProjectItem($"/Views/{fileName}"),
                CreateProjectItem($"/Views/Home/{fileName}")
            };
            var project = new TestRazorProject(items);

            // Act
            var result = project.FindHierarchicalItems(path, $"{fileName}");

            // Assert
            Assert.Collection(
                result,
                item => Assert.Equal($"/Views/Home/{fileName}", item.FilePath),
                item => Assert.Equal($"/Views/{fileName}", item.FilePath),
                item => Assert.Equal($"/{fileName}", item.FilePath));
        }