public async void function_http_trigger_should_return_401_if_SonarqubeSecretValidator_rejects_request() { // Arrange SetEnvironmentVariables(); var request = TestFactory.CreateHttpRequest(); var sonarqubeSecretValidator = new Mock <ISonarqubeSecretValidator>(); sonarqubeSecretValidator.Setup(x => x.IsValidSignature( request, It.IsAny <string>(), Environment.GetEnvironmentVariable(SonarqubeMSTeamsBridge.Setting_SonarqubeWebhookSecret)) ).Returns(false); var sonarqubeMSTeamsBridgeFunction = new SonarqubeMSTeamsBridge(null, sonarqubeSecretValidator.Object, null, null); ListLogger logger = (ListLogger)TestFactory.CreateLogger(LoggerTypes.List); // Act var response = (StatusCodeResult)await sonarqubeMSTeamsBridgeFunction.Run(request, logger); // Assert Assert.Equal(401, response.StatusCode); Assert.Contains($"Sonarqube secret http header is missing or not valid. Config setting {SonarqubeMSTeamsBridge.Setting_SonarqubeWebhookSecret} must match secret in Sonarqube Webhook header {SonarqubeSecretValidator.SonarqubeAuthSignatureHeaderName}.", logger.Logs); }
public async void function_http_trigger_should_return_500_if_teamswebhook_config_is_missing() { // Arrange SetEnvironmentVariables(teamsWebhookUrl: null); var request = TestFactory.CreateHttpRequest(); var sonarqubeMSTeamsBridgeFunction = new SonarqubeMSTeamsBridge(null, null, null, null); ListLogger logger = (ListLogger)TestFactory.CreateLogger(LoggerTypes.List); // Act var response = (StatusCodeResult)await sonarqubeMSTeamsBridgeFunction.Run(request, logger); // Assert Assert.Equal(500, response.StatusCode); Assert.Contains($"Required setting {SonarqubeMSTeamsBridge.Setting_TeamsWebhookUrl} is missing.", logger.Logs); }
public async void function_http_trigger_should_return_200_if_valid_request_and_message_was_sent_to_msteams() { // Arrange SetEnvironmentVariables(); var request = TestFactory.CreateHttpRequest(); var sonarqubeSecretValidator = new Mock <ISonarqubeSecretValidator>(); sonarqubeSecretValidator.Setup(x => x.IsValidSignature( request, It.IsAny <string>(), Environment.GetEnvironmentVariable(SonarqubeMSTeamsBridge.Setting_SonarqubeWebhookSecret)) ).Returns(true); var sonarqubeToMSTeamsFilter = new Mock <ISonarqubeToMSTeamsFilter>(); sonarqubeToMSTeamsFilter.Setup(x => x.ShouldProcess( It.IsAny <object>(), It.IsAny <string>()) ).Returns(true); var sonarqubeToMSTeamsConverterMock = new Mock <ISonarqubeToMSTeamsConverter>(); sonarqubeToMSTeamsConverterMock.Setup(x => x.ToComplexCard( It.IsAny <object>(), It.IsAny <string>()) ).Returns(new MSTeamsComplexCard()); var httpClient = new HttpClient(new VoidOkHttpMessageHandler()); var sonarqubeMSTeamsBridgeFunction = new SonarqubeMSTeamsBridge(httpClient, sonarqubeSecretValidator.Object, sonarqubeToMSTeamsConverterMock.Object, sonarqubeToMSTeamsFilter.Object); ListLogger logger = (ListLogger)TestFactory.CreateLogger(LoggerTypes.List); // Act var response = (StatusCodeResult)await sonarqubeMSTeamsBridgeFunction.Run(request, logger); // Assert Assert.Equal(200, response.StatusCode); }