public void ExtractUsings_ReturnsEmpty_WhenNoUsings()
        {
            var file     = new InMemoryAdditionalText("", "");
            var pageData = new RazorPageItem(file);

            // Act
            var result = PagesFacts.ExtractUsings(pageData);

            // Assert
            result.Should().BeEmpty();
        }
        public void IsImplicitlyIncludedFile(string path, bool expected)
        {
            var file     = new InMemoryAdditionalText(path, "");
            var pageData = new RazorPageItem(file);

            // Act
            var result = PagesFacts.IsImplicitlyIncludedFile(pageData);

            // Assert
            result.Should().Be(expected);
        }
        public void Model_ReturnsTheCorrectModel(string source, string expected)
        {
            var additionalText = new InMemoryAdditionalText("Index.cshtml", source);
            var pageData       = new RazorPageItem(additionalText);

            // Act
            var model = pageData.Model;

            // Assert
            model.Should().Be(expected);
        }
        public void Route_ReturnsTheCorrectRoute(string source, string expected)
        {
            var additionalText = new InMemoryAdditionalText("Index.cshtml", source);
            var pageData       = new RazorPageItem(additionalText);

            // Act
            var route = pageData.Route;

            // Assert
            route.Should().Be(expected);
        }
        public void Area_ReturnsTheCorrectArea(string path, string expected)
        {
            var additionalText = new InMemoryAdditionalText(path, "");
            var pageData       = new RazorPageItem(additionalText);

            // Act
            var result = pageData.Area;

            // Assert
            result.Should().Be(expected);
        }
        public void Page_ReturnsTheCorrectPage(string path, string expectedPage, string expectedFolder, string expectedPageName)
        {
            var additionalText = new InMemoryAdditionalText(path, "");
            var pageData       = new RazorPageItem(additionalText);

            // Act
            var page     = pageData.Page;
            var folder   = pageData.Folder;
            var pageName = pageData.PageName;

            // Assert
            page.Should().Be(expectedPage);
            folder.Should().Be(expectedFolder);
            pageName.Should().Be(expectedPageName);
        }
        public void ExtractUsings_ReturnsUsings()
        {
            var file     = new InMemoryAdditionalText("", @"@using System
@using System.Text");
            var pageData = new RazorPageItem(file);

            // Act
            var result = PagesFacts.ExtractUsings(pageData);

            // Assert
            result.Should().BeEquivalentTo(new[]
            {
                "System",
                "System.Text",
            });
        }