@Test public void testUpdateAllIterable() { RpcBatch batchMock = EasyMock.createMock(RpcBatch.class); Capture<RpcBatch.Callback<StorageObject>> callback1 = Capture.newInstance(); Capture<RpcBatch.Callback<StorageObject>> callback2 = Capture.newInstance(); batchMock.addPatch( EasyMock.eq(BLOB_INFO1.toPb()), EasyMock.capture(callback1), EasyMock.eq(ImmutableMap.<StorageRpc.Option, Object>of())); batchMock.addPatch( EasyMock.eq(BLOB_INFO2.toPb()), EasyMock.capture(callback2), EasyMock.eq(ImmutableMap.<StorageRpc.Option, Object>of())); EasyMock.expect(storageRpcMock.createBatch()).andReturn(batchMock); batchMock.submit(); EasyMock.replay(storageRpcMock, batchMock); initializeService(); List<Blob> resultBlobs = storage.update(ImmutableList.of(BLOB_INFO1, BLOB_INFO2)); callback1.getValue().onSuccess(BLOB_INFO1.toPb()); callback2.getValue().onFailure(new GoogleJsonError()); assertEquals(2, resultBlobs.size()); assertEquals(new Blob(storage, new BlobInfo.BuilderImpl(BLOB_INFO1)), resultBlobs.get(0)); assertNull(resultBlobs.get(1)); EasyMock.verify(batchMock); }
@Test public void testUpdateAllArray() { RpcBatch batchMock = EasyMock.createMock(RpcBatch.class); Capture<RpcBatch.Callback<StorageObject>> callback1 = Capture.newInstance(); Capture<RpcBatch.Callback<StorageObject>> callback2 = Capture.newInstance(); batchMock.addPatch( EasyMock.eq(BLOB_INFO1.toPb()), EasyMock.capture(callback1), EasyMock.eq(ImmutableMap.<StorageRpc.Option, Object>of())); batchMock.addPatch( EasyMock.eq(BLOB_INFO2.toPb()), EasyMock.capture(callback2), EasyMock.eq(ImmutableMap.<StorageRpc.Option, Object>of())); EasyMock.expect(storageRpcMock.createBatch()).andReturn(batchMock); batchMock.submit(); EasyMock.replay(storageRpcMock, batchMock); initializeService(); List<Blob> resultBlobs = storage.update(BLOB_INFO1, BLOB_INFO2); callback1.getValue().onSuccess(BLOB_INFO1.toPb()); callback2.getValue().onFailure(new GoogleJsonError()); assertEquals(2, resultBlobs.size()); assertEquals(new Blob(storage, new BlobInfo.BuilderImpl(BLOB_INFO1)), resultBlobs.get(0)); assertNull(resultBlobs.get(1)); EasyMock.verify(batchMock); }
@Test public void testDeleteAllIterable() { BlobId blobId1 = BlobId.of(BUCKET_NAME1, BLOB_NAME1); BlobId blobId2 = BlobId.of(BUCKET_NAME1, BLOB_NAME2); RpcBatch batchMock = EasyMock.createMock(RpcBatch.class); Capture<RpcBatch.Callback<Void>> callback1 = Capture.newInstance(); Capture<RpcBatch.Callback<Void>> callback2 = Capture.newInstance(); batchMock.addDelete( EasyMock.eq(blobId1.toPb()), EasyMock.capture(callback1), EasyMock.eq(ImmutableMap.<StorageRpc.Option, Object>of())); batchMock.addDelete( EasyMock.eq(blobId2.toPb()), EasyMock.capture(callback2), EasyMock.eq(ImmutableMap.<StorageRpc.Option, Object>of())); EasyMock.expect(storageRpcMock.createBatch()).andReturn(batchMock); batchMock.submit(); EasyMock.replay(storageRpcMock, batchMock); initializeService(); List<Boolean> result = storage.delete(blobId1, blobId2); callback1.getValue().onSuccess(null); callback2.getValue().onFailure(new GoogleJsonError()); assertEquals(2, result.size()); assertTrue(result.get(0)); assertFalse(result.get(1)); EasyMock.verify(batchMock); }
@Override public void onSuccess(T response, HttpHeaders httpHeaders) throws IOException { callback.onSuccess(response); }
@Test public void testGetAllArrayIterable() { BlobId blobId1 = BlobId.of(BUCKET_NAME1, BLOB_NAME1); BlobId blobId2 = BlobId.of(BUCKET_NAME1, BLOB_NAME2); RpcBatch batchMock = EasyMock.createMock(RpcBatch.class); Capture<RpcBatch.Callback<StorageObject>> callback1 = Capture.newInstance(); Capture<RpcBatch.Callback<StorageObject>> callback2 = Capture.newInstance(); batchMock.addGet( EasyMock.eq(blobId1.toPb()), EasyMock.capture(callback1), EasyMock.eq(ImmutableMap.<StorageRpc.Option, Object>of())); batchMock.addGet( EasyMock.eq(blobId2.toPb()), EasyMock.capture(callback2), EasyMock.eq(ImmutableMap.<StorageRpc.Option, Object>of())); EasyMock.expect(storageRpcMock.createBatch()).andReturn(batchMock); batchMock.submit(); EasyMock.replay(storageRpcMock, batchMock); initializeService(); List<Blob> resultBlobs = storage.get(ImmutableList.of(blobId1, blobId2)); callback1.getValue().onSuccess(BLOB_INFO1.toPb()); callback2.getValue().onFailure(new GoogleJsonError()); assertEquals(2, resultBlobs.size()); assertEquals(new Blob(storage, new BlobInfo.BuilderImpl(BLOB_INFO1)), resultBlobs.get(0)); assertNull(resultBlobs.get(1)); EasyMock.verify(batchMock); }
@Test public void testGetAllArray() { BlobId blobId1 = BlobId.of(BUCKET_NAME1, BLOB_NAME1); BlobId blobId2 = BlobId.of(BUCKET_NAME1, BLOB_NAME2); RpcBatch batchMock = EasyMock.createMock(RpcBatch.class); Capture<RpcBatch.Callback<StorageObject>> callback1 = Capture.newInstance(); Capture<RpcBatch.Callback<StorageObject>> callback2 = Capture.newInstance(); batchMock.addGet( EasyMock.eq(blobId1.toPb()), EasyMock.capture(callback1), EasyMock.eq(ImmutableMap.<StorageRpc.Option, Object>of())); batchMock.addGet( EasyMock.eq(blobId2.toPb()), EasyMock.capture(callback2), EasyMock.eq(ImmutableMap.<StorageRpc.Option, Object>of())); EasyMock.expect(storageRpcMock.createBatch()).andReturn(batchMock); batchMock.submit(); EasyMock.replay(storageRpcMock, batchMock); initializeService(); List<Blob> resultBlobs = storage.get(blobId1, blobId2); callback1.getValue().onSuccess(BLOB_INFO1.toPb()); callback2.getValue().onFailure(new GoogleJsonError()); assertEquals(2, resultBlobs.size()); assertEquals(new Blob(storage, new BlobInfo.BuilderImpl(BLOB_INFO1)), resultBlobs.get(0)); assertNull(resultBlobs.get(1)); EasyMock.verify(batchMock); }
@Test public void testDeleteAllArray() { BlobId blobId1 = BlobId.of(BUCKET_NAME1, BLOB_NAME1); BlobId blobId2 = BlobId.of(BUCKET_NAME1, BLOB_NAME2); RpcBatch batchMock = EasyMock.createMock(RpcBatch.class); Capture<RpcBatch.Callback<Void>> callback1 = Capture.newInstance(); Capture<RpcBatch.Callback<Void>> callback2 = Capture.newInstance(); batchMock.addDelete( EasyMock.eq(blobId1.toPb()), EasyMock.capture(callback1), EasyMock.eq(ImmutableMap.<StorageRpc.Option, Object>of())); batchMock.addDelete( EasyMock.eq(blobId2.toPb()), EasyMock.capture(callback2), EasyMock.eq(ImmutableMap.<StorageRpc.Option, Object>of())); EasyMock.expect(storageRpcMock.createBatch()).andReturn(batchMock); batchMock.submit(); EasyMock.replay(storageRpcMock, batchMock); initializeService(); List<Boolean> result = storage.delete(blobId1, blobId2); callback1.getValue().onSuccess(null); callback2.getValue().onFailure(new GoogleJsonError()); assertEquals(2, result.size()); assertTrue(result.get(0)); assertFalse(result.get(1)); EasyMock.verify(batchMock); }
@Test public void testUpdateWithOptions() { EasyMock.reset(storage, batchMock, optionsMock); EasyMock.expect(storage.getOptions()).andReturn(optionsMock).times(2); EasyMock.expect(optionsMock.getService()).andReturn(storage); Capture<RpcBatch.Callback<StorageObject>> callback = Capture.newInstance(); Capture<Map<StorageRpc.Option, Object>> capturedOptions = Capture.newInstance(); batchMock.addPatch( EasyMock.eq(BLOB_INFO_COMPLETE.toPb()), EasyMock.capture(callback), EasyMock.capture(capturedOptions)); EasyMock.replay(batchMock, storage, optionsMock); StorageBatchResult<Blob> batchResult = storageBatch.update(BLOB_INFO_COMPLETE, BLOB_TARGET_OPTIONS); assertNotNull(callback.getValue()); assertEquals(2, capturedOptions.getValue().size()); assertEquals(42L, capturedOptions.getValue().get(BLOB_TARGET_OPTIONS[0].getRpcOption())); assertEquals(42L, capturedOptions.getValue().get(BLOB_TARGET_OPTIONS[1].getRpcOption())); RpcBatch.Callback<StorageObject> capturedCallback = callback.getValue(); capturedCallback.onSuccess(BLOB_INFO.toPb()); assertEquals(new Blob(storage, new Blob.BuilderImpl(BLOB_INFO)), batchResult.get()); }
@Test public void testGetWithOptions() { EasyMock.reset(storage, batchMock, optionsMock); EasyMock.expect(storage.getOptions()).andReturn(optionsMock).times(2); EasyMock.expect(optionsMock.getService()).andReturn(storage); Capture<RpcBatch.Callback<StorageObject>> callback = Capture.newInstance(); Capture<Map<StorageRpc.Option, Object>> capturedOptions = Capture.newInstance(); batchMock.addGet( EasyMock.eq(BLOB_INFO.toPb()), EasyMock.capture(callback), EasyMock.capture(capturedOptions)); EasyMock.replay(storage, batchMock, optionsMock); StorageBatchResult<Blob> batchResult = storageBatch.get(BLOB_ID, BLOB_GET_OPTIONS); assertNotNull(callback.getValue()); assertEquals(2, capturedOptions.getValue().size()); for (BlobGetOption option : BLOB_GET_OPTIONS) { assertEquals(option.getValue(), capturedOptions.getValue().get(option.getRpcOption())); } RpcBatch.Callback<StorageObject> capturedCallback = callback.getValue(); capturedCallback.onSuccess(BLOB_INFO.toPb()); assertEquals(new Blob(storage, new Blob.BuilderImpl(BLOB_INFO)), batchResult.get()); } }
@Test public void testDeleteWithOptions() { EasyMock.reset(batchMock); Capture<RpcBatch.Callback<Void>> callback = Capture.newInstance(); Capture<Map<StorageRpc.Option, Object>> capturedOptions = Capture.newInstance(); batchMock.addDelete( EasyMock.eq(BLOB_INFO.toPb()), EasyMock.capture(callback), EasyMock.capture(capturedOptions)); EasyMock.replay(batchMock); StorageBatchResult<Boolean> batchResult = storageBatch.delete(BLOB_ID, BLOB_SOURCE_OPTIONS); assertNotNull(callback.getValue()); assertEquals(2, capturedOptions.getValue().size()); for (BlobSourceOption option : BLOB_SOURCE_OPTIONS) { assertEquals(option.getValue(), capturedOptions.getValue().get(option.getRpcOption())); } RpcBatch.Callback<Void> capturedCallback = callback.getValue(); capturedCallback.onSuccess(null); assertTrue(batchResult.get()); }
@Override public void onSuccess(T response, HttpHeaders httpHeaders) throws IOException { callback.onSuccess(response); }