@Override public BlobBuilder get() { return new BlobBuilderImpl(); } }, TestUtils.TARGET_BASE_DIR, true, new FilesystemContainerNameValidatorImpl(), new FilesystemBlobKeyValidatorImpl(), defaultLocation);
@Override public BlobBuilder get() { return new BlobBuilderImpl(); } }, absoluteBasePath, false, new FilesystemContainerNameValidatorImpl(), new FilesystemBlobKeyValidatorImpl(), defaultLocation);
@Override public BlobBuilder blobBuilder(String name) { return new BlobBuilderImpl().name(name); }
@Override public BlobBuilder blobBuilder(String name) { return new BlobBuilderImpl().name(name); }
@Override public BlobBuilder blobBuilder(String name) { return new BlobBuilderImpl().name(name); }
@Override public BlobBuilder get() { return new BlobBuilderImpl(); }
@Test public void testPutBlobTrailingSlash() throws Exception { String key = "key"; ByteSource byteSource = ByteSource.empty(); Blob blob = new BlobBuilderImpl() .name(key + "/") .payload(byteSource) .contentLength(byteSource.size()) .build(); storageStrategy.putBlob(CONTAINER_NAME, blob); blob = storageStrategy.getBlob(CONTAINER_NAME, key); assertThat(blob).isNull(); blob = storageStrategy.getBlob(CONTAINER_NAME, key + "/"); assertThat(blob).isNotNull(); }
@Test public void testGetBlobTrailingSlash() throws Exception { String key = "key"; ByteSource byteSource = randomByteSource().slice(0, 1024); Blob blob = new BlobBuilderImpl() .name(key) .payload(byteSource) .contentLength(byteSource.size()) .build(); storageStrategy.putBlob(CONTAINER_NAME, blob); blob = storageStrategy.getBlob(CONTAINER_NAME, key); assertThat(blob).isNotNull(); blob = storageStrategy.getBlob(CONTAINER_NAME, key + "/"); assertThat(blob).isNull(); }
@Test(dataProvider = "ignoreOnMacOSX") public void testOverwriteBlobMetadata() throws Exception { String blobKey = TestUtils.createRandomBlobKey("writePayload-", ".img"); // write blob Blob blob = new BlobBuilderImpl() .name(blobKey) .payload(randomByteSource().slice(0, 1024)) .userMetadata(ImmutableMap.of("key1", "value1")) .build(); storageStrategy.putBlob(CONTAINER_NAME, blob); blob = storageStrategy.getBlob(CONTAINER_NAME, blobKey); assertEquals(blob.getMetadata().getUserMetadata().get("key1"), "value1"); // overwrite blob blob = new BlobBuilderImpl() .name(blobKey) .payload(randomByteSource().slice(0, 1024)) // no metadata .build(); Uninterruptibles.sleepUninterruptibly(1, TimeUnit.SECONDS); storageStrategy.putBlob(CONTAINER_NAME, blob); blob = storageStrategy.getBlob(CONTAINER_NAME, blobKey); assertFalse(blob.getMetadata().getUserMetadata().containsKey("key1")); }
@Test public void testPutIncorrectContentLength() throws Exception { Blob blob = new BlobBuilderImpl() .name("key") .payload(randomByteSource().slice(0, 1024)) .contentLength(512) .build(); try { storageStrategy.putBlob(CONTAINER_NAME, blob); Fail.failBecauseExceptionWasNotThrown(IOException.class); } catch (IOException ioe) { // expected } }
assertEquals(api.execute("container", new BlobBuilderImpl().name("foo").payload(bytes).build()), "fff"); } finally { RecordedRequest authRequest = server.takeRequest();
@Test(expectedExceptions = HttpResponseException.class) public void testMPUAbortsOnProblem() throws IOException, InterruptedException { MockWebServer server = new MockWebServer(); server.enqueue(new MockResponse().setResponseCode(200).setBody("<UploadId>upload-id</UploadId>")); server.enqueue(new MockResponse().setResponseCode(400)); server.enqueue(new MockResponse().setResponseCode(200)); server.play(); byte[] bytes = "0123456789abcdef".getBytes(Charsets.US_ASCII); int partSize = bytes.length / 2; SequentialMultipartUploadStrategy api = mockSequentialMultipartUploadStrategy(server.getUrl("/").toString(), partSize); try { assertEquals(api.execute("container", new BlobBuilderImpl().name("foo").payload(bytes).build()), "fff"); } finally { RecordedRequest initiate = server.takeRequest(); assertEquals(initiate.getRequestLine(), "POST /container/foo?uploads HTTP/1.1"); assertEquals(initiate.getHeader("Content-Length"), "0"); RecordedRequest part1 = server.takeRequest(); assertEquals(part1.getRequestLine(), "PUT /container/foo?partNumber=1&uploadId=upload-id HTTP/1.1"); assertEquals(part1.getHeader("Content-Length"), String.valueOf(partSize)); assertEquals(new String(part1.getBody()), "01234567"); RecordedRequest abort = server.takeRequest(); assertEquals(abort.getRequestLine(), "DELETE /container/foo?uploadId=upload-id HTTP/1.1"); server.shutdown(); } }
assertEquals(api.execute("container", new BlobBuilderImpl().name("foo").payload(bytes).build()), "fff"); } finally {