1+ package com .mpc .springboot .member .presentation .controller ;
2+
3+ import org .springframework .boot .test .autoconfigure .web .servlet .WebMvcTest ;
4+ import org .springframework .test .context .bean .override .mockito .MockitoBean ;
5+ import com .mpc .springboot .member .application .dto .MemberResponse ;
6+ import com .mpc .springboot .member .application .service .MemberService ;
7+ import com .mpc .springboot .member .domain .entity .Member ;
8+ import com .mpc .springboot .member .domain .repository .MemberRepository ;
9+ import com .mpc .springboot .member .domain .vo .MemberCode ;
10+ import com .mpc .springboot .member .domain .vo .MemberName ;
11+ import com .mpc .springboot .shared .AbstractControllerTest ;
12+ import org .junit .jupiter .api .DisplayName ;
13+ import org .junit .jupiter .api .Test ;
14+
15+ import static org .mockito .ArgumentMatchers .any ;
16+ import static org .mockito .BDDMockito .given ;
17+ import static org .springframework .test .web .servlet .request .MockMvcRequestBuilders .get ;
18+ import static org .springframework .test .web .servlet .result .MockMvcResultMatchers .jsonPath ;
19+ import static org .springframework .test .web .servlet .result .MockMvcResultMatchers .status ;
20+
21+ @ WebMvcTest (MemberRestController .class )
22+ class MemberRestControllerTest extends AbstractControllerTest {
23+
24+ @ MockitoBean
25+ private MemberService memberService ;
26+
27+ /**
28+ * @see MemberRestController#getMemberBy(MemberCode)
29+ */
30+ @ DisplayName ("회원 조회: 회원 코드로 조회" )
31+ @ Test
32+ void getMemberBy () throws Exception {
33+ // given
34+ MemberCode code = MemberCode .of ("M0000003" );
35+ MemberName name = MemberName .of ("John" , "Doe" );
36+ Member member = Member .of (code , name );
37+ MemberResponse memberResponse = MemberResponse .from (member );
38+ given (memberService .getMemberBy (any ())).willReturn (memberResponse );
39+
40+ // when & then
41+ mockMvc .perform (get ("/api/v1/members/{code}" , code .getValue ()))
42+ .andExpect (status ().isOk ())
43+ .andExpect (jsonPath ("$.code.value" ).value (code .getValue ()))
44+ .andExpect (jsonPath ("$.name.firstName" ).value (name .getFirstName ()))
45+ .andExpect (jsonPath ("$.name.lastName" ).value (name .getLastName ()))
46+ .andExpect (jsonPath ("$.name.fullName" ).value (name .getFullName ()));
47+
48+ }
49+
50+ @ Test
51+ void createMember () {
52+ }
53+ }
0 commit comments