diff --git a/src/test/kotlin/kr/co/vividnext/sodalive/admin/partner/agent/assignment/AdminAgentCreatorServiceTest.kt b/src/test/kotlin/kr/co/vividnext/sodalive/admin/partner/agent/assignment/AdminAgentCreatorServiceTest.kt index ab178c81..2881cbeb 100644 --- a/src/test/kotlin/kr/co/vividnext/sodalive/admin/partner/agent/assignment/AdminAgentCreatorServiceTest.kt +++ b/src/test/kotlin/kr/co/vividnext/sodalive/admin/partner/agent/assignment/AdminAgentCreatorServiceTest.kt @@ -59,6 +59,24 @@ class AdminAgentCreatorServiceTest { assertEquals(null, relationCaptor.value.unassignedAt) } + @Test + @DisplayName("동일한 회원을 에이전트와 크리에이터로 동시에 소속 지정할 수 없다") + fun shouldThrowWhenAgentAndCreatorAreSameMember() { + val request = AssignAgentCreatorRequest( + agentId = 11L, + creatorId = 11L, + assignedAt = LocalDateTime.of(2026, 4, 9, 10, 0) + ) + + val exception = assertThrows(SodaException::class.java) { + service.assignCreator(request) + } + + assertEquals("partner.agent.assignment.invalid_relation", exception.messageKey) + Mockito.verifyNoInteractions(memberRepository) + Mockito.verifyNoInteractions(relationRepository) + } + @Test @DisplayName("관리자 소속 지정은 creator row를 잠근 뒤 저장한다") fun shouldLockCreatorBeforeAssigning() {