aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-server-common
diff options
context:
space:
mode:
authorMichal Duda <michal.duda@sonarsource.com>2020-12-09 20:13:25 +0100
committersonartech <sonartech@sonarsource.com>2020-12-22 20:09:35 +0000
commitc73de56d4b6ab4c9fdb34a32f5f740bed672b586 (patch)
treec41d4e4a511c7acfa40bb7b098cff6801ebdd77a /server/sonar-server-common
parent5141fc088089cdd155e8623e2d2f989e93c4fff4 (diff)
downloadsonarqube-c73de56d4b6ab4c9fdb34a32f5f740bed672b586.tar.gz
sonarqube-c73de56d4b6ab4c9fdb34a32f5f740bed672b586.zip
SONAR-13999 remove orgs webhook WS
Diffstat (limited to 'server/sonar-server-common')
-rw-r--r--server/sonar-server-common/src/main/java/org/sonar/server/organization/DefaultOrganizationProvider.java2
-rw-r--r--server/sonar-server-common/src/test/java/org/sonar/server/webhook/AsynchronousWebHooksImplTest.java16
-rw-r--r--server/sonar-server-common/src/test/java/org/sonar/server/webhook/SynchronousWebHooksImplTest.java55
3 files changed, 34 insertions, 39 deletions
diff --git a/server/sonar-server-common/src/main/java/org/sonar/server/organization/DefaultOrganizationProvider.java b/server/sonar-server-common/src/main/java/org/sonar/server/organization/DefaultOrganizationProvider.java
index ef38cbc769b..0e39bedb909 100644
--- a/server/sonar-server-common/src/main/java/org/sonar/server/organization/DefaultOrganizationProvider.java
+++ b/server/sonar-server-common/src/main/java/org/sonar/server/organization/DefaultOrganizationProvider.java
@@ -19,6 +19,8 @@
*/
package org.sonar.server.organization;
+//TODO remove
+@Deprecated
public interface DefaultOrganizationProvider {
/**
* @throws IllegalStateException if there is no default organization
diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/webhook/AsynchronousWebHooksImplTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/webhook/AsynchronousWebHooksImplTest.java
index 8e49efce690..40a7c770588 100644
--- a/server/sonar-server-common/src/test/java/org/sonar/server/webhook/AsynchronousWebHooksImplTest.java
+++ b/server/sonar-server-common/src/test/java/org/sonar/server/webhook/AsynchronousWebHooksImplTest.java
@@ -39,18 +39,18 @@ import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.verifyZeroInteractions;
+import static org.mockito.Mockito.verifyNoInteractions;
import static org.sonar.db.DbTester.create;
-import static org.sonar.db.webhook.WebhookTesting.newWebhook;
+import static org.sonar.db.webhook.WebhookTesting.newGlobalWebhook;
public class AsynchronousWebHooksImplTest {
- private System2 system2 = mock(System2.class);
+ private final System2 system2 = mock(System2.class);
@Rule
public DbTester db = create(system2);
- private WebhookDbTester webhookDbTester = db.webhooks();
- private ComponentDbTester componentDbTester = db.components();
+ private final WebhookDbTester webhookDbTester = db.webhooks();
+ private final ComponentDbTester componentDbTester = db.components();
private static final long NOW = 1_500_000_000_000L;
@@ -66,8 +66,8 @@ public class AsynchronousWebHooksImplTest {
OrganizationDto organizationDto = db.getDefaultOrganization();
ComponentDto project = componentDbTester.insertPrivateProject(componentDto -> componentDto.setOrganizationUuid(organizationDto.getUuid()));
- webhookDbTester.insert(newWebhook(organizationDto).setName("First").setUrl("http://url1"));
- webhookDbTester.insert(newWebhook(organizationDto).setName("Second").setUrl("http://url2"));
+ webhookDbTester.insert(newGlobalWebhook().setName("First").setUrl("http://url1"));
+ webhookDbTester.insert(newGlobalWebhook().setName("Second").setUrl("http://url2"));
caller.enqueueSuccess(NOW, 200, 1_234);
caller.enqueueFailure(NOW, new IOException("Fail to connect"));
@@ -75,7 +75,7 @@ public class AsynchronousWebHooksImplTest {
underTest.sendProjectAnalysisUpdate(new WebHooks.Analysis(project.uuid(), "1", "#1"), () -> mock, mock(LogStatistics.class));
assertThat(caller.countSent()).isZero();
- verifyZeroInteractions(deliveryStorage);
+ verifyNoInteractions(deliveryStorage);
asyncExecution.executeRecorded();
diff --git a/server/sonar-server-common/src/test/java/org/sonar/server/webhook/SynchronousWebHooksImplTest.java b/server/sonar-server-common/src/test/java/org/sonar/server/webhook/SynchronousWebHooksImplTest.java
index b4f52fd565b..0ef8b26e748 100644
--- a/server/sonar-server-common/src/test/java/org/sonar/server/webhook/SynchronousWebHooksImplTest.java
+++ b/server/sonar-server-common/src/test/java/org/sonar/server/webhook/SynchronousWebHooksImplTest.java
@@ -29,23 +29,21 @@ import org.sonar.db.DbClient;
import org.sonar.db.DbTester;
import org.sonar.db.component.ComponentDbTester;
import org.sonar.db.component.ComponentDto;
-import org.sonar.db.organization.OrganizationDto;
import org.sonar.db.project.ProjectDto;
import org.sonar.db.webhook.WebhookDbTester;
import org.sonar.server.async.AsyncExecution;
-import org.sonar.server.organization.DefaultOrganizationProvider;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.verifyNoMoreInteractions;
-import static org.mockito.Mockito.verifyZeroInteractions;
import static org.sonar.api.utils.log.LoggerLevel.DEBUG;
import static org.sonar.db.DbTester.create;
+import static org.sonar.db.webhook.WebhookTesting.newGlobalWebhook;
import static org.sonar.db.webhook.WebhookTesting.newWebhook;
-import static org.sonar.server.organization.TestDefaultOrganizationProvider.from;
public class SynchronousWebHooksImplTest {
@@ -56,12 +54,10 @@ public class SynchronousWebHooksImplTest {
@Rule
public DbTester db = create();
- private DbClient dbClient = db.getDbClient();
-
- private WebhookDbTester webhookDbTester = db.webhooks();
- private ComponentDbTester componentDbTester = db.components();
- private DefaultOrganizationProvider defaultOrganizationProvider = from(db);
+ private final DbClient dbClient = db.getDbClient();
+ private final WebhookDbTester webhookDbTester = db.webhooks();
+ private final ComponentDbTester componentDbTester = db.components();
private final TestWebhookCaller caller = new TestWebhookCaller();
private final WebhookDeliveryStorage deliveryStorage = mock(WebhookDeliveryStorage.class);
private final WebhookPayload mock = mock(WebhookPayload.class);
@@ -85,8 +81,7 @@ public class SynchronousWebHooksImplTest {
@Test
public void isEnabled_returns_true_if_one_valid_project_webhook() {
- String organizationUuid = defaultOrganizationProvider.get().getUuid();
- ProjectDto projectDto = componentDbTester.insertPrivateProjectDto().setOrganizationUuid(organizationUuid);
+ ProjectDto projectDto = componentDbTester.insertPrivateProjectDto();
webhookDbTester.insert(newWebhook(projectDto).setName("First").setUrl("http://url1"));
assertThat(underTest.isEnabled(projectDto)).isTrue();
@@ -94,33 +89,32 @@ public class SynchronousWebHooksImplTest {
@Test
public void do_nothing_if_no_webhooks() {
- ComponentDto componentDto = componentDbTester.insertPrivateProject().setOrganizationUuid(defaultOrganizationProvider.get().getUuid());
+ ComponentDto componentDto = componentDbTester.insertPrivateProject();
underTest.sendProjectAnalysisUpdate(new WebHooks.Analysis(componentDto.uuid(), "1", "#1"), () -> mock);
assertThat(caller.countSent()).isZero();
assertThat(logTester.logs(DEBUG)).isEmpty();
- verifyZeroInteractions(deliveryStorage);
+ verifyNoInteractions(deliveryStorage);
}
@Test
public void populates_log_statistics_even_if_no_webhooks() {
- ComponentDto componentDto = componentDbTester.insertPrivateProject().setOrganizationUuid(defaultOrganizationProvider.get().getUuid());
+ ComponentDto componentDto = componentDbTester.insertPrivateProject();
underTest.sendProjectAnalysisUpdate(new WebHooks.Analysis(componentDto.uuid(), "1", "#1"), () -> mock, taskStatistics);
assertThat(caller.countSent()).isZero();
assertThat(logTester.logs(DEBUG)).isEmpty();
- verifyZeroInteractions(deliveryStorage);
+ verifyNoInteractions(deliveryStorage);
verifyLogStatistics(0, 0);
}
@Test
public void send_global_webhooks() {
- OrganizationDto organizationDto = db.organizations().insert();
- ComponentDto componentDto = componentDbTester.insertPrivateProject(organizationDto);
- webhookDbTester.insert(newWebhook(organizationDto).setName("First").setUrl("http://url1"));
- webhookDbTester.insert(newWebhook(organizationDto).setName("Second").setUrl("http://url2"));
+ ComponentDto componentDto = componentDbTester.insertPrivateProject();
+ webhookDbTester.insert(newGlobalWebhook().setName("First").setUrl("http://url1"));
+ webhookDbTester.insert(newGlobalWebhook().setName("Second").setUrl("http://url2"));
caller.enqueueSuccess(NOW, 200, 1_234);
caller.enqueueFailure(NOW, new IOException("Fail to connect"));
@@ -136,8 +130,7 @@ public class SynchronousWebHooksImplTest {
@Test
public void send_project_webhooks() {
- String organizationUuid = defaultOrganizationProvider.get().getUuid();
- ProjectDto projectDto = componentDbTester.insertPrivateProjectDto().setOrganizationUuid(organizationUuid);
+ ProjectDto projectDto = componentDbTester.insertPrivateProjectDto();
webhookDbTester.insert(newWebhook(projectDto).setName("First").setUrl("http://url1"));
caller.enqueueSuccess(NOW, 200, 1_234);
@@ -152,13 +145,12 @@ public class SynchronousWebHooksImplTest {
@Test
public void send_global_and_project_webhooks() {
- OrganizationDto organizationDto = db.organizations().insert();
- ProjectDto projectDto = componentDbTester.insertPrivateProjectDto(organizationDto);
+ ProjectDto projectDto = componentDbTester.insertPrivateProjectDto();
webhookDbTester.insert(newWebhook(projectDto).setName("1First").setUrl("http://url1"));
webhookDbTester.insert(newWebhook(projectDto).setName("2Second").setUrl("http://url2"));
- webhookDbTester.insert(newWebhook(organizationDto).setName("3Third").setUrl("http://url3"));
- webhookDbTester.insert(newWebhook(organizationDto).setName("4Fourth").setUrl("http://url4"));
- webhookDbTester.insert(newWebhook(organizationDto).setName("5Fifth").setUrl("http://url5"));
+ webhookDbTester.insert(newGlobalWebhook().setName("3Third").setUrl("http://url3"));
+ webhookDbTester.insert(newGlobalWebhook().setName("4Fourth").setUrl("http://url4"));
+ webhookDbTester.insert(newGlobalWebhook().setName("5Fifth").setUrl("http://url5"));
caller.enqueueSuccess(NOW, 200, 1_234);
caller.enqueueFailure(NOW, new IOException("Fail to connect 1"));
caller.enqueueFailure(NOW, new IOException("Fail to connect 2"));
@@ -169,11 +161,12 @@ public class SynchronousWebHooksImplTest {
assertThat(caller.countSent()).isEqualTo(5);
List<String> debugLogs = logTester.logs(DEBUG);
- assertThat(debugLogs).contains("Sent webhook '1First' | url=http://url1 | time=1234ms | status=200");
- assertThat(debugLogs).contains("Failed to send webhook '2Second' | url=http://url2 | message=Fail to connect 1");
- assertThat(debugLogs).contains("Failed to send webhook '3Third' | url=http://url3 | message=Fail to connect 2");
- assertThat(debugLogs).contains("Sent webhook '4Fourth' | url=http://url4 | time=5678ms | status=200");
- assertThat(debugLogs).contains("Sent webhook '5Fifth' | url=http://url5 | time=9256ms | status=200");
+ assertThat(debugLogs)
+ .contains("Sent webhook '1First' | url=http://url1 | time=1234ms | status=200")
+ .contains("Failed to send webhook '2Second' | url=http://url2 | message=Fail to connect 1")
+ .contains("Failed to send webhook '3Third' | url=http://url3 | message=Fail to connect 2")
+ .contains("Sent webhook '4Fourth' | url=http://url4 | time=5678ms | status=200")
+ .contains("Sent webhook '5Fifth' | url=http://url5 | time=9256ms | status=200");
verify(deliveryStorage, times(5)).persist(any(WebhookDelivery.class));
verify(deliveryStorage).purge(projectDto.getUuid());
verifyLogStatistics(3, 2);