Skip to content

Commit 407f4f2

Browse files
authored
✅ test: test User.setId()제거
* ✅ test User.setId()제거 * chore: Java 스타일 수정 --------- Co-authored-by: github-actions <>
1 parent a178fe1 commit 407f4f2

File tree

4 files changed

+47
-16
lines changed

4 files changed

+47
-16
lines changed

backend/src/main/java/io/f1/backend/domain/game/store/RoomRepositoryImpl.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,4 @@ public List<Room> findAll() {
3434
public void removeRoom(Long roomId) {
3535
roomMap.remove(roomId);
3636
}
37-
38-
// 테스트 전용 메소드
39-
public Room getRoomForTest(Long roomId) {
40-
return roomMap.get(roomId);
41-
}
4237
}

backend/src/test/java/io/f1/backend/domain/game/app/RoomServiceTests.java

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import org.springframework.context.ApplicationEventPublisher;
3030
import org.springframework.security.core.context.SecurityContextHolder;
3131

32+
import java.lang.reflect.Field;
3233
import java.time.LocalDateTime;
3334
import java.util.ArrayList;
3435
import java.util.Collections;
@@ -53,6 +54,7 @@ class RoomServiceTests {
5354
@BeforeEach
5455
void setUp() {
5556
MockitoAnnotations.openMocks(this); // @Mock 어노테이션이 붙은 필드들을 초기화합니다.
57+
5658
roomService =
5759
new RoomService(
5860
timerService, quizService, roomRepository, eventPublisher, messageSender);
@@ -83,6 +85,7 @@ void enterRoom_synchronized() throws Exception {
8385
ExecutorService executorService = Executors.newFixedThreadPool(threadCount);
8486
CountDownLatch countDownLatch = new CountDownLatch(threadCount);
8587
RoomValidationRequest roomValidationRequest = new RoomValidationRequest(roomId, password);
88+
8689
for (int i = 1; i <= threadCount; i++) {
8790
User user = createUser(i);
8891

@@ -113,6 +116,7 @@ void exitRoom_synchronized() throws Exception {
113116
String password = "123";
114117
boolean locked = true;
115118

119+
/* 방 생성 */
116120
Room room = createRoom(roomId, playerId, quizId, password, maxUserCount, locked);
117121

118122
int threadCount = 10;
@@ -128,6 +132,7 @@ void exitRoom_synchronized() throws Exception {
128132
Player host = players.getFirst();
129133
room.updateHost(host);
130134

135+
/* 방 입장 */
131136
for (int i = 1; i <= threadCount; i++) {
132137
String sessionId = "sessionId" + i;
133138
Player player = players.get(i - 1);
@@ -141,6 +146,7 @@ void exitRoom_synchronized() throws Exception {
141146
ExecutorService executorService = Executors.newFixedThreadPool(threadCount);
142147
CountDownLatch countDownLatch = new CountDownLatch(threadCount);
143148

149+
/* 방 퇴장 테스트 */
144150
for (int i = 1; i <= threadCount; i++) {
145151
String sessionId = "sessionId" + i;
146152
User user = createUser(i);
@@ -190,7 +196,14 @@ private User createUser(int i) {
190196
.providerId(providerId)
191197
.lastLogin(lastLogin)
192198
.build();
193-
user.setId(userId);
199+
200+
try {
201+
Field idField = User.class.getDeclaredField("id");
202+
idField.setAccessible(true);
203+
idField.set(user, userId);
204+
} catch (Exception e) {
205+
throw new RuntimeException("ID 설정 실패", e);
206+
}
194207

195208
return user;
196209
}

backend/src/test/java/io/f1/backend/domain/game/store/RoomRepositoryTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ void saveRoom_test() {
5252

5353
roomRepository.saveRoom(newRoom);
5454

55-
Room savedRoom = roomRepository.getRoomForTest(newId);
55+
Room savedRoom = roomRepository.findRoom(newId).orElseThrow();
5656

5757
assertThat(savedRoom.getHost().getId()).isEqualTo(loginUser.get("id"));
5858
assertThat(savedRoom.getHost().getNickname()).isEqualTo(loginUser.get("nickname"));

backend/src/test/java/io/f1/backend/domain/game/websocket/SessionServiceTests.java

Lines changed: 32 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
package io.f1.backend.domain.game.websocket;
22

3-
import static org.junit.jupiter.api.Assertions.*;
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertFalse;
5+
import static org.junit.jupiter.api.Assertions.assertNull;
6+
import static org.junit.jupiter.api.Assertions.assertTrue;
47
import static org.mockito.ArgumentMatchers.any;
58
import static org.mockito.ArgumentMatchers.anyLong;
69
import static org.mockito.ArgumentMatchers.anyString;
@@ -24,6 +27,7 @@
2427
import org.mockito.junit.jupiter.MockitoExtension;
2528
import org.springframework.test.util.ReflectionTestUtils;
2629

30+
import java.lang.reflect.Field;
2731
import java.time.LocalDateTime;
2832
import java.util.HashMap;
2933
import java.util.Map;
@@ -41,9 +45,7 @@ class SessionServiceTests {
4145
private String sessionId1 = "session1";
4246
private String sessionId2 = "session2";
4347
private Long userId1 = 100L;
44-
private Long userId2 = 200L;
4548
private Long roomId1 = 1L;
46-
private Long roomId2 = 2L;
4749

4850
@BeforeEach
4951
void setUp() {
@@ -95,8 +97,7 @@ void handleUserDisconnect_shouldExitIfNotPlayingIfDisconnected() throws Interrup
9597
sessionService.addRoomId(roomId1, sessionId1);
9698
sessionService.addSession(sessionId1, userId1);
9799

98-
User user = new User("provider", "providerId", LocalDateTime.now());
99-
user.setId(userId1);
100+
User user = createUser(1);
100101
UserPrincipal principal = new UserPrincipal(user, new HashMap<>());
101102

102103
// disconnect 호출
@@ -154,8 +155,7 @@ void handleUserDisconnect_shouldStoreOldSessionIdInLatestSession() {
154155
sessionService.addSession(sessionId1, userId1); // 유저의 현재 활성 세션
155156
sessionService.addRoomId(roomId1, sessionId1);
156157

157-
User user = new User("provider", "providerId", LocalDateTime.now());
158-
user.setId(userId1);
158+
User user = createUser(1);
159159
UserPrincipal principal = new UserPrincipal(user, new HashMap<>());
160160

161161
// when
@@ -183,8 +183,7 @@ void handleUserDisconnect_reconnectWithin5Seconds_shouldCleanLatestSession()
183183
sessionService.addSession(sessionId1, userId1); // 초기 세션
184184
sessionService.addRoomId(roomId1, sessionId1);
185185

186-
User user = new User("provider", "providerId", LocalDateTime.now());
187-
user.setId(userId1);
186+
User user = createUser(1);
188187
UserPrincipal principal = new UserPrincipal(user, new HashMap<>());
189188

190189
sessionService.handleUserDisconnect(
@@ -231,4 +230,28 @@ void handleUserDisconnect_reconnectWithin5Seconds_shouldCleanLatestSession()
231230
assertTrue(sessionIdRoom.containsKey(sessionId2));
232231
assertEquals(roomId1, sessionIdRoom.get(sessionId2));
233232
}
233+
234+
private User createUser(int i) {
235+
Long userId = i + 1L;
236+
String provider = "provider +" + i;
237+
String providerId = "providerId" + i;
238+
LocalDateTime lastLogin = LocalDateTime.now();
239+
240+
User user =
241+
User.builder()
242+
.provider(provider)
243+
.providerId(providerId)
244+
.lastLogin(lastLogin)
245+
.build();
246+
247+
try {
248+
Field idField = User.class.getDeclaredField("id");
249+
idField.setAccessible(true);
250+
idField.set(user, userId);
251+
} catch (Exception e) {
252+
throw new RuntimeException("ID 설정 실패", e);
253+
}
254+
255+
return user;
256+
}
234257
}

0 commit comments

Comments
 (0)