From 87e0a99da4e4ed8c563f0126f69a41e05f5b422d Mon Sep 17 00:00:00 2001 From: JunRock Date: Tue, 20 May 2025 12:54:14 +0900 Subject: [PATCH 1/2] =?UTF-8?q?refactor=20:=20when=EC=A0=88=EB=A1=9C=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reposerviceimpl/WebHookProcessor.kt | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/main/kotlin/io/junseok/todeveloperdo/oauth/git/service/reposerviceimpl/WebHookProcessor.kt b/src/main/kotlin/io/junseok/todeveloperdo/oauth/git/service/reposerviceimpl/WebHookProcessor.kt index 591b566..c777652 100644 --- a/src/main/kotlin/io/junseok/todeveloperdo/oauth/git/service/reposerviceimpl/WebHookProcessor.kt +++ b/src/main/kotlin/io/junseok/todeveloperdo/oauth/git/service/reposerviceimpl/WebHookProcessor.kt @@ -17,15 +17,18 @@ class WebHookProcessor( if (event == GitHubService.REPOSITORY) { val action = payload["action"] as String - if (action == RENAMED_REPO_ACTION) { - val payloadResponse = payloadCreator.create(payload) - val member = memberReader.findByGitUserName(payloadResponse.username) - memberUpdater.updateMemberRepo(payloadResponse.newRepoName, member) - } - if (action == DELETE_REPO_ACTION) { - val payloadResponse = payloadCreator.create(payload) - val member = memberReader.findByGitUserName(payloadResponse.username) - memberUpdater.removeMemberRepo(member) + when (action) { + RENAMED_REPO_ACTION -> { + val payloadResponse = payloadCreator.create(payload) + val member = memberReader.findByGitUserName(payloadResponse.username) + memberUpdater.updateMemberRepo(payloadResponse.newRepoName, member) + } + + DELETE_REPO_ACTION -> { + val payloadResponse = payloadCreator.create(payload) + val member = memberReader.findByGitUserName(payloadResponse.username) + memberUpdater.removeMemberRepo(member) + } } } } From faa2bdc1d5bb6993eaeabf5b4292259c6d384ba6 Mon Sep 17 00:00:00 2001 From: JunRock Date: Tue, 20 May 2025 12:54:29 +0900 Subject: [PATCH 2/2] =?UTF-8?q?test=20:=20testcase=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../reposerviceimpl/WebHookProcessorTest.kt | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/test/kotlin/io/junseok/todeveloperdo/oauth/git/service/reposerviceimpl/WebHookProcessorTest.kt b/src/test/kotlin/io/junseok/todeveloperdo/oauth/git/service/reposerviceimpl/WebHookProcessorTest.kt index fd5eb94..3ab81b1 100644 --- a/src/test/kotlin/io/junseok/todeveloperdo/oauth/git/service/reposerviceimpl/WebHookProcessorTest.kt +++ b/src/test/kotlin/io/junseok/todeveloperdo/oauth/git/service/reposerviceimpl/WebHookProcessorTest.kt @@ -97,7 +97,23 @@ class WebHookProcessorTest : FunSpec({ verify(exactly = 0) { memberReader.findByGitUserName(member.gitHubUsername!!) } verify(exactly = 0) { memberUpdater.removeMemberRepo(member) } } - + test("repository 이벤트인데 action이 RENAMED, DELETE가 아니면 아무 처리도 하지 않는다") { + val payload = mapOf( + "action" to "other-action", + "repository" to mapOf( + "name" to "some-repo", + "owner" to mapOf("login" to "username") + ) + ) + + webHookProcessor.process(payload, REPOSITORY) + + verify(exactly = 0) { payloadCreator.create(any()) } + verify(exactly = 0) { memberReader.findByGitUserName(any()) } + verify(exactly = 0) { memberUpdater.updateMemberRepo(any(), any()) } + verify(exactly = 0) { memberUpdater.removeMemberRepo(any()) } + } + }) fun createPayloadResponse() = PayloadResponse(