public void ThrowWhenNotConnected() { // Arrange var client = new Mock <ISonarQubeClient>(); var sqService = new SonarQubeService(WrapInMockFactory(client)); // Act & Assert AssertExceptionThrownWhenNotConnected(() => sqService.GetAllOrganizationsAsync(CancellationToken.None)); AssertExceptionThrownWhenNotConnected(() => sqService.GetAllPluginsAsync(CancellationToken.None)); AssertExceptionThrownWhenNotConnected(() => sqService.GetAllProjectsAsync("organizationKey", CancellationToken.None)); AssertExceptionThrownWhenNotConnected(() => sqService.GetAllPropertiesAsync(CancellationToken.None)); AssertExceptionThrownWhenNotConnected(() => { sqService.GetProjectDashboardUrl("projectKey"); return(Task.Delay(0)); }); AssertExceptionThrownWhenNotConnected(() => sqService.GetQualityProfileAsync("projectKey", "some org", SonarQubeLanguage.CSharp, CancellationToken.None)); AssertExceptionThrownWhenNotConnected(() => sqService.GetRoslynExportProfileAsync("qualityProfileName", "some org", SonarQubeLanguage.CSharp, CancellationToken.None)); AssertExceptionThrownWhenNotConnected(() => sqService.GetNotificationEventsAsync("projectKey", DateTimeOffset.Now, CancellationToken.None)); }
public async Task GetQualityProfileAsync_WhenOnlyOneProfile_ReturnsExpectedQualityProfile() { // Arrange var client = GetMockSqClientWithCredentialAndVersion("0.0"); client.Setup(x => x.GetQualityProfilesAsync(It.IsAny <QualityProfileRequest>(), It.IsAny <CancellationToken>())) .ReturnsAsync(new Result <QualityProfileResponse[]>(new HttpResponseMessage(), new[] { new QualityProfileResponse { Key = "QP_KEY", Language = "cs" } })); client.Setup(x => x.GetQualityProfileChangeLogAsync(It.IsAny <QualityProfileChangeLogRequest>(), It.IsAny <CancellationToken>())) .ReturnsAsync(new Result <QualityProfileChangeLogResponse>(new HttpResponseMessage(), new QualityProfileChangeLogResponse { Events = new[] { new QualityProfileChangeLogEventResponse { Date = DateTime.MaxValue } } })); var service = new SonarQubeService(WrapInMockFactory(client)); await service.ConnectAsync(new ConnectionInformation(new Uri("http://mysq.com")), CancellationToken.None); // Act var result = await service.GetQualityProfileAsync("PROJECT_KEY", SonarQubeLanguage.CSharp, CancellationToken.None); // Assert client.Verify(x => x.GetQualityProfilesAsync(It.IsAny <QualityProfileRequest>(), It.IsAny <CancellationToken>()), Times.Once); client.Verify(x => x.GetQualityProfileChangeLogAsync(It.IsAny <QualityProfileChangeLogRequest>(), It.IsAny <CancellationToken>()), Times.Once); result.Key.Should().Be("QP_KEY"); result.Language.Should().Be("cs"); result.TimeStamp.Should().Be(DateTime.MaxValue); }
public async Task GetQualityProfileAsync_WhenError404_CallsAgainWithNoProjectKey() { // Arrange var client = GetMockSqClientWithCredentialAndVersion("0.0"); client .SetupSequence(x => x.GetQualityProfilesAsync(It.IsAny <QualityProfileRequest>(), It.IsAny <CancellationToken>())) .ReturnsAsync(Result.NotFound(new QualityProfileResponse[0])) .ReturnsAsync(Result.Ok(new[] { new QualityProfileResponse { Key = "QP_KEY", Language = "cs" } })); client .Setup(x => x.GetQualityProfileChangeLogAsync(It.IsAny <QualityProfileChangeLogRequest>(), It.IsAny <CancellationToken>())) .ReturnsAsync(Result.Ok(new QualityProfileChangeLogResponse { Events = new[] { new QualityProfileChangeLogEventResponse { Date = DateTime.MaxValue } } })); var service = new SonarQubeService(WrapInMockFactory(client)); await service.ConnectAsync(new ConnectionInformation(new Uri("http://mysq.com")), CancellationToken.None); // Act var result = await service.GetQualityProfileAsync("PROJECT_KEY", "ORG_KEY", SonarQubeLanguage.CSharp, CancellationToken.None); // Assert client.Verify(x => x.GetQualityProfilesAsync( // Defaults is set to true in the client It.Is <QualityProfileRequest>(r => r.Defaults == null && r.ProjectKey == null && r.OrganizationKey == "ORG_KEY"), It.IsAny <CancellationToken>()), Times.Once); client.Verify(x => x.GetQualityProfilesAsync( It.Is <QualityProfileRequest>(r => r.Defaults == null && r.ProjectKey == "PROJECT_KEY" && r.OrganizationKey == "ORG_KEY"), It.IsAny <CancellationToken>()), Times.Once); client.Verify(x => x.GetQualityProfileChangeLogAsync(It.IsAny <QualityProfileChangeLogRequest>(), It.IsAny <CancellationToken>()), Times.Once); result.Key.Should().Be("QP_KEY"); result.Language.Should().Be("cs"); result.TimeStamp.Should().Be(DateTime.MaxValue); }