1- package com .grepp .spring .app .model .mypage .service ;
2-
3- import static org .junit .jupiter .api .Assertions .assertEquals ;
4- import static org .junit .jupiter .api .Assertions .assertNotNull ;
5- import static org .junit .jupiter .api .Assertions .assertThrows ;
6- import static org .mockito .ArgumentMatchers .any ;
7- import static org .mockito .Mockito .never ;
8- import static org .mockito .Mockito .times ;
9- import static org .mockito .Mockito .verify ;
10- import static org .mockito .Mockito .when ;
11-
12- import com .grepp .spring .app .controller .api .auth .Provider ;
13- import com .grepp .spring .app .controller .api .mypage .payload .request .CreateFavoritePlaceRequest ;
14- import com .grepp .spring .app .controller .api .mypage .payload .request .ModifyFavoritePlaceRequest ;
15- import com .grepp .spring .app .model .member .code .Role ;
16- import com .grepp .spring .app .model .member .entity .Member ;
17- import com .grepp .spring .app .model .member .repository .MemberRepository ;
18- import com .grepp .spring .app .model .mypage .entity .FavoriteLocation ;
19- import com .grepp .spring .app .model .mypage .repository .MyLocationRepository ;
20- import com .grepp .spring .infra .error .exceptions .mypage .FavoriteAlreadyExistException ;
21- import java .util .Optional ;
22- import org .junit .jupiter .api .BeforeEach ;
23- import org .junit .jupiter .api .DisplayName ;
24- import org .junit .jupiter .api .Nested ;
25- import org .junit .jupiter .api .Test ;
26- import org .junit .jupiter .api .extension .ExtendWith ;
27- import org .mockito .InjectMocks ;
28- import org .mockito .Mock ;
29- import org .mockito .junit .jupiter .MockitoExtension ;
30-
31- @ ExtendWith (MockitoExtension .class )
32- class FavoriteLocationCommandServiceTest {
33-
34- @ Mock
35- private MyLocationRepository myLocationRepository ;
36-
37- @ Mock
38- private MemberRepository memberRepository ;
39-
40- @ InjectMocks
41- private FavoriteLocationCommandService favoriteLocationCommandService ;
42-
43- Member dummyMember1 ;
44- // Member dummyMember2;
45- FavoriteLocation dummyFavoriteLocation1 ;
46-
47-
48- @ BeforeEach
49- void setUp () {
50- dummyMember1 = new Member ();
51- dummyMember1 .setId ("GOOGLE_123456" );
52- dummyMember1 .setName ("νλͺ
λ " );
53- dummyMember1 .setProvider (Provider .GOOGLE );
54- dummyMember1 .setEmail ("hmd@example.com" );
55- dummyMember1 .setRole (Role .ROLE_USER );
56- dummyMember1 .setProfileImageNumber (2 );
57- dummyMember1 .setTel ("010-8888-9999" );
58-
59- // dummyMember2 = new Member();
60- // dummyMember2.setId("GOOGLE_7890");
61- // dummyMember2.setName("μκ±Έν¬ ");
62- // dummyMember2.setProvider(Provider.GOOGLE);
63- // dummyMember2.setEmail("jgh@example.com");
64- // dummyMember2.setRole(Role.ROLE_USER);
65- // dummyMember2.setProfileImageNumber(4);
66- // dummyMember2.setTel("010-2222-9999");
67-
68- dummyFavoriteLocation1 = new FavoriteLocation ();
69- dummyFavoriteLocation1 .setId (1L );
70- dummyFavoriteLocation1 .setLatitude (37.4979 );
71- dummyFavoriteLocation1 .setLongitude (127.0276 );
72- dummyFavoriteLocation1 .setName ("κ°λ¨μ" );
73- }
74-
75- @ Nested
76- @ DisplayName ("μ¦κ²¨μ°ΎκΈ° μ₯μ μμ±, μμ ν
μ€νΈ" )
77- class CreateFavLocationTest {
78-
79- @ Test
80- @ DisplayName ("μ±κ³΅: νμμ΄ κΈ°μ‘΄μ λ±λ‘ν μ¦κ²¨μ°ΎκΈ° μ₯μκ° μκ³ μ κ· λ±λ‘." )
81- void create_success () { // μ₯μ λ±λ‘ μ±κ³΅
82- // given -> μ€λΉ λ¨κ³
83- String memberId = dummyMember1 .getId ();
84- CreateFavoritePlaceRequest request =
85- new CreateFavoritePlaceRequest ("μμΈμ" , 37.55 , 126.97 );
86-
87- FavoriteLocation location = FavoriteLocation .create (dummyMember1 , request );
88-
89- when (memberRepository .findById (memberId )).thenReturn (Optional .of (dummyMember1 ));
90- // μ¦κ²¨μ°ΎκΈ° μ₯μ λ±λ‘ μλμ΄μμμ κ°μ
91- when (myLocationRepository .existsByMemberId (memberId )).thenReturn (false );
92- when (myLocationRepository .save (any (FavoriteLocation .class ))).thenReturn (location );
93-
94- // when -> μ€ν λ¨κ³
95- var result = favoriteLocationCommandService .createFavoriteLocation (memberId , request );
96-
97- // then -> κ²μ¦ λ¨κ³
98- assertNotNull (result );
99- assertEquals ("μμΈμ" , result .getStationName ());
100- // save 1λ² νΈμΆ λμλμ§ κ²μ¦
101- verify (myLocationRepository , times ( 1 )).save (any (FavoriteLocation .class ));
102- }
103-
104- @ Test
105- @ DisplayName ("μ€ν¨: νμμ΄ κΈ°μ‘΄μ λ±λ‘ν μ¦κ²¨μ°ΎκΈ° μ₯μκ° μ‘΄μ¬νλ©΄ FavoriteAlreadyExistException λ°μ" )
106- void create_fail_alreadyExists () { // μ₯μ λ±λ‘ μ±κ³΅
107- // given -> μ€λΉ λ¨κ³
108- String memberId = dummyMember1 .getId ();
109- CreateFavoritePlaceRequest request =
110- new CreateFavoritePlaceRequest ("μμΈμ" , 37.55 , 126.97 );
111-
112- // νμμ μ μ μ‘°ν
113- when (memberRepository .findById (memberId )).thenReturn (Optional .of (dummyMember1 ));
114- // μ΄λ―Έ μ¦κ²¨μ°ΎκΈ° μ₯μ λ±λ‘ λμ΄μλ€κ³ κ°μ . (true λ©΄ λ°λ‘ μμΈ λμ§)
115- when (myLocationRepository .existsByMemberId (memberId )).thenReturn (true );
116-
117- // when & then
118- assertThrows (FavoriteAlreadyExistException .class ,
119- () -> favoriteLocationCommandService .createFavoriteLocation (memberId , request ));
120-
121- // save νΈμΆ μλλμ§ κ²μ¦
122- verify (myLocationRepository , never ()).save (any (FavoriteLocation .class ));
123- }
124- }
125-
126- @ Nested
127- @ DisplayName ("μ¦κ²¨μ°ΎκΈ° μ₯μ μμ ν
μ€νΈ" )
128- class updateFavLocationTest {
129-
130- @ Test
131- @ DisplayName ("μ±κ³΅: μ¦κ²¨μ°ΎκΈ° μ₯μ μμ " )
132- void update_favLocation_success (){
133-
134- // given
135- String memberId = dummyMember1 .getId ();
136-
137- ModifyFavoritePlaceRequest request =
138- new ModifyFavoritePlaceRequest (1L ,"ν©μ μ" , 37.5492 , 126.9135 );
139-
140- // μ¦μ°Ύ λ°μ΄ν° + νμ μ
ν
141- dummyFavoriteLocation1 .setMember (dummyMember1 );
142-
143- when (memberRepository .findById (memberId )).thenReturn (Optional .of (dummyMember1 ));
144-
145-
146- // κΈ°μ‘΄ κΊΌ μ‘°ν
147- when (myLocationRepository .findById (1L )).thenReturn (Optional .of (dummyFavoriteLocation1 ));
148-
149- // when
150- var result = favoriteLocationCommandService .modifyFavoriteLocation (memberId , request );
151-
152- // then
153- assertNotNull (result );
154- assertEquals ("ν©μ μ" , result .getStationName ());
155- assertEquals (37.5492 , result .getLatitude ());
156- assertEquals (126.9135 , result .getLongitude ());
157-
158- verify (memberRepository , times (1 )).findById (memberId );
159- verify (myLocationRepository , times (1 )).findById (1L );
160- // save() νΈμΆλμ§ μλμ§ νμΈ. μλΉμ€μμ νΈμΆμνκ³ μλ μ
λ°μ΄νΈ
161- verify (myLocationRepository , never ()).save (any (FavoriteLocation .class ));
162- }
163-
164- @ Test
165- @ DisplayName ("μ€ν¨: μμ μμ² μμ μ¬μ μ λ±λ‘λ μ¦κ²¨μ°ΎκΈ° μ₯μ μμ λ" )
166- void update_favLocation_fail (){
167-
1+ //package com.grepp.spring.app.model.mypage.service;
2+ //
3+ //import static org.junit.jupiter.api.Assertions.assertEquals;
4+ //import static org.junit.jupiter.api.Assertions.assertNotNull;
5+ //import static org.junit.jupiter.api.Assertions.assertThrows;
6+ //import static org.mockito.ArgumentMatchers.any;
7+ //import static org.mockito.Mockito.never;
8+ //import static org.mockito.Mockito.times;
9+ //import static org.mockito.Mockito.verify;
10+ //import static org.mockito.Mockito.when;
11+ //
12+ //import com.grepp.spring.app.controller.api.auth.Provider;
13+ //import com.grepp.spring.app.controller.api.mypage.payload.request.CreateFavoritePlaceRequest;
14+ //import com.grepp.spring.app.controller.api.mypage.payload.request.ModifyFavoritePlaceRequest;
15+ //import com.grepp.spring.app.model.member.code.Role;
16+ //import com.grepp.spring.app.model.member.entity.Member;
17+ //import com.grepp.spring.app.model.member.repository.MemberRepository;
18+ //import com.grepp.spring.app.model.mypage.entity.FavoriteLocation;
19+ //import com.grepp.spring.app.model.mypage.repository.MyLocationRepository;
20+ //import com.grepp.spring.infra.error.exceptions.mypage.FavoriteAlreadyExistException;
21+ //import java.util.Optional;
22+ //import org.junit.jupiter.api.BeforeEach;
23+ //import org.junit.jupiter.api.DisplayName;
24+ //import org.junit.jupiter.api.Nested;
25+ //import org.junit.jupiter.api.Test;
26+ //import org.junit.jupiter.api.extension.ExtendWith;
27+ //import org.mockito.InjectMocks;
28+ //import org.mockito.Mock;
29+ //import org.mockito.junit.jupiter.MockitoExtension;
30+ //
31+ //@ExtendWith(MockitoExtension.class)
32+ //class FavoriteLocationCommandServiceTest {
33+ //
34+ // @Mock
35+ // private MyLocationRepository myLocationRepository;
36+ //
37+ // @Mock
38+ // private MemberRepository memberRepository;
39+ //
40+ // @InjectMocks
41+ // private FavoriteLocationCommandService favoriteLocationCommandService;
42+ //
43+ // Member dummyMember1;
44+ //// Member dummyMember2;
45+ // FavoriteLocation dummyFavoriteLocation1;
46+ //
47+ //
48+ // @BeforeEach
49+ // void setUp() {
50+ // dummyMember1 = new Member();
51+ // dummyMember1.setId("GOOGLE_123456");
52+ // dummyMember1.setName("νλͺ
λ ");
53+ // dummyMember1.setProvider(Provider.GOOGLE);
54+ // dummyMember1.setEmail("hmd@example.com");
55+ // dummyMember1.setRole(Role.ROLE_USER);
56+ // dummyMember1.setProfileImageNumber(2);
57+ // dummyMember1.setTel("010-8888-9999");
58+ //
59+ //// dummyMember2 = new Member();
60+ //// dummyMember2.setId("GOOGLE_7890");
61+ //// dummyMember2.setName("μκ±Έν¬ ");
62+ //// dummyMember2.setProvider(Provider.GOOGLE);
63+ //// dummyMember2.setEmail("jgh@example.com");
64+ //// dummyMember2.setRole(Role.ROLE_USER);
65+ //// dummyMember2.setProfileImageNumber(4);
66+ //// dummyMember2.setTel("010-2222-9999");
67+ //
68+ // dummyFavoriteLocation1 = new FavoriteLocation();
69+ // dummyFavoriteLocation1.setId(1L);
70+ // dummyFavoriteLocation1.setLatitude(37.4979);
71+ // dummyFavoriteLocation1.setLongitude(127.0276);
72+ // dummyFavoriteLocation1.setName("κ°λ¨μ");
73+ // }
74+ //
75+ // @Nested
76+ // @DisplayName("μ¦κ²¨μ°ΎκΈ° μ₯μ μμ±, μμ ν
μ€νΈ")
77+ // class CreateFavLocationTest{
78+ //
79+ // @Test
80+ // @DisplayName("μ±κ³΅: νμμ΄ κΈ°μ‘΄μ λ±λ‘ν μ¦κ²¨μ°ΎκΈ° μ₯μκ° μκ³ μ κ· λ±λ‘.")
81+ // void create_success() { // μ₯μ λ±λ‘ μ±κ³΅
82+ // // given -> μ€λΉ λ¨κ³
83+ // String memberId = dummyMember1.getId();
84+ // CreateFavoritePlaceRequest request =
85+ // new CreateFavoritePlaceRequest("μμΈμ", 37.55, 126.97);
86+ //
87+ // FavoriteLocation location = FavoriteLocation.create(dummyMember1, request);
88+ //
89+ // when(memberRepository.findById(memberId)).thenReturn(Optional.of(dummyMember1));
90+ // // μ¦κ²¨μ°ΎκΈ° μ₯μ λ±λ‘ μλμ΄μμμ κ°μ
91+ // when(myLocationRepository.existsByMemberId(memberId)).thenReturn(false);
92+ // when(myLocationRepository.save(any(FavoriteLocation.class))).thenReturn(location);
93+ //
94+ // // when -> μ€ν λ¨κ³
95+ // var result = favoriteLocationCommandService.createFavoriteLocation(memberId, request);
96+ //
97+ // // then -> κ²μ¦ λ¨κ³
98+ // assertNotNull(result);
99+ // assertEquals("μμΈμ", result.getStationName());
100+ // // save 1λ² νΈμΆ λμλμ§ κ²μ¦
101+ // verify(myLocationRepository, times( 1)).save(any(FavoriteLocation.class));
102+ // }
103+ //
104+ // @Test
105+ // @DisplayName("μ€ν¨: νμμ΄ κΈ°μ‘΄μ λ±λ‘ν μ¦κ²¨μ°ΎκΈ° μ₯μκ° μ‘΄μ¬νλ©΄ FavoriteAlreadyExistException λ°μ")
106+ // void create_fail_alreadyExists() { // μ₯μ λ±λ‘ μ±κ³΅
107+ // // given -> μ€λΉ λ¨κ³
108+ // String memberId = dummyMember1.getId();
109+ // CreateFavoritePlaceRequest request =
110+ // new CreateFavoritePlaceRequest("μμΈμ", 37.55, 126.97);
111+ //
112+ // // νμμ μ μ μ‘°ν
113+ // when(memberRepository.findById(memberId)).thenReturn(Optional.of(dummyMember1));
114+ // // μ΄λ―Έ μ¦κ²¨μ°ΎκΈ° μ₯μ λ±λ‘ λμ΄μλ€κ³ κ°μ . (true λ©΄ λ°λ‘ μμΈ λμ§)
115+ // when(myLocationRepository.existsByMemberId(memberId)).thenReturn(true);
116+ //
117+ // // when & then
118+ // assertThrows(FavoriteAlreadyExistException.class,
119+ // () -> favoriteLocationCommandService.createFavoriteLocation(memberId, request));
120+ //
121+ // // save νΈμΆ μλλμ§ κ²μ¦
122+ // verify(myLocationRepository, never()).save(any(FavoriteLocation.class));
123+ // }
124+ // }
125+ //
126+ // @Nested
127+ // @DisplayName("μ¦κ²¨μ°ΎκΈ° μ₯μ μμ ν
μ€νΈ")
128+ // class updateFavLocationTest{
129+ //
130+ // @Test
131+ // @DisplayName("μ±κ³΅: μ¦κ²¨μ°ΎκΈ° μ₯μ μμ ")
132+ // void update_favLocation_success(){
133+ //
168134// // given
169135// String memberId = dummyMember1.getId();
170136//
@@ -176,6 +142,7 @@ void update_favLocation_fail(){
176142//
177143// when(memberRepository.findById(memberId)).thenReturn(Optional.of(dummyMember1));
178144//
145+ //
179146// // κΈ°μ‘΄ κΊΌ μ‘°ν
180147// when(myLocationRepository.findById(1L)).thenReturn(Optional.of(dummyFavoriteLocation1));
181148//
@@ -192,9 +159,42 @@ void update_favLocation_fail(){
192159// verify(myLocationRepository, times(1)).findById(1L);
193160// // save() νΈμΆλμ§ μλμ§ νμΈ. μλΉμ€μμ νΈμΆμνκ³ μλ μ
λ°μ΄νΈ
194161// verify(myLocationRepository, never()).save(any(FavoriteLocation.class));
195- }
196-
197- }
198-
199-
200- }
162+ // }
163+ //
164+ // @Test
165+ // @DisplayName("μ€ν¨: μμ μμ² μμ μ¬μ μ λ±λ‘λ μ¦κ²¨μ°ΎκΈ° μ₯μ μμ λ")
166+ // void update_favLocation_fail(){
167+ //
168+ //// // given
169+ //// String memberId = dummyMember1.getId();
170+ ////
171+ //// ModifyFavoritePlaceRequest request =
172+ //// new ModifyFavoritePlaceRequest(1L,"ν©μ μ", 37.5492, 126.9135);
173+ ////
174+ //// // μ¦μ°Ύ λ°μ΄ν° + νμ μ
ν
175+ //// dummyFavoriteLocation1.setMember(dummyMember1);
176+ ////
177+ //// when(memberRepository.findById(memberId)).thenReturn(Optional.of(dummyMember1));
178+ ////
179+ //// // κΈ°μ‘΄ κΊΌ μ‘°ν
180+ //// when(myLocationRepository.findById(1L)).thenReturn(Optional.of(dummyFavoriteLocation1));
181+ ////
182+ //// // when
183+ //// var result = favoriteLocationCommandService.modifyFavoriteLocation(memberId, request);
184+ ////
185+ //// // then
186+ //// assertNotNull(result);
187+ //// assertEquals("ν©μ μ", result.getStationName());
188+ //// assertEquals(37.5492, result.getLatitude());
189+ //// assertEquals(126.9135, result.getLongitude());
190+ ////
191+ //// verify(memberRepository, times(1)).findById(memberId);
192+ //// verify(myLocationRepository, times(1)).findById(1L);
193+ //// // save() νΈμΆλμ§ μλμ§ νμΈ. μλΉμ€μμ νΈμΆμνκ³ μλ μ
λ°μ΄νΈ
194+ //// verify(myLocationRepository, never()).save(any(FavoriteLocation.class));
195+ // }
196+ //
197+ // }
198+ //
199+ //
200+ //}
0 commit comments