Skip to content

Commit aead382

Browse files
committed
cocktailController searchAndFilter test
1 parent bda074d commit aead382

File tree

2 files changed

+44
-2
lines changed

2 files changed

+44
-2
lines changed

src/main/java/com/back/domain/cocktail/controller/CocktailController.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ public RsData<List<CocktailSearchResponseDto>> searchAndFilter(
5656
// 서비스 호출
5757
List<CocktailSearchResponseDto> searchResults = cocktailService.searchAndFilter(cocktailSearchRequestDto);
5858

59-
// RsData로 통일된 응답 반환
6059
return RsData.successOf(searchResults);
6160
}
6261
}

src/test/java/com/back/domain/cocktail/controller/CocktailControllerTest.java

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package com.back.domain.cocktail.controller;
22

3+
import com.back.domain.cocktail.dto.CocktailSearchRequestDto;
34
import com.back.domain.cocktail.entity.Cocktail;
45
import com.back.domain.cocktail.enums.AlcoholBaseType;
56
import com.back.domain.cocktail.enums.AlcoholStrength;
67
import com.back.domain.cocktail.enums.CocktailType;
78
import com.back.domain.cocktail.repository.CocktailRepository;
89
import com.back.domain.user.service.UserService;
910
import com.back.global.rq.Rq;
11+
import com.back.global.standard.util.Ut;
1012
import jakarta.servlet.http.HttpServletRequest;
1113
import jakarta.servlet.http.HttpServletResponse;
1214
import org.junit.jupiter.api.DisplayName;
@@ -27,6 +29,7 @@
2729
import java.time.LocalDateTime;
2830

2931
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
32+
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
3033
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
3134
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
3235
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
@@ -138,6 +141,47 @@ void t4() throws Exception {
138141
.andExpect(jsonPath("$.data").isArray());
139142
}
140143

144+
@Test
145+
@DisplayName("칵테일 검색 및 필터링")
146+
void t5() throws Exception {
147+
// given: DB에 칵테일 저장
148+
Cocktail savedCocktail = cocktailRepository.save(
149+
Cocktail.builder()
150+
.cocktailName("모히토")
151+
.alcoholStrength(AlcoholStrength.WEAK)
152+
.cocktailType(CocktailType.SHORT)
153+
.alcoholBaseType(AlcoholBaseType.RUM)
154+
.cocktailImgUrl("https://example.com/image.jpg")
155+
.cocktailStory("상쾌한 라임과 민트")
156+
.ingredient("라임, 민트, 럼, 설탕, 탄산수")
157+
.recipe("라임과 민트를 섞고 럼을 넣고 탄산수로 완성")
158+
.createdAt(LocalDateTime.now())
159+
.updatedAt(LocalDateTime.now())
160+
.build()
161+
);
162+
163+
// 검색 조건 (키워드: "모히토")
164+
CocktailSearchRequestDto requestDto = new CocktailSearchRequestDto();
165+
requestDto.setKeyword("모히토");
166+
167+
// when: POST 요청
168+
ResultActions resultActions = mvc.perform(
169+
post("/cocktails/search")
170+
.contentType(MediaType.APPLICATION_JSON)
171+
.content(Ut.json.toString(requestDto))
172+
).andDo(print());
173+
174+
// then: 상태코드, JSON 구조 검증
175+
resultActions
176+
.andExpect(status().isOk())
177+
.andExpect(jsonPath("$.code").value(200))
178+
.andExpect(jsonPath("$.message").value("success"))
179+
.andExpect(jsonPath("$.data[0].cocktailName").value("모히토"))
180+
.andExpect(jsonPath("$.data[0].alcoholStrength").value("WEAK"))
181+
.andExpect(jsonPath("$.data[0].cocktailType").value("SHORT"))
182+
.andExpect(jsonPath("$.data[0].alcoholBaseType").value("RUM"));
183+
}
184+
141185
@TestConfiguration
142186
static class TestConfig {
143187
@Bean
@@ -149,5 +193,4 @@ public Rq rq() {
149193
return new Rq(req, resp, userService);
150194
}
151195
}
152-
153196
}

0 commit comments

Comments
 (0)