Skip to content

Commit 1471dee

Browse files
committed
test: 단일 Room 조회 API 테스트 추가
1 parent f4f196c commit 1471dee

File tree

1 file changed

+90
-0
lines changed

1 file changed

+90
-0
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
package site.praytogether.pray_together.domain.room;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
5+
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
6+
7+
import org.junit.jupiter.api.DisplayName;
8+
import org.junit.jupiter.api.Test;
9+
import org.springframework.http.HttpHeaders;
10+
import org.springframework.test.web.servlet.MvcResult;
11+
import site.praytogether.pray_together.domain.member.model.Member;
12+
import site.praytogether.pray_together.domain.member_room.model.MemberRoom;
13+
import site.praytogether.pray_together.domain.member_room.model.RoomInfo;
14+
import site.praytogether.pray_together.domain.room.model.Room;
15+
import site.praytogether.pray_together.domain.room.model.RoomRole;
16+
import site.praytogether.pray_together.test_config.IntegrateTest;
17+
18+
@DisplayName("Room 단일 조회 API 테스트")
19+
class RoomFetchIntegrateTest extends IntegrateTest {
20+
21+
@Test
22+
@DisplayName("방 단일 조회 - 방에 속한 회원이면 RoomInfo 응답")
23+
void get_room_when_member_is_in_room_then_return_room_info() throws Exception {
24+
// given
25+
Member owner = testMemberUtils.createSave();
26+
Member another = testMemberUtils.createSave();
27+
Room room = testRoomUtils.createSave();
28+
29+
memberRoomRepository.save(
30+
MemberRoom.builder()
31+
.member(owner)
32+
.room(room)
33+
.role(RoomRole.OWNER)
34+
.isNotification(true)
35+
.build());
36+
37+
memberRoomRepository.save(
38+
MemberRoom.builder()
39+
.member(another)
40+
.room(room)
41+
.role(RoomRole.MEMBER)
42+
.isNotification(false)
43+
.build());
44+
45+
String token = testAuthUtils.createBearerToken(owner);
46+
47+
// when
48+
MvcResult result =
49+
mockMvc.perform(
50+
get(ROOMS_API_URL + "/" + room.getId())
51+
.header(HttpHeaders.AUTHORIZATION, token))
52+
.andExpect(status().isOk())
53+
.andReturn();
54+
55+
// then
56+
RoomInfo response =
57+
objectMapper.readValue(result.getResponse().getContentAsString(), RoomInfo.class);
58+
59+
assertThat(response.getId()).isEqualTo(room.getId());
60+
assertThat(response.getName()).isEqualTo(room.getName());
61+
assertThat(response.getDescription()).isEqualTo(room.getDescription());
62+
assertThat(response.getMemberCnt()).isEqualTo(2L);
63+
assertThat(response.getJoinedTime()).isNotNull();
64+
assertThat(response.isNotification()).isTrue();
65+
}
66+
67+
@Test
68+
@DisplayName("방 단일 조회 - 방에 속하지 않은 회원이면 404 응답")
69+
void get_room_when_member_is_not_in_room_then_return_404() throws Exception {
70+
// given
71+
Member outsider = testMemberUtils.createSave();
72+
Member owner = testMemberUtils.createSave();
73+
Room room = testRoomUtils.createSave();
74+
75+
memberRoomRepository.save(
76+
MemberRoom.builder()
77+
.member(owner)
78+
.room(room)
79+
.role(RoomRole.OWNER)
80+
.isNotification(true)
81+
.build());
82+
83+
String token = testAuthUtils.createBearerToken(outsider);
84+
85+
// when & then
86+
mockMvc.perform(get(ROOMS_API_URL + "/" + room.getId())
87+
.header(HttpHeaders.AUTHORIZATION, token))
88+
.andExpect(status().isNotFound());
89+
}
90+
}

0 commit comments

Comments
 (0)