JCLOUDS-96: JCLOUDS-351: Fix S3 copy if tests

Use correct options in testCopyIfUnmodifiedSince, use looser time
bounds, and ensure that tests throw HttpResponseException when
expected.
This commit is contained in:
Andrew Gaul 2015-01-23 19:24:21 -08:00
parent 2ed971d216
commit affad9fa3b
1 changed files with 8 additions and 7 deletions

View File

@ -27,6 +27,7 @@ import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertFalse; import static org.testng.Assert.assertFalse;
import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue; import static org.testng.Assert.assertTrue;
import static org.testng.Assert.fail;
import java.io.IOException; import java.io.IOException;
import java.net.URI; import java.net.URI;
@ -359,14 +360,13 @@ public class S3ClientLiveTest extends BaseBlobStoreIntegrationTest {
return etag; return etag;
} }
// TODO: fails on linux and windows
public void testCopyIfModifiedSince() throws InterruptedException, ExecutionException, TimeoutException, IOException { public void testCopyIfModifiedSince() throws InterruptedException, ExecutionException, TimeoutException, IOException {
String containerName = getContainerName(); String containerName = getContainerName();
String destinationContainer = getContainerName(); String destinationContainer = getContainerName();
try { try {
Date before = new Date(); Date before = new Date(System.currentTimeMillis() - 10 * 1000);
addToContainerAndValidate(containerName, sourceKey + "mod"); addToContainerAndValidate(containerName, sourceKey + "mod");
Date after = new Date(System.currentTimeMillis() + 1000); Date after = new Date(System.currentTimeMillis() + 10 * 1000);
getApi().copyObject(containerName, sourceKey + "mod", destinationContainer, destinationKey, getApi().copyObject(containerName, sourceKey + "mod", destinationContainer, destinationKey,
ifSourceModifiedSince(before)); ifSourceModifiedSince(before));
@ -375,6 +375,7 @@ public class S3ClientLiveTest extends BaseBlobStoreIntegrationTest {
try { try {
getApi().copyObject(containerName, sourceKey + "mod", destinationContainer, destinationKey, getApi().copyObject(containerName, sourceKey + "mod", destinationContainer, destinationKey,
ifSourceModifiedSince(after)); ifSourceModifiedSince(after));
fail("should have thrown HttpResponseException");
} catch (HttpResponseException ex) { } catch (HttpResponseException ex) {
assertEquals(ex.getResponse().getStatusCode(), 412); assertEquals(ex.getResponse().getStatusCode(), 412);
} }
@ -385,15 +386,14 @@ public class S3ClientLiveTest extends BaseBlobStoreIntegrationTest {
} }
} }
// TODO: fails on linux and windows
public void testCopyIfUnmodifiedSince() throws InterruptedException, ExecutionException, TimeoutException, public void testCopyIfUnmodifiedSince() throws InterruptedException, ExecutionException, TimeoutException,
IOException { IOException {
String containerName = getContainerName(); String containerName = getContainerName();
String destinationContainer = getContainerName(); String destinationContainer = getContainerName();
try { try {
Date before = new Date(); Date before = new Date(System.currentTimeMillis() - 10 * 1000);
addToContainerAndValidate(containerName, sourceKey + "un"); addToContainerAndValidate(containerName, sourceKey + "un");
Date after = new Date(System.currentTimeMillis() + 1000); Date after = new Date(System.currentTimeMillis() + 10 * 1000);
getApi().copyObject(containerName, sourceKey + "un", destinationContainer, destinationKey, getApi().copyObject(containerName, sourceKey + "un", destinationContainer, destinationKey,
ifSourceUnmodifiedSince(after)); ifSourceUnmodifiedSince(after));
@ -401,7 +401,8 @@ public class S3ClientLiveTest extends BaseBlobStoreIntegrationTest {
try { try {
getApi().copyObject(containerName, sourceKey + "un", destinationContainer, destinationKey, getApi().copyObject(containerName, sourceKey + "un", destinationContainer, destinationKey,
ifSourceModifiedSince(before)); ifSourceUnmodifiedSince(before));
fail("should have thrown HttpResponseException");
} catch (HttpResponseException ex) { } catch (HttpResponseException ex) {
assertEquals(ex.getResponse().getStatusCode(), 412); assertEquals(ex.getResponse().getStatusCode(), 412);
} }