Пример #1
0
        public void ShouldReportErrorWhenMultipleProjectsHaveFilesInWrongNamespaces()
        {
            //GIVEN
            var context = new NScanDriver();

            context.HasProject("MyProject1")
            .WithRootNamespace("MyProject1")
            .With(FileWithNamespace("lol1.cs", "WrongNamespace"))
            .With(FileWithNamespace("lol2.cs", "WrongNamespace"))
            .With(FileWithNamespace("lol3.cs", "MyProject1"));
            context.HasProject("MyProject2")
            .WithRootNamespace("MyProject2")
            .With(FileWithNamespace("lol1.cs", "WrongNamespace"))
            .With(FileWithNamespace("lol2.cs", "WrongNamespace"))
            .With(FileWithNamespace("lol3.cs", "MyProject2"));
            context.Add(RuleDemandingThat().Project("*MyProject*").HasCorrectNamespaces());

            //WHEN
            context.PerformAnalysis();

            //THEN
            context.ReportShouldContain(
                HasCorrectNamespacesMessage.HasCorrectNamespaces("*MyProject*").Error()
                .ExpectedNamespace("MyProject1", "MyProject1")
                .ButFoundIncorrectNamespaceFor("lol1.cs", "WrongNamespace")
                .ExpectedNamespace("MyProject1", "MyProject1")
                .ButFoundIncorrectNamespaceFor("lol2.cs", "WrongNamespace")
                .ExpectedNamespace("MyProject2", "MyProject2")
                .ButFoundIncorrectNamespaceFor("lol1.cs", "WrongNamespace")
                .ExpectedNamespace("MyProject2", "MyProject2")
                .ButFoundIncorrectNamespaceFor("lol2.cs", "WrongNamespace"));
            context.ReportShouldNotContainText("lol3");
        }
Пример #2
0
        public void ShouldNotReportErrorWhenThereAreNoFilesInMatchedProjects()
        {
            //GIVEN
            var context = new NScanDriver();

            context.HasProject("MyProject1")
            .WithRootNamespace("MyProject2");
            context.HasProject("MyProject2")
            .WithRootNamespace("MyProject2");
            context.Add(RuleDemandingThat().Project("*MyProject*").HasCorrectNamespaces());

            //WHEN
            context.PerformAnalysis();

            //THEN
            context.ReportShouldContain(HasCorrectNamespacesMessage.HasCorrectNamespaces($"*MyProject*").Ok());
        }
Пример #3
0
        public void ShouldNotReportErrorWhenMultipleFilesOfSingleProjectAreInCorrectNamespace()
        {
            //GIVEN
            var context = new NScanDriver();

            context.HasProject("MyProject")
            .WithRootNamespace("MyProject")
            .With(FileWithNamespace("lol1.cs", "MyProject"))
            .With(FileWithNamespace("lol2.cs", "MyProject"));
            context.Add(RuleDemandingThat().Project("*MyProject*").HasCorrectNamespaces());

            //WHEN
            context.PerformAnalysis();

            //THEN
            context.ReportShouldContain(HasCorrectNamespacesMessage.HasCorrectNamespaces("*MyProject*").Ok());
        }
Пример #4
0
        public void ShouldReportErrorWhenNoCsProjectMatchesThePattern()
        {
            //bug implement this behavior!
            //GIVEN
            var context = new NScanDriver();

            context.HasProject("MyProject")
            .WithRootNamespace("MyProject")
            .With(FileWithNamespaces("lol.cs", "MyProject", "MyProject2"));
            context.Add(RuleDemandingThat().Project("*Trolololo*").HasCorrectNamespaces());

            //WHEN
            context.PerformAnalysis();

            //THEN
            context.ReportShouldContain(HasCorrectNamespacesMessage
                                        .HasCorrectNamespaces("*Trolololo*").Error()
                                        .NoProjectFoundMatching("*Trolololo*"));
        }
Пример #5
0
        public void ShouldReportErrorWhenAFileHasMoreThanOneNamespace()
        {
            //GIVEN
            var context = new NScanDriver();

            context.HasProject("MyProject")
            .WithRootNamespace("MyProject")
            .With(FileWithNamespaces("lol.cs", "MyProject", "MyProject2"));
            context.Add(RuleDemandingThat().Project("*MyProject*").HasCorrectNamespaces());

            //WHEN
            context.PerformAnalysis();

            //THEN
            context.ReportShouldContain(HasCorrectNamespacesMessage
                                        .HasCorrectNamespaces("*MyProject*").Error()
                                        .ExpectedNamespace("MyProject", "MyProject")
                                        .ButHasMultipleNamespaces("lol.cs", "MyProject", "MyProject2"));
        }
Пример #6
0
        ShouldReportErrorWhenMultipleNestedFilesOfSingleProjectAreInWrongNamespaceEvenThoughSomeAreInTheRightOne()
        {
            //GIVEN
            var context = new NScanDriver();

            context.HasProject("MyProject")
            .WithRootNamespace("MyProject")
            .With(FileWithNamespace($"Domain{Path.DirectorySeparatorChar}lol4.cs", "MyProject.Domain"))
            .With(FileWithNamespace($"Domain{Path.DirectorySeparatorChar}lol5.cs", "MyProject"));
            context.Add(RuleDemandingThat().Project("*MyProject*").HasCorrectNamespaces());

            //WHEN
            context.PerformAnalysis();

            //THEN
            context.ReportShouldContain(HasCorrectNamespacesMessage
                                        .HasCorrectNamespaces("*MyProject*").Error()
                                        .ExpectedNamespace("MyProject", "MyProject")
                                        .ButFoundIncorrectNamespaceFor($"Domain{Path.DirectorySeparatorChar}lol5.cs", "MyProject"));
            context.ReportShouldNotContainText("lol4");
        }