Skip to content

Commit 7b46c10

Browse files
committed
test: GraudationUserQueryService의 테스트 코드 작성
1 parent ccdd4ff commit 7b46c10

File tree

1 file changed

+55
-4
lines changed

1 file changed

+55
-4
lines changed

aics-domain/src/testFixtures/java/graduationUser/application/GraduationUserQueryServiceTest.java

Lines changed: 55 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@
22

33
import kgu.developers.common.response.PaginatedListResponse;
44
import kgu.developers.domain.graduationUser.application.query.GraduationUserQueryService;
5+
import kgu.developers.domain.graduationUser.domain.GraduationType;
56
import kgu.developers.domain.graduationUser.domain.GraduationUser;
67
import kgu.developers.domain.graduationUser.infrastructure.excel.GraduationUserExcelImpl;
78
import kgu.developers.domain.user.application.query.UserQueryService;
9+
import kgu.developers.domain.user.domain.User;
810
import mock.repository.FakeCertificateRepository;
911
import mock.repository.FakeGraduationUserRepository;
1012
import mock.repository.FakeThesisRepository;
@@ -13,21 +15,26 @@
1315
import org.junit.jupiter.api.DisplayName;
1416
import org.junit.jupiter.api.Test;
1517
import org.springframework.data.domain.PageRequest;
18+
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
19+
import org.springframework.security.core.context.SecurityContext;
20+
import org.springframework.security.core.context.SecurityContextHolder;
21+
import org.springframework.security.core.userdetails.UserDetails;
1622

1723
import java.time.LocalDate;
1824

25+
import static kgu.developers.domain.user.domain.Major.CSE;
1926
import static org.junit.jupiter.api.Assertions.assertEquals;
2027

2128
public class GraduationUserQueryServiceTest {
2229
private GraduationUserQueryService graduationUserQueryService;
2330
private static final Long TARGET_GRADUATION_USER_ID = 1L;
2431
private static final String TARGET_STUDENT_ID = "202211444";
25-
32+
FakeGraduationUserRepository fakeGraduationUserRepository;
2633
@BeforeEach
2734
public void init() {
28-
FakeGraduationUserRepository fakeGraduationUserRepository = new FakeGraduationUserRepository();
29-
30-
UserQueryService userQueryService = new UserQueryService(new FakeUserRepository());
35+
fakeGraduationUserRepository = new FakeGraduationUserRepository();
36+
FakeUserRepository fakeUserRepository = new FakeUserRepository();
37+
UserQueryService userQueryService = new UserQueryService(fakeUserRepository);
3138

3239
graduationUserQueryService = new GraduationUserQueryService(
3340
userQueryService,
@@ -55,6 +62,21 @@ public void init() {
5562
fakeGraduationUserRepository.save(GraduationUser.create(
5663
"202214567", "정수진", "이교수", false, "인공지능학과", LocalDate.of(2024, 2, 20)
5764
));
65+
66+
fakeUserRepository.save(User.builder()
67+
.id("202211444")
68+
.password("password1234")
69+
.name("홍길동")
70+
.email("test1@kyonggi.ac.kr")
71+
.phone("010-1234-5679")
72+
.major(CSE)
73+
.build());
74+
75+
UserDetails user = userQueryService.getUserById("202211444");
76+
SecurityContext context = SecurityContextHolder.getContext();
77+
context.setAuthentication(
78+
new UsernamePasswordAuthenticationToken(user, user.getPassword(), user.getAuthorities())
79+
);
5880
}
5981

6082
@Test
@@ -99,4 +121,33 @@ public void getByUserId_Success() {
99121
assertEquals(TARGET_STUDENT_ID, graduationUser.getUserId());
100122

101123
}
124+
125+
@Test
126+
@DisplayName("getGraduationTypeByUserId는 해당 학번의 졸업 대상자의 졸업 방식을 반환한다.")
127+
public void getGraduationTypeByUserId_Success() {
128+
//given
129+
GraduationUser graduationUser = fakeGraduationUserRepository.findByUserIdAndDeletedAtIsNull(TARGET_STUDENT_ID).orElse(null);
130+
graduationUser.updateGraduationType(GraduationType.THESIS);
131+
fakeGraduationUserRepository.save(graduationUser);
132+
133+
//when
134+
GraduationType graduationType = graduationUserQueryService.getGraduationTypeByUserId(TARGET_STUDENT_ID);
135+
136+
//then
137+
assertEquals(GraduationType.THESIS, graduationType);
138+
139+
}
140+
141+
@Test
142+
@DisplayName("me는 현재 로그인 되어 있는 졸업 대상자를 조회한다.")
143+
public void Success() {
144+
//given
145+
146+
//when
147+
GraduationUser result = graduationUserQueryService.me();
148+
149+
//then
150+
assertEquals(TARGET_GRADUATION_USER_ID, result.getId());
151+
152+
}
102153
}

0 commit comments

Comments
 (0)