diff --git a/src/test/java/poomasi/global/config/s3/S3PresignedUrlServiceTest.java b/src/test/java/poomasi/global/config/s3/S3PresignedUrlServiceTest.java index 7bf948ae..2a140992 100644 --- a/src/test/java/poomasi/global/config/s3/S3PresignedUrlServiceTest.java +++ b/src/test/java/poomasi/global/config/s3/S3PresignedUrlServiceTest.java @@ -1,56 +1,37 @@ package poomasi.global.config.s3; -import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; import poomasi.global.config.aws.AwsProperties; -import poomasi.global.util.EncryptionUtil; -import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; -import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; -import software.amazon.awssdk.regions.Region; -import software.amazon.awssdk.services.s3.presigner.S3Presigner; import java.util.HashMap; import java.util.Map; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.when; @SpringBootTest public class S3PresignedUrlServiceTest { + @MockBean private S3PresignedUrlService s3PresignedUrlService; @Autowired private AwsProperties awsProperties; - @BeforeEach - public void setUp() { - String accessKey = awsProperties.getAccess(); - String secretKey = awsProperties.getSecret(); - String region = awsProperties.getS3().getRegion(); - - // 자격 증명 설정 - AwsBasicCredentials awsCreds = AwsBasicCredentials.create( - accessKey, - secretKey - ); - - // S3Presigner 인스턴스 생성 - S3Presigner presigner = S3Presigner.builder() - .credentialsProvider(StaticCredentialsProvider.create(awsCreds)) - .region(Region.of(region)) - .build(); - - // S3PresignedUrlService 초기화 - s3PresignedUrlService = new S3PresignedUrlService(presigner, new EncryptionUtil()); - } - @Test public void testCreatePresignedGetUrl() { String objectKey = "object_key"; String bucketName = awsProperties.getS3().getBucket(); + // `createPresignedGetUrl` 메서드 모킹 + when(s3PresignedUrlService.createPresignedGetUrl(anyString(), anyString())) + .thenReturn("https://mocked-get-url.com"); + String presignedUrl = s3PresignedUrlService.createPresignedGetUrl(bucketName, objectKey); assertNotNull(presignedUrl); @@ -62,12 +43,14 @@ public void testCreatePresignedPutUrl() { String keyPrefix = "uploads"; String bucketName = awsProperties.getS3().getBucket(); - // 메타데이터 생성 Map metadata = new HashMap<>(); metadata.put("Content-Type", "image/jpg"); metadata.put("x-amz-meta-title", "Test Image"); - // presigned PUT URL 생성 + // `createPresignedPutUrl` 메서드 모킹 + when(s3PresignedUrlService.createPresignedPutUrl(anyString(), anyString(), any(Map.class))) + .thenReturn("https://mocked-put-url.com"); + String presignedUrl = s3PresignedUrlService.createPresignedPutUrl(bucketName, keyPrefix, metadata); assertNotNull(presignedUrl);