Exemple #1
0
        public void SonarProjectPropertiesValidatorTest_SucceedAndSkipInvalidProjects()
        {
            var folder = TestUtils.CreateTestSpecificFolder(TestContext);

            var p1 = MockProject(folder, "Project1");
            var p2 = MockProject(folder, "Project2");
            var p3 = MockProject(folder, "Project3");
            var p4 = MockProject(folder, "Project4");
            var p5 = MockProject(folder, "Project5");

            File.Create(Path.Combine(Path.GetDirectoryName(p2.FullPath), "sonar-project.properties"));
            File.Create(Path.Combine(Path.GetDirectoryName(p3.FullPath), "sonar-project.properties"));
            File.Create(Path.Combine(Path.GetDirectoryName(p4.FullPath), "sonar-project.properties"));
            File.Create(Path.Combine(Path.GetDirectoryName(p5.FullPath), "sonar-project.properties"));

            var projects = new Dictionary <ProjectInfo, ProjectInfoValidity>();

            projects[p1] = ProjectInfoValidity.Valid;
            projects[p2] = ProjectInfoValidity.DuplicateGuid;
            projects[p3] = ProjectInfoValidity.ExcludeFlagSet;
            projects[p4] = ProjectInfoValidity.InvalidGuid;
            projects[p5] = ProjectInfoValidity.NoFilesToAnalyze;

            bool called = false;

            SonarProjectPropertiesValidator.Validate(
                folder, projects,
                onValid: () => called = true,
                onInvalid: (paths) =>
            {
                Assert.Fail("Expected to succeed");
            });
            Assert.IsTrue(called, "Callback not called");
        }
Exemple #2
0
        public void SonarProjectPropertiesValidatorTest_FailProjectDirectory()
        {
            var folder = TestUtils.CreateTestSpecificFolder(TestContext);

            var p1 = MockProject(folder, "Project1");
            var p2 = MockProject(folder, "Project2");
            var p3 = MockProject(folder, "Project3");

            File.Create(Path.Combine(Path.GetDirectoryName(p1.FullPath), "sonar-project.properties"));
            File.Create(Path.Combine(Path.GetDirectoryName(p3.FullPath), "sonar-project.properties"));

            var projects = new Dictionary <ProjectInfo, ProjectInfoValidity>();

            projects[p1] = ProjectInfoValidity.Valid;
            projects[p2] = ProjectInfoValidity.Valid;
            projects[p3] = ProjectInfoValidity.Valid;

            bool called = false;

            SonarProjectPropertiesValidator.Validate(
                folder, projects,
                onValid: () => Assert.Fail("expected validation to fail"),
                onInvalid: (paths) =>
            {
                called = true;
                Assert.AreEqual(2, paths.Count);
                Assert.AreEqual(Path.GetDirectoryName(p1.FullPath), paths[0]);
                Assert.AreEqual(Path.GetDirectoryName(p3.FullPath), paths[1]);
            });
            Assert.IsTrue(called, "Callback not called");
        }
Exemple #3
0
        public void SonarProjectPropertiesValidatorTest_FailCurrentDirectory()
        {
            var folder = TestUtils.CreateTestSpecificFolderWithSubPaths(TestContext);

            File.Create(Path.Combine(folder, "sonar-project.properties"));

            var underTest = new SonarProjectPropertiesValidator();

            var result = underTest.AreExistingSonarPropertiesFilesPresent(folder, new List <ProjectData>(), out var expectedInvalidFolders);

            Assert.IsTrue(result);

            Assert.AreEqual(1, expectedInvalidFolders.Count());
            Assert.AreEqual(folder, expectedInvalidFolders.First());
        }
Exemple #4
0
        public void SonarProjectPropertiesValidatorTest_SucceedAndSkipInvalidProjects()
        {
            var folder = TestUtils.CreateTestSpecificFolder(TestContext);

            var p1 = new ProjectData(MockProject(folder, "Project1"))
            {
                Status = ProjectInfoValidity.Valid
            };
            var p2 = new ProjectData(MockProject(folder, "Project3"))
            {
                Status = ProjectInfoValidity.ExcludeFlagSet
            };
            var p3 = new ProjectData(MockProject(folder, "Project4"))
            {
                Status = ProjectInfoValidity.InvalidGuid
            };
            var p4 = new ProjectData(MockProject(folder, "Project5"))
            {
                Status = ProjectInfoValidity.NoFilesToAnalyze
            };

            File.Create(Path.Combine(Path.GetDirectoryName(p2.Project.FullPath), "sonar-project.properties"));
            File.Create(Path.Combine(Path.GetDirectoryName(p3.Project.FullPath), "sonar-project.properties"));
            File.Create(Path.Combine(Path.GetDirectoryName(p4.Project.FullPath), "sonar-project.properties"));

            var projects = new List <ProjectData>
            {
                p1,
                p2,
                p3,
                p4,
            };

            var called = false;

            SonarProjectPropertiesValidator.Validate(
                folder, projects,
                onValid: () => called = true,
                onInvalid: (paths) =>
            {
                Assert.Fail("Expected to succeed");
            });
            Assert.IsTrue(called, "Callback not called");
        }
Exemple #5
0
        public void SonarProjectPropertiesValidatorTest_FailCurrentDirectory()
        {
            var folder = TestUtils.CreateTestSpecificFolder(TestContext);

            File.Create(Path.Combine(folder, "sonar-project.properties"));

            var called = false;

            SonarProjectPropertiesValidator.Validate(
                folder, new List <ProjectData>(),
                onValid: () => Assert.Fail("expected validation to fail"),
                onInvalid: (paths) =>
            {
                called = true;
                Assert.AreEqual(1, paths.Count);
                Assert.AreEqual(folder, paths[0]);
            });
            Assert.IsTrue(called, "Callback not called");
        }
Exemple #6
0
        public void SonarProjectPropertiesValidatorTest_FailProjectDirectory()
        {
            var folder = TestUtils.CreateTestSpecificFolder(TestContext);

            var p1 = new ProjectData(MockProject(folder, "Project1"))
            {
                Status = ProjectInfoValidity.Valid
            };
            var p2 = new ProjectData(MockProject(folder, "Project2"))
            {
                Status = ProjectInfoValidity.Valid
            };
            var p3 = new ProjectData(MockProject(folder, "Project3"))
            {
                Status = ProjectInfoValidity.Valid
            };

            File.Create(Path.Combine(Path.GetDirectoryName(p1.Project.FullPath), "sonar-project.properties"));
            File.Create(Path.Combine(Path.GetDirectoryName(p3.Project.FullPath), "sonar-project.properties"));

            var projects = new List <ProjectData>
            {
                p1,
                p2,
                p3,
            };

            var called = false;

            SonarProjectPropertiesValidator.Validate(
                folder, projects,
                onValid: () => Assert.Fail("expected validation to fail"),
                onInvalid: (paths) =>
            {
                called = true;
                Assert.AreEqual(2, paths.Count);
                Assert.AreEqual(Path.GetDirectoryName(p1.Project.FullPath), paths[0]);
                Assert.AreEqual(Path.GetDirectoryName(p3.Project.FullPath), paths[1]);
            });
            Assert.IsTrue(called, "Callback not called");
        }
Exemple #7
0
        public void SonarProjectPropertiesValidatorTest_SucceedAndSkipInvalidProjects()
        {
            var folder = TestUtils.CreateTestSpecificFolderWithSubPaths(TestContext);

            var p1 = new ProjectData(MockProject(folder, "Project1"))
            {
                Status = ProjectInfoValidity.Valid
            };
            var p2 = new ProjectData(MockProject(folder, "Project3"))
            {
                Status = ProjectInfoValidity.ExcludeFlagSet
            };
            var p3 = new ProjectData(MockProject(folder, "Project4"))
            {
                Status = ProjectInfoValidity.InvalidGuid
            };
            var p4 = new ProjectData(MockProject(folder, "Project5"))
            {
                Status = ProjectInfoValidity.NoFilesToAnalyze
            };

            File.Create(Path.Combine(Path.GetDirectoryName(p2.Project.FullPath), "sonar-project.properties"));
            File.Create(Path.Combine(Path.GetDirectoryName(p3.Project.FullPath), "sonar-project.properties"));
            File.Create(Path.Combine(Path.GetDirectoryName(p4.Project.FullPath), "sonar-project.properties"));

            var projects = new List <ProjectData>
            {
                p1,
                p2,
                p3,
                p4,
            };

            var underTest = new SonarProjectPropertiesValidator();

            var result = underTest.AreExistingSonarPropertiesFilesPresent(folder, projects, out var expectedInvalidFolders);

            Assert.IsFalse(result);
            Assert.AreEqual(0, expectedInvalidFolders.Count());
        }
Exemple #8
0
        public void SonarProjectPropertiesValidatorTest_FailProjectDirectory()
        {
            var folder = TestUtils.CreateTestSpecificFolderWithSubPaths(TestContext);

            var p1 = new ProjectData(MockProject(folder, "Project1"))
            {
                Status = ProjectInfoValidity.Valid
            };
            var p2 = new ProjectData(MockProject(folder, "Project2"))
            {
                Status = ProjectInfoValidity.Valid
            };
            var p3 = new ProjectData(MockProject(folder, "Project3"))
            {
                Status = ProjectInfoValidity.Valid
            };

            File.Create(Path.Combine(Path.GetDirectoryName(p1.Project.FullPath), "sonar-project.properties"));
            File.Create(Path.Combine(Path.GetDirectoryName(p3.Project.FullPath), "sonar-project.properties"));

            var projects = new List <ProjectData>
            {
                p1,
                p2,
                p3,
            };

            var underTest = new SonarProjectPropertiesValidator();

            var result = underTest.AreExistingSonarPropertiesFilesPresent(folder, projects, out var expectedInvalidFolders);

            Assert.IsTrue(result);

            Assert.AreEqual(2, expectedInvalidFolders.Count());
            Assert.AreEqual(Path.GetDirectoryName(p1.Project.FullPath), expectedInvalidFolders.ElementAt(0));
            Assert.AreEqual(Path.GetDirectoryName(p3.Project.FullPath), expectedInvalidFolders.ElementAt(1));
        }