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) + } } } } 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(