Run event subscription destination tests randomly. (#16883)

This commit is contained in:
Siddhant 2024-07-02 18:38:06 +05:30 committed by GitHub
parent 028e5dc1e2
commit 3cb6c85194
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 47 additions and 44 deletions

View File

@ -381,9 +381,11 @@ public abstract class EntityResourceTest<T extends EntityInterface, K extends Cr
// Run webhook related tests randomly. This will ensure these tests are not run for every entity
// evey time junit tests are run to save time. But over the course of development of a release,
// when tests are run enough times, the webhook tests are run for all the entities.
public boolean runWebhookTests = new Random().nextBoolean();
public boolean runSlackTests = new Random().nextBoolean();
public boolean runMSTeamsTests = new Random().nextBoolean();
private static final int RUN_WEBHOOK_TEST = 0;
private static final int RUN_SLACK_TEST = 1;
private static final int RUN_MS_TEAMS_TEST = 2;
public static boolean EVENT_SUBSCRIPTION_TEST_CONTROL_FLAG = true;
private static int selectedTestCategory = new Random().nextInt(3);
protected boolean supportsSearchIndex = false;
@ -455,47 +457,50 @@ public abstract class EntityResourceTest<T extends EntityInterface, K extends Cr
new BotResourceTest().setupBots();
new QueryResourceTest().setupQuery(test);
if (runWebhookTests) {
webhookCallbackResource.clearEvents();
EventSubscriptionResourceTest alertResourceTest = new EventSubscriptionResourceTest();
alertResourceTest.startWebhookSubscription();
alertResourceTest.startWebhookEntitySubscriptions(entityType);
}
if (runSlackTests) {
EventSubscriptionResourceTest alertResourceTest = new EventSubscriptionResourceTest();
slackCallbackResource.clearEvents();
alertResourceTest.startSlackSubscription();
alertResourceTest.startSlackEntitySubscriptions(entityType);
}
if (runMSTeamsTests) {
EventSubscriptionResourceTest alertResourceTest = new EventSubscriptionResourceTest();
teamsCallbackResource.clearEvents();
alertResourceTest.startMSTeamsSubscription();
alertResourceTest.startMSTeamsEntitySubscription(entityType);
if (EVENT_SUBSCRIPTION_TEST_CONTROL_FLAG) {
switch (selectedTestCategory) {
case RUN_WEBHOOK_TEST:
webhookCallbackResource.clearEvents();
EventSubscriptionResourceTest webhookTest = new EventSubscriptionResourceTest();
webhookTest.startWebhookSubscription();
webhookTest.startWebhookEntitySubscriptions(entityType);
break;
case RUN_SLACK_TEST:
slackCallbackResource.clearEvents();
EventSubscriptionResourceTest slackTest = new EventSubscriptionResourceTest();
slackTest.startSlackSubscription();
slackTest.startSlackEntitySubscriptions(entityType);
break;
case RUN_MS_TEAMS_TEST:
teamsCallbackResource.clearEvents();
EventSubscriptionResourceTest msTeamsTest = new EventSubscriptionResourceTest();
msTeamsTest.startMSTeamsSubscription();
msTeamsTest.startMSTeamsEntitySubscription(entityType);
break;
}
}
}
@AfterAll
public void afterAllTests() throws Exception {
if (runWebhookTests) {
EventSubscriptionResourceTest alertResourceTest = new EventSubscriptionResourceTest();
alertResourceTest.validateWebhookEvents();
alertResourceTest.validateWebhookEntityEvents(entityType);
}
if (runSlackTests) {
EventSubscriptionResourceTest alertResourceTest = new EventSubscriptionResourceTest();
alertResourceTest.validateSlackEvents();
alertResourceTest.validateSlackEntityEvents(entityType);
}
if (runMSTeamsTests) {
EventSubscriptionResourceTest alertResourceTest = new EventSubscriptionResourceTest();
alertResourceTest.validateMSTeamsEvents();
alertResourceTest.validateMSTeamsEntityEvents(entityType);
if (EVENT_SUBSCRIPTION_TEST_CONTROL_FLAG) {
switch (selectedTestCategory) {
case RUN_WEBHOOK_TEST:
EventSubscriptionResourceTest webhookTest = new EventSubscriptionResourceTest();
webhookTest.validateWebhookEvents();
webhookTest.validateWebhookEntityEvents(entityType);
break;
case RUN_SLACK_TEST:
EventSubscriptionResourceTest slackTest = new EventSubscriptionResourceTest();
slackTest.validateSlackEvents();
slackTest.validateSlackEntityEvents(entityType);
break;
case RUN_MS_TEAMS_TEST:
EventSubscriptionResourceTest msTeamsTest = new EventSubscriptionResourceTest();
msTeamsTest.validateMSTeamsEvents();
msTeamsTest.validateMSTeamsEntityEvents(entityType);
break;
}
}
delete_recursiveTest();
}
@ -2967,7 +2972,7 @@ public abstract class EntityResourceTest<T extends EntityInterface, K extends Cr
ChangeDescription expectedChangeDescription,
Map<String, String> authHeaders)
throws IOException {
if (!runWebhookTests && !runSlackTests && !runMSTeamsTests) {
if (!EVENT_SUBSCRIPTION_TEST_CONTROL_FLAG) {
return;
}
validateChangeEvents(
@ -3111,7 +3116,7 @@ public abstract class EntityResourceTest<T extends EntityInterface, K extends Cr
EventType expectedEventType,
Double expectedVersion,
Map<String, String> authHeaders) {
if (!runWebhookTests && !runSlackTests && !runMSTeamsTests) {
if (!EVENT_SUBSCRIPTION_TEST_CONTROL_FLAG) {
return;
}
String updatedBy = SecurityUtil.getPrincipalName(authHeaders);

View File

@ -53,9 +53,7 @@ public class QueryResourceTest extends EntityResourceTest<Query, CreateQuery> {
super(
Entity.QUERY, Query.class, QueryResource.QueryList.class, "queries", QueryResource.FIELDS);
supportsSearchIndex = true;
runWebhookTests = false;
runSlackTests = false;
runMSTeamsTests = false;
EVENT_SUBSCRIPTION_TEST_CONTROL_FLAG = false;
}
@BeforeAll