Beispiel #1
0
        public async Task GetAllProjectsAsync_WhenOrganizationIsSpecified_ReturnsExpectedResult()
        {
            // Arrange
            var successResponse = new HttpResponseMessage(HttpStatusCode.OK);
            var client          = GetMockSqClientWithCredentialAndVersion("5.6");

            client
            .SetupSequence(x => x.GetComponentsSearchProjectsAsync(
                               It.Is <ComponentRequest>(c => c.OrganizationKey == "org"),
                               It.IsAny <CancellationToken>()))
            .ReturnsAsync(Result.Ok(new[] { new ComponentResponse {
                                                Key = "key", Name = "name"
                                            } }))
            .ReturnsAsync(Result.Ok(new ComponentResponse[0]));

            var service = new SonarQubeService(WrapInMockFactory(client));
            await service.ConnectAsync(new ConnectionInformation(new Uri("http://mysq.com")), CancellationToken.None);

            // Act
            var result = await service.GetAllProjectsAsync("org", CancellationToken.None);

            // Assert
            client.VerifyAll();
            result.Should().NotBeNull();
            result.Should().HaveCount(1);
            result[0].Key.Should().Be("key");
            result[0].Name.Should().Be("name");
        }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        public async Task GetAllProjectsAsync_WhenNoOrganizationIsSpecified_ReturnsExpectedResult()
        {
            // Arrange
            var client = GetMockSqClientWithCredentialAndVersion("5.6");

            client
            .Setup(x => x.GetProjectsAsync(It.IsAny <CancellationToken>()))
            .ReturnsAsync(Result.Ok(new[] { new ProjectResponse {
                                                Key = "key", Name = "name"
                                            } }));

            var service = new SonarQubeService(WrapInMockFactory(client));
            await service.ConnectAsync(new ConnectionInformation(new Uri("http://mysq.com")), CancellationToken.None);

            // Act
            var result = await service.GetAllProjectsAsync(null, CancellationToken.None);

            // Assert
            client.VerifyAll();
            result.Should().NotBeNull();
            result.Should().HaveCount(1);
            result[0].Key.Should().Be("key");
            result[0].Name.Should().Be("name");
        }