Skip to content

Commit a36ceac

Browse files
committed
CLAP-221: 상태 불일치 에러 케이스 테스트
1 parent d53784f commit a36ceac

File tree

1 file changed

+24
-5
lines changed

1 file changed

+24
-5
lines changed

src/test/java/clap/server/application/service/task/ApprovalTaskServiceTest.java

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
import clap.server.domain.model.task.Task;
1717
import clap.server.domain.model.task.TaskHistory;
1818
import clap.server.domain.policy.task.RequestedTaskUpdatePolicy;
19+
import clap.server.exception.DomainException;
20+
import clap.server.exception.code.TaskErrorCode;
1921
import org.junit.jupiter.api.BeforeEach;
2022
import org.junit.jupiter.api.DisplayName;
2123
import org.junit.jupiter.api.Test;
@@ -25,6 +27,7 @@
2527
import org.mockito.junit.jupiter.MockitoExtension;
2628

2729
import static org.assertj.core.api.Assertions.assertThat;
30+
import static org.assertj.core.api.Assertions.assertThatThrownBy;
2831
import static org.mockito.Mockito.*;
2932

3033

@@ -45,7 +48,6 @@ class ApprovalTaskServiceTest {
4548

4649
@Mock
4750
private LabelService labelService;
48-
4951
@Mock
5052
private RequestedTaskUpdatePolicy requestedTaskUpdatePolicy;
5153

@@ -66,7 +68,7 @@ void setUp() {
6668
processor = TestDataFactory.createManager();
6769
mainCategory = TestDataFactory.createMainCategory();
6870
category = TestDataFactory.createCategory(mainCategory);
69-
task = TestDataFactory.createTask( 1L,"TC001", "제목1", TaskStatus.REQUESTED, category, null, processor);
71+
task = TestDataFactory.createTask(1L, "TC001", "제목1", TaskStatus.REQUESTED, category, null, processor);
7072
}
7173

7274
@Test
@@ -88,10 +90,27 @@ void approvalTask() {
8890

8991
//then
9092
assertThat(response).isNotNull();
91-
assertThat(response.taskStatus()).isEqualTo(TaskStatus.IN_PROGRESS);
9293
assertThat(response.taskId()).isEqualTo(task.getTaskId());
94+
assertThat(response.taskStatus()).isEqualTo(TaskStatus.IN_PROGRESS);
9395
verify(requestedTaskUpdatePolicy).validateTaskRequested(task);
94-
verify(commandTaskHistoryPort, times(1)).save(any(TaskHistory.class));
9596
}
96-
}
9797

98+
@Test
99+
@DisplayName("작업 승인 처리 중 예외 - 상태 불일치")
100+
void approvalTask_throwsDomainException_whenTaskStatusIsNotRequested() {
101+
//given
102+
Long reviewerId = 2L;
103+
Long taskId = 1L;
104+
ApprovalTaskRequest approvalTaskRequest = new ApprovalTaskRequest(2L, 2L, null, null);
105+
task = TestDataFactory.createTask(1L, "TC001", "제목1", TaskStatus.COMPLETED, category, null, processor);
106+
when(taskService.findById(taskId)).thenReturn(task);
107+
108+
//when
109+
doThrow(new DomainException(TaskErrorCode.TASK_STATUS_MISMATCH))
110+
.when(requestedTaskUpdatePolicy).validateTaskRequested(task);
111+
//then
112+
assertThatThrownBy(() -> approvalTaskService.approvalTaskByReviewer(reviewerId, taskId, approvalTaskRequest))
113+
.isInstanceOf(DomainException.class)
114+
.hasMessage(TaskErrorCode.TASK_STATUS_MISMATCH.getMessage());
115+
}
116+
}

0 commit comments

Comments
 (0)