Add more tests for delimiter, prefixes, and marker

s3-tests uncovered interactions between these options which existing
tests do not exercise.


Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/da3e7463
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/da3e7463
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/da3e7463

Branch: refs/heads/master
Commit: da3e7463fd90932ff40f0ec2cad5404722b149fa
Parents: 46f4a4e
Author: Andrew Gaul <[email protected]>
Authored: Tue Jan 20 14:09:40 2015 -0800
Committer: Andrew Gaul <[email protected]>
Committed: Thu Jan 22 11:37:46 2015 -0800

----------------------------------------------------------------------
 .../internal/BaseContainerIntegrationTest.java  | 60 ++++++++++++++++++++
 1 file changed, 60 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jclouds/blob/da3e7463/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java
----------------------------------------------------------------------
diff --git 
a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java
 
b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java
index 6e3332e..2aa3478 100644
--- 
a/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java
+++ 
b/blobstore/src/test/java/org/jclouds/blobstore/integration/internal/BaseContainerIntegrationTest.java
@@ -29,6 +29,7 @@ import static org.testng.Assert.assertFalse;
 import static org.testng.Assert.assertTrue;
 
 import java.io.IOException;
+import java.util.Iterator;
 import java.util.Set;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.TimeoutException;
@@ -317,6 +318,65 @@ public class BaseContainerIntegrationTest extends 
BaseBlobStoreIntegrationTest {
    }
 
    @Test(groups = { "integration", "live" })
+   public void testDelimiter() throws Exception {
+      String containerName = getContainerName();
+      try {
+         for (String blobName : new String[] { "asdf", "boo/bar", 
"boo/baz/xyzzy", "cquux/thud", "cquux/bla" }) {
+            Blob blob = 
view.getBlobStore().blobBuilder(blobName).payload(TEST_STRING).build();
+            addBlobToContainer(containerName, blob);
+         }
+
+         // test root directory without marker
+         PageSet<? extends StorageMetadata> pageSet = 
view.getBlobStore().list(containerName);
+         assertThat(pageSet).hasSize(3);
+         assertThat(pageSet.getNextMarker()).isNull();
+
+         // list root directory with marker
+         ListContainerOptions options = new 
ListContainerOptions().maxResults(1);
+         pageSet = view.getBlobStore().list(containerName, options);
+         assertThat(pageSet).hasSize(1);
+         assertThat(pageSet.iterator().next().getName()).isEqualTo("asdf");
+         assertThat(pageSet.getNextMarker()).isEqualTo("asdf");
+
+         options.afterMarker(pageSet.getNextMarker());
+         pageSet = view.getBlobStore().list(containerName, options);
+         assertThat(pageSet).hasSize(1);
+         assertThat(pageSet.iterator().next().getName()).isEqualTo("boo");
+         assertThat(pageSet.getNextMarker()).isEqualTo("boo/");
+
+         options.afterMarker(pageSet.getNextMarker());
+         pageSet = view.getBlobStore().list(containerName, options);
+         assertThat(pageSet).hasSize(1);
+         assertThat(pageSet.iterator().next().getName()).isEqualTo("cquux");
+         assertThat(pageSet.getNextMarker()).isNull();
+
+         // list child directory with marker
+         options = new ListContainerOptions().inDirectory("boo").maxResults(1);
+         pageSet = view.getBlobStore().list(containerName, options);
+         assertThat(pageSet).hasSize(1);
+         assertThat(pageSet.iterator().next().getName()).isEqualTo("boo/bar");
+         assertThat(pageSet.getNextMarker()).isEqualTo("boo/bar");
+
+         options.afterMarker(pageSet.getNextMarker());
+         pageSet = view.getBlobStore().list(containerName, options);
+         assertThat(pageSet).hasSize(1);
+         assertThat(pageSet.iterator().next().getName()).isEqualTo("boo/baz");
+         assertThat(pageSet.getNextMarker()).isNull();
+
+         // list child directory without marker
+         options = new ListContainerOptions().inDirectory("boo").maxResults(2);
+         pageSet = view.getBlobStore().list(containerName, options);
+         assertThat(pageSet).hasSize(2);
+         Iterator<? extends StorageMetadata> it = pageSet.iterator();
+         assertThat(it.next().getName()).isEqualTo("boo/bar");
+         assertThat(it.next().getName()).isEqualTo("boo/baz");
+         assertThat(pageSet.getNextMarker()).isNull();
+      } finally {
+         returnContainer(containerName);
+      }
+   }
+
+   @Test(groups = { "integration", "live" })
    public void containerExists() throws InterruptedException {
       String containerName = getContainerName();
       try {

Reply via email to