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"); }
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()); }
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()); }
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*")); }
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")); }
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"); }