From 91eb7e0934f640c89f1c5ea4c37338030b368006 Mon Sep 17 00:00:00 2001 From: Barry McDuling Date: Tue, 6 Jul 2021 13:21:21 -0700 Subject: [PATCH] Ensuring test SystemHooks are removed if tests fail, adding commentary/todo to address GitLab issue at future date --- .../org/gitlab4j/api/TestSystemHooksApi.java | 52 ++++++++++++------- 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/src/test/java/org/gitlab4j/api/TestSystemHooksApi.java b/src/test/java/org/gitlab4j/api/TestSystemHooksApi.java index 7a3e10434..69b931f4e 100644 --- a/src/test/java/org/gitlab4j/api/TestSystemHooksApi.java +++ b/src/test/java/org/gitlab4j/api/TestSystemHooksApi.java @@ -59,15 +59,23 @@ public void beforeMethod() { public void testAddSystemHook() throws GitLabApiException { SystemHook hook = gitLabApi.getSystemHooksApi().addSystemHook(TEST_HOOK_URL, TEST_SECRET_TOKEN, true, false, true); - assertNotNull(hook); - assertEquals(TEST_HOOK_URL, hook.getUrl()); - assertTrue(hook.getPushEvents()); - assertFalse(hook.getTagPushEvents()); - assertFalse(hook.getMergeRequestsEvents()); - assertTrue(hook.getRepositoryUpdateEvents()); - assertTrue(hook.getEnableSslVerification()); - - gitLabApi.getSystemHooksApi().deleteSystemHook(hook); + try { + assertNotNull(hook); + assertEquals(TEST_HOOK_URL, hook.getUrl()); + assertTrue(hook.getPushEvents()); + assertFalse(hook.getTagPushEvents()); + assertFalse(hook.getMergeRequestsEvents()); + + // TODO: Attribute "repository_update_events" is not being honored by GitLab API as per issue + // https://gitlab.com/gitlab-org/gitlab/-/issues/335129 + // Revisit and update this test if/when the GitLab API/documentation is fixed + assertTrue(hook.getRepositoryUpdateEvents()); + + assertTrue(hook.getEnableSslVerification()); + } finally { + // Ensure we remove the hook we added even if we had failures + gitLabApi.getSystemHooksApi().deleteSystemHook(hook); + } hook.withPushEvents(false) .withTagPushEvents(true) @@ -76,15 +84,23 @@ public void testAddSystemHook() throws GitLabApiException { .withEnableSslVerification(false); SystemHook updatedHook = gitLabApi.getSystemHooksApi().addSystemHook(TEST_HOOK_URL, TEST_SECRET_TOKEN, hook); - assertNotNull(updatedHook); - assertEquals(TEST_HOOK_URL, updatedHook.getUrl()); - assertFalse(hook.getPushEvents()); - assertTrue(hook.getTagPushEvents()); - assertTrue(hook.getMergeRequestsEvents()); - assertFalse(hook.getRepositoryUpdateEvents()); - assertFalse(hook.getEnableSslVerification()); - - gitLabApi.getSystemHooksApi().deleteSystemHook(updatedHook); + try { + assertNotNull(updatedHook); + assertEquals(TEST_HOOK_URL, updatedHook.getUrl()); + assertFalse(updatedHook.getPushEvents()); + assertTrue(updatedHook.getTagPushEvents()); + assertTrue(updatedHook.getMergeRequestsEvents()); + + // TODO: Attribute "repository_update_events" is not being honored by GitLab API as per issue + // https://gitlab.com/gitlab-org/gitlab/-/issues/335129 + // Revisit and update this test if/when the GitLab API/documentation is fixed + assertTrue(updatedHook.getRepositoryUpdateEvents()); + + assertFalse(updatedHook.getEnableSslVerification()); + } finally { + // Ensure we remove the hook we added even if we had failures + gitLabApi.getSystemHooksApi().deleteSystemHook(updatedHook); + } }