package com.neverwinterdp.scribengin.nizarS3;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
import org.junit.Before;
import org.junit.Test;
import com.amazonaws.AmazonClientException;
import com.amazonaws.services.s3.model.AccessControlList;
import com.amazonaws.services.s3.model.Bucket;
import com.amazonaws.services.s3.model.PutObjectResult;
import com.neverwinterdp.scribengin.nizarS3.AmazonS3Mock.ExceptionType;
public class AmazonS3MockUnitTest {
@Before
public void setUp() throws Exception {
}
@Test(expected=AmazonClientException.class)
public void testCreateBucketException() {
AmazonS3Mock s3sinkMock = new AmazonS3Mock();
s3sinkMock.simulateCreateBucketException(ExceptionType.AmazonClientException);
s3sinkMock.createBucket("test");
}
@Test
public void testCreateBucket() {
AmazonS3Mock s3sinkMock = new AmazonS3Mock();
Bucket bucket = s3sinkMock.createBucket("test");
assertTrue(bucket.getName().equals("test"));
}
@Test(expected=AmazonClientException.class)
public void testDoesBucketExistException() {
AmazonS3Mock s3sinkMock = new AmazonS3Mock();
s3sinkMock.simulateDoesBucketExistException(ExceptionType.AmazonClientException,false);
s3sinkMock.doesBucketExist("bucketName");
}
@Test
public void testDoesBucketExist() {
AmazonS3Mock s3sinkMock = new AmazonS3Mock();
s3sinkMock.simulateDoesBucketExistException(ExceptionType.None,true);
boolean result = s3sinkMock.doesBucketExist("bucketName");
assertTrue(result);
}
@Test(expected=AmazonClientException.class)
public void testGetBucketAclException() {
AmazonS3Mock s3sinkMock = new AmazonS3Mock();
s3sinkMock.simulateGetBucketAclException(ExceptionType.AmazonClientException);
s3sinkMock.getBucketAcl("test");
}
@Test
public void testGetBucketAcl() {
AmazonS3Mock s3sinkMock = new AmazonS3Mock();
AccessControlList acl = s3sinkMock.getBucketAcl("test");
assertTrue(acl != null);
}
@Test(expected=AmazonClientException.class)
public void testPutObjectException() {
AmazonS3Mock s3sinkMock = new AmazonS3Mock();
s3sinkMock.simulatePutObjectException(ExceptionType.AmazonClientException);
s3sinkMock.putObject("bucketName", "key", new File("test",""));
}
@Test
public void testPutObject() throws IOException {
AmazonS3Mock s3sinkMock = new AmazonS3Mock();
s3sinkMock.createBucket("test_bucket");
File file = new File("test","");
file.createNewFile();
PutObjectResult result = s3sinkMock.putObject("test_bucket", "key", file);
file.delete();
assertTrue(result != null);
}
}