public void ShouldReportSuccessWhenNoMethodsInProject()
        {
            //GIVEN
            var context = new NScanDriver();

            context.HasProject("MyProject")
            .WithRootNamespace("MyProject")
            .With(File("lol.cs").Containing(
                      Class("MySpecification")));

            context.Add(RuleDemandingThat().Project("*MyProject*").HasDecoratedMethods("*Specification", "Should*"));

            //WHEN
            context.PerformAnalysis();

            //THEN
            context.ReportShouldContain(
                HasMethodsNotDecoratedWithAttribute("*MyProject*", "*Specification", "Should*").Ok());
        }
Ejemplo n.º 2
0
        public void ShouldReportSuccessWhenAllProjectsHaveSpecifiedFramework()
        {
            //GIVEN
            var context = new NScanDriver();

            context.HasProject("MyProject")
            .WithTargetFramework(TargetFramework.Default);

            context.Add(
                RuleDemandingThat().Project("*MyProject*")
                .HasProperty("TargetFramework", TargetFramework.Default));

            //WHEN
            context.PerformAnalysis();

            //THEN
            context.ReportShouldContain(
                HasProperty("*MyProject*", "TargetFramework", TargetFramework.Default).Ok());
        }
        public void ShouldReportSuccessWhenNoProjectHasSpecifiedPackageReference()
        {
            //GIVEN
            var projectName = Any.String();
            var packageName = Any.String();
            var context     = new NScanDriver();

            context.HasProject(projectName);

            context.Add(RuleDemandingThat().Project(projectName).IndependentOfPackage(packageName));

            //WHEN
            context.PerformAnalysis();

            //THEN
            context.ReportShouldContain(
                ProjectIndependentOfMessage.ProjectIndependentOfPackage(projectName, packageName).Ok());
            context.ShouldIndicateSuccess();
        }
        public void ShouldReportFailureWhenProjectsHasSpecifiedPackageReferenceDirectly()
        {
            //GIVEN
            var projectName = Any.String();
            var packageName = Any.String();
            var context     = new NScanDriver();

            context.HasProject(projectName).WithPackages(packageName);

            context.Add(RuleDemandingThat().Project(projectName).IndependentOfPackage(packageName));

            //WHEN
            context.PerformAnalysis();

            //THEN
            context.ReportShouldContain(
                ProjectIndependentOfMessage.ProjectIndependentOfPackage(projectName, packageName).Error()
                .ViolationPath(projectName));
            context.ShouldIndicateFailure();
        }
Ejemplo n.º 5
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");
        }
Ejemplo n.º 6
0
        public void ShouldReportErrorWhenMultipleFilesOfSingleProjectAreInWrongNamespaceEvenThoughSomeAreInTheRightOne()
        {
            //GIVEN
            var context = new NScanDriver();

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

            //WHEN
            context.PerformAnalysis();

            //THEN
            context.ReportShouldContain(
                HasCorrectNamespacesMessage.HasCorrectNamespaces("*MyProject*").Error()
                .ExpectedNamespace("MyProject", "MyProject")
                .ButFoundIncorrectNamespaceFor("lol1.cs", "WrongNamespace")
                .ExpectedNamespace("MyProject", "MyProject")
                .ButFoundIncorrectNamespaceFor("lol2.cs", "WrongNamespace"));
            context.ReportShouldNotContainText("lol3");
        }