114 lines
3.7 KiB
Java
114 lines
3.7 KiB
Java
package com.baeldung.s3;
|
|
|
|
import static org.assertj.core.api.Assertions.assertThat;
|
|
import static org.mockito.ArgumentMatchers.any;
|
|
import static org.mockito.ArgumentMatchers.anyString;
|
|
import static org.mockito.Mockito.mock;
|
|
import static org.mockito.Mockito.verify;
|
|
import static org.mockito.Mockito.when;
|
|
|
|
import java.io.File;
|
|
|
|
import org.junit.Before;
|
|
import org.junit.Test;
|
|
|
|
import com.amazonaws.services.s3.AmazonS3;
|
|
import com.amazonaws.services.s3.model.CopyObjectResult;
|
|
import com.amazonaws.services.s3.model.DeleteObjectsRequest;
|
|
import com.amazonaws.services.s3.model.DeleteObjectsResult;
|
|
import com.amazonaws.services.s3.model.PutObjectResult;
|
|
|
|
public class AWSS3ServiceIntegrationTest {
|
|
|
|
private static final String BUCKET_NAME = "bucket_name";
|
|
private static final String KEY_NAME = "key_name";
|
|
private static final String BUCKET_NAME2 = "bucket_name2";
|
|
private static final String KEY_NAME2 = "key_name2";
|
|
|
|
private AmazonS3 s3;
|
|
private AWSS3Service service;
|
|
|
|
@Before
|
|
public void setUp() {
|
|
s3 = mock(AmazonS3.class);
|
|
service = new AWSS3Service(s3);
|
|
}
|
|
|
|
@Test
|
|
public void whenInitializingAWSS3Service_thenNotNull() {
|
|
assertThat(new AWSS3Service()).isNotNull();
|
|
}
|
|
|
|
@Test
|
|
public void whenVerifyingIfS3BucketExist_thenCorrect() {
|
|
service.doesBucketExist(BUCKET_NAME);
|
|
verify(s3).doesBucketExist(BUCKET_NAME);
|
|
}
|
|
|
|
@Test
|
|
public void whenVerifyingCreationOfS3Bucket_thenCorrect() {
|
|
service.createBucket(BUCKET_NAME);
|
|
verify(s3).createBucket(BUCKET_NAME);
|
|
}
|
|
|
|
@Test
|
|
public void whenVerifyingListBuckets_thenCorrect() {
|
|
service.listBuckets();
|
|
verify(s3).listBuckets();
|
|
}
|
|
|
|
@Test
|
|
public void whenDeletingBucket_thenCorrect() {
|
|
service.deleteBucket(BUCKET_NAME);
|
|
verify(s3).deleteBucket(BUCKET_NAME);
|
|
}
|
|
|
|
@Test
|
|
public void whenVerifyingPutObject_thenCorrect() {
|
|
File file = mock(File.class);
|
|
PutObjectResult result = mock(PutObjectResult.class);
|
|
when(s3.putObject(anyString(), anyString(), (File) any())).thenReturn(result);
|
|
|
|
assertThat(service.putObject(BUCKET_NAME, KEY_NAME, file)).isEqualTo(result);
|
|
verify(s3).putObject(BUCKET_NAME, KEY_NAME, file);
|
|
}
|
|
|
|
@Test
|
|
public void whenVerifyingListObjects_thenCorrect() {
|
|
service.listObjects(BUCKET_NAME);
|
|
verify(s3).listObjects(BUCKET_NAME);
|
|
}
|
|
|
|
@Test
|
|
public void whenVerifyingGetObject_thenCorrect() {
|
|
service.getObject(BUCKET_NAME, KEY_NAME);
|
|
verify(s3).getObject(BUCKET_NAME, KEY_NAME);
|
|
}
|
|
|
|
@Test
|
|
public void whenVerifyingCopyObject_thenCorrect() {
|
|
CopyObjectResult result = mock(CopyObjectResult.class);
|
|
when(s3.copyObject(anyString(), anyString(), anyString(), anyString())).thenReturn(result);
|
|
|
|
assertThat(service.copyObject(BUCKET_NAME, KEY_NAME, BUCKET_NAME2, KEY_NAME2)).isEqualTo(result);
|
|
verify(s3).copyObject(BUCKET_NAME, KEY_NAME, BUCKET_NAME2, KEY_NAME2);
|
|
}
|
|
|
|
@Test
|
|
public void whenVerifyingDeleteObject_thenCorrect() {
|
|
service.deleteObject(BUCKET_NAME, KEY_NAME);
|
|
verify(s3).deleteObject(BUCKET_NAME, KEY_NAME);
|
|
}
|
|
|
|
@Test
|
|
public void whenVerifyingDeleteObjects_thenCorrect() {
|
|
DeleteObjectsRequest request = mock(DeleteObjectsRequest.class);
|
|
DeleteObjectsResult result = mock(DeleteObjectsResult.class);
|
|
when(s3.deleteObjects((DeleteObjectsRequest)any())).thenReturn(result);
|
|
|
|
assertThat(service.deleteObjects(request)).isEqualTo(result);
|
|
verify(s3).deleteObjects(request);
|
|
}
|
|
|
|
}
|