コード例 #1
0
        public void PostProc_ExecutionSucceedsWithErrorLogs()
        {
            // Arrange
            var context = new PostProcTestContext(TestContext);

            context.Config.SonarOutputDir               = Environment.CurrentDirectory;
            context.Config.SonarConfigDir               = Environment.CurrentDirectory;
            context.Config.SonarQubeHostUrl             = "http://sonarqube.com";
            context.Config.SonarScannerWorkingDirectory = Environment.CurrentDirectory;
            context.Scanner.ValueToReturn               = true;
            context.TfsProcessor.ValueToReturn          = true;
            context.Scanner.ErrorToLog = "Errors";

            // Act
            var success = Execute(context, true);

            // Assert
            success.Should().BeTrue("Expecting post-processor to have succeeded");

            context.Scanner.AssertExecuted();
            context.Scanner.SuppliedCommandLineArgs.Should().Equal(new string[] { "-Dsonar.scanAllFiles=true" }, "Unexpected command line args passed to the sonar-scanner");
            context.Logger.AssertErrorsLogged(1);
            context.Logger.AssertWarningsLogged(0);
            context.VerifyTargetsUninstaller();
        }
コード例 #2
0
        public void PostProc_ValidArgsPassedThrough()
        {
            // Arrange
            var context = new PostProcTestContext(TestContext);

            context.Config.HasBeginStepCommandLineCredentials = true;
            context.Config.SonarOutputDir               = Environment.CurrentDirectory;
            context.Config.SonarConfigDir               = Environment.CurrentDirectory;
            context.Config.SonarQubeHostUrl             = "http://sonarqube.com";
            context.Config.SonarScannerWorkingDirectory = Environment.CurrentDirectory;
            context.Scanner.ValueToReturn               = true;
            context.TfsProcessor.ValueToReturn          = true;

            var suppliedArgs = new string[]
            {
                "/d:sonar.jdbc.password=dbpwd",
                "/d:sonar.jdbc.username=dbuser",
                "/d:sonar.password=\"my pwd\"",
                "/d:sonar.login=login"
            };

            var expectedArgs = new string[]
            {
                "-Dsonar.jdbc.password=dbpwd",
                "-Dsonar.jdbc.username=dbuser",
                "-Dsonar.password=\"my pwd\"",
                "-Dsonar.login=login",
                "-Dsonar.scanAllFiles=true"
            };

            // Act
            var success = Execute(context, true, suppliedArgs);

            // Assert
            success.Should().BeTrue("Expecting post-processor to have succeeded");

            context.Scanner.AssertExecuted();
            context.Scanner.SuppliedCommandLineArgs.Should().Equal(expectedArgs, "Unexpected command line args passed to the sonar-scanner");
            context.Logger.AssertErrorsLogged(0);
            context.Logger.AssertWarningsLogged(0);
            context.VerifyTargetsUninstaller();
        }
コード例 #3
0
        public void PostProc_WhenSettingInFileButNoCommandLineArg_Fail()
        {
            // Arrange
            var context = new PostProcTestContext(TestContext);

            context.Config.HasBeginStepCommandLineCredentials = true;
            context.Config.SonarQubeHostUrl    = "http://sonarqube.com";
            context.Config.SonarQubeHostUrl    = "http://sonarqube.com";
            context.TfsProcessor.ValueToReturn = false;

            // Act
            var success = Execute(context, true, args: new string[0]);

            // Assert
            success.Should().BeFalse();
            context.Logger.AssertErrorLogged(CredentialsErrorMessage);
            context.TfsProcessor.AssertNotExecuted();
            context.Scanner.AssertNotExecuted();
            context.VerifyTargetsUninstaller();
        }
コード例 #4
0
        public void PostProc_FailsOnInvalidArgs()
        {
            // Arrange
            var context = new PostProcTestContext(TestContext);

            context.Config.SonarOutputDir               = Environment.CurrentDirectory;
            context.TfsProcessor.ValueToReturn          = false;
            context.Config.SonarScannerWorkingDirectory = Environment.CurrentDirectory;

            // Act
            var success = Execute(context, true, "/d:sonar.foo=bar");

            // Assert
            success.Should().BeFalse("Expecting post-processor to have failed");

            context.TfsProcessor.AssertNotExecuted();
            context.Scanner.AssertNotExecuted();
            context.Logger.AssertErrorsLogged(1);
            context.Logger.AssertWarningsLogged(0);
            context.VerifyTargetsUninstaller();
        }
コード例 #5
0
        public void PostProc_WhenNoSettingInFileAndCommandLineArg_Fail()
        {
            // Arrange
            var context = new PostProcTestContext(TestContext);

            context.Config.SonarOutputDir               = Environment.CurrentDirectory;
            context.Config.SonarQubeHostUrl             = "http://sonarqube.com";
            context.Config.SonarScannerWorkingDirectory = Environment.CurrentDirectory;
            context.Config.AdditionalConfig             = new List <ConfigSetting>();
            context.Scanner.ValueToReturn               = true;
            context.TfsProcessor.ValueToReturn          = false;

            // Act
            var success = Execute(context, true, args: "/d:sonar.login=foo");

            // Assert
            success.Should().BeFalse();
            context.Logger.AssertErrorLogged(CredentialsErrorMessage);
            context.TfsProcessor.AssertNotExecuted();
            context.Scanner.AssertNotExecuted();
            context.VerifyTargetsUninstaller();
        }
コード例 #6
0
        public void PostProc_NoProjectsToAnalyze_NoExecutionTriggered()
        {
            // Arrange
            var context = new PostProcTestContext(TestContext);

            context.Config.SonarOutputDir               = Environment.CurrentDirectory;
            context.Config.SonarConfigDir               = Environment.CurrentDirectory;
            context.Config.SonarQubeHostUrl             = "http://sonarqube.com";
            context.Config.SonarScannerWorkingDirectory = Environment.CurrentDirectory;
            context.Scanner.ValueToReturn               = true;
            context.TfsProcessor.ValueToReturn          = true;

            // Act
            var success = Execute_WithNoProject(context, true);

            // Assert
            success.Should().BeFalse("Expecting post-processor to have failed");
            context.TfsProcessor.AssertNotExecuted();
            context.Scanner.AssertNotExecuted();
            context.Logger.AssertErrorsLogged(0);
            context.Logger.AssertWarningsLogged(0);
            context.VerifyTargetsUninstaller();
        }