private String addObjectAndValidateContent(String sourcecontainer, String sourceKey) throws InterruptedException { String eTag = addBlobToContainer(sourcecontainer, sourceKey); validateContent(sourcecontainer, sourceKey); awaitConsistency(); return eTag; }
@Test(groups = { "integration", "live" }, dataProvider = "delete") public void deleteObject(String name) throws InterruptedException { String container = getContainerName(); try { addBlobToContainer(container, name, name, MediaType.TEXT_PLAIN); awaitConsistency(); view.getBlobStore().removeBlob(container, name); awaitConsistency(); assertContainerEmptyDeleting(container, name); } finally { returnContainer(container); } }
@Test(groups = { "integration", "live" }, dataProvider = "delete") public void deleteMultipleObjects(String name) throws InterruptedException { String name2 = name + "2"; String container = getContainerName(); try { addBlobToContainer(container, name, name, MediaType.TEXT_PLAIN); addBlobToContainer(container, name2, name2, MediaType.TEXT_PLAIN); awaitConsistency(); view.getBlobStore().removeBlobs(container, ImmutableSet.of(name, name2)); awaitConsistency(); assertContainerEmptyDeleting(container, name); } finally { returnContainer(container); } }
@Test(groups = { "integration", "live" }) public void testGetIfUnmodifiedSince() throws InterruptedException { String container = getContainerName(); try { String name = "apples"; Date before = new Date(System.currentTimeMillis() - 10000); addObjectAndValidateContent(container, name); Date after = new Date(System.currentTimeMillis() + 10000); awaitConsistency(); view.getBlobStore().getBlob(container, name, ifUnmodifiedSince(after)); validateContent(container, name); try { view.getBlobStore().getBlob(container, name, ifUnmodifiedSince(before)); validateContent(container, name); } catch (HttpResponseException ex) { assertEquals(ex.getResponse().getStatusCode(), 412); } } finally { returnContainer(container); } }
blob.getMetadata().getUserMetadata().put("Adrian", "powderpuff"); awaitConsistency(); addBlobToContainer(container, blob); awaitConsistency(); validateMetadata(view.getBlobStore().blobMetadata(container, name));
@Test(groups = { "integration", "live" }) public void testPutObjectStream() throws InterruptedException, IOException, ExecutionException { PayloadBlobBuilder blobBuilder = view.getBlobStore().blobBuilder("streaming").payload( new ByteSourcePayload(ByteSource.wrap("foo".getBytes()))); addContentMetadata(blobBuilder); Blob blob = blobBuilder.build(); String container = getContainerName(); try { assertNotNull(view.getBlobStore().putBlob(container, blob)); awaitConsistency(); blob = view.getBlobStore().getBlob(container, blob.getMetadata().getName()); String returnedString = getContentAsStringOrNullAndClose(blob); assertEquals(returnedString, "foo"); validateMetadata(blob.getMetadata(), container, blob.getMetadata().getName()); checkContentMetadata(blob); PageSet<? extends StorageMetadata> set = view.getBlobStore().list(container); assert set.size() == 1 : set; } finally { returnContainer(container); } }
@Test(groups = { "integration", "live" }, dataProvider = "putTests") public void testPutObject(String name, String type, Object content, Object realObject) throws InterruptedException, IOException { PayloadBlobBuilder blobBuilder = view.getBlobStore().blobBuilder(name).payload(Payloads.newPayload(content)) .contentType(type); addContentMetadata(blobBuilder); Blob blob = blobBuilder.build(); String container = getContainerName(); try { assertNotNull(view.getBlobStore().putBlob(container, blob)); awaitConsistency(); blob = view.getBlobStore().getBlob(container, blob.getMetadata().getName()); validateMetadata(blob.getMetadata(), container, name); checkContentMetadata(blob); String returnedString = getContentAsStringOrNullAndClose(blob); assertEquals(returnedString, realObject); PageSet<? extends StorageMetadata> set = view.getBlobStore().list(container); assert set.size() == 1 : set; } finally { returnContainer(container); } }