11package org .programmers .signalbuddyfinal .domain .postit .service ;
22
33
4- import static org .assertj .core .api .Assertions .*;
5- import static org .junit .jupiter .api .Assertions .*;
6-
4+ import static org .assertj .core .api .Assertions .assertThat ;
5+ import static org .junit .jupiter .api .Assertions .assertThrows ;
6+ import static org .mockito .ArgumentMatchers .any ;
7+ import static org .mockito .ArgumentMatchers .anyString ;
8+ import static org .mockito .Mockito .mock ;
9+ import static org .mockito .Mockito .when ;
10+
11+ import java .net .URL ;
712import java .time .LocalDateTime ;
813import org .junit .jupiter .api .BeforeEach ;
914import org .junit .jupiter .api .DisplayName ;
1015import org .junit .jupiter .api .Test ;
1116import org .locationtech .jts .geom .Point ;
12- import org .programmers .signalbuddyfinal .global .util .PointUtils ;
1317import org .programmers .signalbuddyfinal .domain .member .entity .Member ;
1418import org .programmers .signalbuddyfinal .domain .member .entity .enums .MemberRole ;
1519import org .programmers .signalbuddyfinal .domain .member .entity .enums .MemberStatus ;
2428import org .programmers .signalbuddyfinal .global .dto .CustomUser2Member ;
2529import org .programmers .signalbuddyfinal .global .exception .BusinessException ;
2630import org .programmers .signalbuddyfinal .global .security .basic .CustomUserDetails ;
31+ import org .programmers .signalbuddyfinal .global .service .AwsFileService ;
2732import org .programmers .signalbuddyfinal .global .support .IntegrationTest ;
33+ import org .programmers .signalbuddyfinal .global .util .PointUtils ;
2834import org .springframework .beans .factory .annotation .Autowired ;
2935import org .springframework .mock .web .MockMultipartFile ;
36+ import org .springframework .test .context .bean .override .mockito .MockitoBean ;
3037
3138class PostItServiceTest extends IntegrationTest {
3239
@@ -38,19 +45,19 @@ class PostItServiceTest extends IntegrationTest {
3845 private MemberRepository memberRepository ;
3946 @ Autowired
4047 private PostitSolveRepository postitSolveRepository ;
48+ @ MockitoBean
49+ private AwsFileService awsFileService ;
4150
4251 private Member member1 ;
43- private Member member2 ;
4452 private CustomUser2Member user1 ;
4553 private CustomUser2Member user2 ;
4654 private CustomUser2Member notUser ;
4755 MockMultipartFile mockImage1 ;
4856 MockMultipartFile mockImage2 ;
4957
5058 @ BeforeEach
51- protected void setUp () throws Exception {
59+ void setUp () {
5260 member1 = createMember ("user1@gmail.com" , "user1" );
53- member2 = createMember ("user2@gmail.com" , "user2" );
5461
5562 mockImage1 = new MockMultipartFile (
5663 "image" ,
@@ -82,6 +89,10 @@ void createPostItSuccessTest() {
8289 PostItCreateRequest request = createPostItCreateRequest ("제목" , "내용" ,
8390 LocalDateTime .of (25 , 1 , 1 , 0 , 0 ));
8491
92+ when (awsFileService .uploadFileToS3 (any (MockMultipartFile .class ), anyString ()))
93+ .thenReturn (mockImage2 .getName ());
94+ when (awsFileService .getFileFromS3 (anyString (), anyString ()))
95+ .thenReturn (mock (URL .class ));
8596 PostItResponse response = postItService .createPostIt (request , mockImage1 , user1 );
8697
8798 assertThat (response .getContent ()).isEqualTo (request .getContent ());
@@ -108,6 +119,10 @@ void updatePostItTest() {
108119 "제목1" , "img1" , LocalDateTime .of (2025 , 1 , 1 , 0 , 0 ), member1 ));
109120 PostItRequest request = createPostItRequest ("제목" , "내용" );
110121
122+ when (awsFileService .uploadFileToS3 (any (MockMultipartFile .class ), anyString ()))
123+ .thenReturn (mockImage2 .getName ());
124+ when (awsFileService .getFileFromS3 (anyString (), anyString ()))
125+ .thenReturn (mock (URL .class ));
111126 PostItResponse response = postItService .updatePostIt (1L , request , mockImage2 , user1 );
112127
113128 assertThat (response .getContent ()).isEqualTo (request .getContent ());
@@ -146,7 +161,6 @@ void otherUserDeletePostItTest() {
146161 postItRepository .save (
147162 createPostIt (Danger .NOTICE , PointUtils .toPoint (1.0203 , 1.3048 ), "제목1" ,
148163 "제목1" , "img1" , LocalDateTime .of (2025 , 1 , 1 , 0 , 0 ), member1 ));
149- PostItRequest request = createPostItRequest ("제목" , "내용" );
150164
151165 assertThrows (BusinessException .class ,
152166 () -> postItService .deletePostIt (1L , user2 ));
0 commit comments