@Override
 protected void addTenObjectsUnderRoot(String containerName) throws InterruptedException {
   BlobMap blobMap = createMap(context, containerName, ListContainerOptions.NONE);
   for (int i = 0; i < 10; i++) {
     blobMap.put(i + "", blobMap.blobBuilder().payload(i + "content").build());
   }
 }
  @Test(groups = {"integration", "live"})
  public void testPutMoreThanSingleListing()
      throws InterruptedException, ExecutionException, TimeoutException {
    if (maxResultsForTestListings() == 0) return;
    String bucketName = getContainerName();
    try {
      BlobMap map = createMap(context, bucketName);
      Builder<String> keySet = ImmutableSet.<String>builder();
      for (int i = 0; i < maxResultsForTestListings() + 1; i++) {
        keySet.add(i + "");
      }

      Map<String, Blob> newMap = Maps.newLinkedHashMap();
      for (String key : keySet.build()) {
        newMap.put(key, map.blobBuilder().payload(key).build());
      }
      map.putAll(newMap);
      newMap.clear();

      assertConsistencyAwareMapSize(map, maxResultsForTestListings() + 1);
      assertConsistencyAwareKeySetEquals(map, keySet.build());
      map.clear();
      assertConsistencyAwareMapSize(map, 0);
    } finally {
      returnContainer(bucketName);
    }
  }
  @Override
  @Test(groups = {"integration", "live"})
  public void testEntrySet() throws IOException, InterruptedException {
    String bucketName = getContainerName();
    try {
      final BlobMap map = createMap(context, bucketName);
      putFiveStrings(map);
      assertConsistencyAwareMapSize(map, 5);
      Set<Entry<String, Blob>> entries = map.entrySet();
      assertEquals(entries.size(), 5);
      for (Entry<String, Blob> entry : entries) {
        assertEquals(
            fiveStrings.get(entry.getKey()), getContentAsStringOrNullAndClose(entry.getValue()));
        Blob blob = entry.getValue();
        blob.setPayload("");
        Payloads.calculateMD5(blob);
        entry.setValue(blob);
      }
      assertConsistencyAware(
          new Runnable() {
            public void run() {
              for (Blob blob : map.values()) {
                try {
                  assertEquals(getContentAsStringOrNullAndClose(blob), "");
                } catch (IOException e) {
                  Throwables.propagate(e);
                }
              }
            }
          });

    } finally {
      returnContainer(bucketName);
    }
  }
 @Override
 protected void addTenObjectsUnderPrefix(String containerName, String prefix)
     throws InterruptedException {
   BlobMap blobMap = createMap(context, containerName, inDirectory(prefix));
   for (int i = 0; i < 10; i++) {
     blobMap.put(i + "", blobMap.blobBuilder().payload(i + "content").build());
   }
 }
  @Override
  @Test(groups = {"integration", "live"})
  public void testValues() throws IOException, InterruptedException {
    String bucketName = getContainerName();
    try {
      BlobMap map = createMap(context, bucketName);

      putFiveStrings(map);
      putFiveStringsUnderPath(map);

      Collection<Blob> blobs = map.values();
      assertConsistencyAwareMapSize(map, 5);
      Set<String> blobsAsString = Sets.newLinkedHashSet();
      for (Blob blob : blobs) {
        blobsAsString.add(getContentAsStringOrNullAndClose(blob));
      }
      blobsAsString.removeAll(fiveStrings.values());
      assert blobsAsString.size() == 0 : blobsAsString.size() + ": " + blobs + ": " + blobsAsString;
    } finally {
      returnContainer(bucketName);
    }
  }
 @Override
 public Blob apply(String arg0) {
   return map.blobBuilder().payload(arg0).build();
 }
 protected void putFiveStringsUnderPath(BlobMap map) {
   map.putAll(Maps.transformValues(fiveStringsUnderPath, new StringToBlob(map)));
 }