use of org.apache.bookkeeper.stream.proto.storage.StorageContainerResponse in project bookkeeper by apache.
the class TestGrpcTableService method testDeleteSuccess.
@Test
public void testDeleteSuccess() throws Exception {
RangeStore rangeService = mock(RangeStore.class);
GrpcTableService grpcService = new GrpcTableService(rangeService);
StorageContainerRequest request = StorageContainerRequest.newBuilder().setKvDeleteReq(DeleteRangeRequest.newBuilder().setKey(TEST_KEY).setHeader(ROUTING_HEADER)).build();
StorageContainerResponse response = StorageContainerResponse.newBuilder().setCode(StatusCode.SUCCESS).setKvDeleteResp(DeleteRangeResponse.newBuilder()).build();
when(rangeService.delete(request)).thenReturn(CompletableFuture.completedFuture(response));
TestResponseObserver<StorageContainerResponse> responseObserver = new TestResponseObserver<>();
grpcService.delete(request, responseObserver);
responseObserver.verifySuccess(response);
verify(rangeService, times(1)).delete(request);
}
use of org.apache.bookkeeper.stream.proto.storage.StorageContainerResponse in project bookkeeper by apache.
the class TestGrpcTableService method testPutException.
@Test
public void testPutException() throws Exception {
RangeStore rangeService = mock(RangeStore.class);
GrpcTableService grpcService = new GrpcTableService(rangeService);
StorageContainerRequest request = StorageContainerRequest.newBuilder().setKvPutReq(PutRequest.newBuilder().setKey(TEST_KEY).setValue(TEST_VAL).setHeader(ROUTING_HEADER)).build();
when(rangeService.put(request)).thenReturn(FutureUtils.exception(new StatusRuntimeException(Status.NOT_FOUND)));
TestResponseObserver<StorageContainerResponse> responseObserver = new TestResponseObserver<>();
grpcService.put(request, responseObserver);
responseObserver.verifyException(Status.NOT_FOUND);
verify(rangeService, times(1)).put(request);
}
use of org.apache.bookkeeper.stream.proto.storage.StorageContainerResponse in project bookkeeper by apache.
the class TestGrpcTableService method testRangeActiveRangesFailure.
@Test
public void testRangeActiveRangesFailure() throws Exception {
RangeStore rangeService = mock(RangeStore.class);
GrpcTableService grpcService = new GrpcTableService(rangeService);
StorageContainerRequest request = StorageContainerRequest.newBuilder().setKvRangeReq(RangeRequest.newBuilder().setKey(TEST_KEY).setHeader(ROUTING_HEADER)).build();
StorageContainerResponse response = StorageContainerResponse.newBuilder().setCode(StatusCode.INTERNAL_SERVER_ERROR).build();
when(rangeService.range(request)).thenReturn(FutureUtils.exception(CAUSE));
TestResponseObserver<StorageContainerResponse> responseObserver = new TestResponseObserver<>();
grpcService.range(request, responseObserver);
responseObserver.verifySuccess(response);
verify(rangeService, times(1)).range(request);
}
use of org.apache.bookkeeper.stream.proto.storage.StorageContainerResponse in project bookkeeper by apache.
the class TestStorageContainerResponseHandler method testStatusException.
@SuppressWarnings("unchecked")
@Test
public void testStatusException() {
StreamObserver<StorageContainerResponse> observer = mock(StreamObserver.class);
StorageContainerResponseHandler handler = StorageContainerResponseHandler.of(observer);
StatusException exception = new StatusException(Status.NOT_FOUND);
handler.accept(null, exception);
verify(observer, times(0)).onNext(any());
verify(observer, times(0)).onCompleted();
verify(observer, times(1)).onError(exception);
}
use of org.apache.bookkeeper.stream.proto.storage.StorageContainerResponse in project bookkeeper by apache.
the class TestStorageContainerResponseHandler method testInternalError.
@SuppressWarnings("unchecked")
@Test
public void testInternalError() throws Exception {
StreamObserver<StorageContainerResponse> observer = mock(StreamObserver.class);
AtomicReference<StorageContainerResponse> responseHolder = new AtomicReference<>(null);
CountDownLatch latch = new CountDownLatch(1);
doAnswer((Answer<Void>) invocation -> {
StorageContainerResponse resp = invocation.getArgument(0);
responseHolder.set(resp);
latch.countDown();
return null;
}).when(observer).onNext(any(StorageContainerResponse.class));
StorageContainerResponseHandler handler = StorageContainerResponseHandler.of(observer);
StorageException exception = new StorageException("test-exception");
handler.accept(null, exception);
verify(observer, times(1)).onNext(any());
verify(observer, times(1)).onCompleted();
verify(observer, times(0)).onError(any());
latch.await();
assertNotNull(responseHolder.get());
assertEquals(StatusCode.INTERNAL_SERVER_ERROR, responseHolder.get().getCode());
}
Aggregations