responseObserver.onNext(responseBuilder.build()); responseObserver.onCompleted();
.setIndex(2) .setStatus(PERMENANT_ERROR_STATUS_PROTO)) .build());
/** * @return a {@link MutateRowsResponse} built from the accumulation of all calls to * onMessage/onOK. */ public MutateRowsResponse buildResponse() { List<MutateRowsResponse.Entry> entries = new ArrayList<>(); for (int i = 0; i < results.length; i++) { Status status = (results[i] == null) ? STATUS_INTERNAL : results[i]; entries.add(createEntry(i, status)); } return MutateRowsResponse.newBuilder().addAllEntries(entries).build(); } }
@Test @SuppressWarnings("all") public void mutateRowsTest() throws Exception { MutateRowsResponse expectedResponse = MutateRowsResponse.newBuilder().build(); mockBigtable.addResponse(expectedResponse); TableName tableName = TableName.of("[PROJECT]", "[INSTANCE]", "[TABLE]"); List<MutateRowsRequest.Entry> entries = new ArrayList<>(); MutateRowsRequest request = MutateRowsRequest.newBuilder() .setTableName(tableName.toString()) .addAllEntries(entries) .build(); MockStreamObserver<MutateRowsResponse> responseObserver = new MockStreamObserver<>(); ServerStreamingCallable<MutateRowsRequest, MutateRowsResponse> callable = client.mutateRowsCallable(); callable.serverStreamingCall(request, responseObserver); List<MutateRowsResponse> actualResponses = responseObserver.future().get(); Assert.assertEquals(1, actualResponses.size()); Assert.assertEquals(expectedResponse, actualResponses.get(0)); }
@Test public void testNoRpcTimeout() { parentFuture.timedAttemptSettings = parentFuture.timedAttemptSettings.toBuilder().setRpcTimeout(Duration.ZERO).build(); MutateRowsRequest request = MutateRowsRequest.newBuilder().addEntries(Entry.getDefaultInstance()).build(); innerCallable.response.add( MutateRowsResponse.newBuilder() .addEntries( MutateRowsResponse.Entry.newBuilder().setIndex(0).setStatus(OK_STATUS_PROTO)) .build()); MutateRowsAttemptCallable attemptCallable = new MutateRowsAttemptCallable(innerCallable, request, callContext, retryCodes); attemptCallable.setExternalFuture(parentFuture); attemptCallable.call(); assertThat(innerCallable.lastContext.getTimeout()).isNull(); }
@Test public void singleEntrySuccessTest() throws Exception { MutateRowsRequest request = MutateRowsRequest.newBuilder().addEntries(Entry.getDefaultInstance()).build(); innerCallable.response.add( MutateRowsResponse.newBuilder() .addEntries( MutateRowsResponse.Entry.newBuilder().setIndex(0).setStatus(OK_STATUS_PROTO)) .build()); MutateRowsAttemptCallable attemptCallable = new MutateRowsAttemptCallable(innerCallable, request, callContext, retryCodes); attemptCallable.setExternalFuture(parentFuture); attemptCallable.call(); // Attempt completed successfully and the useless response has been suppressed assertThat(parentFuture.attemptFuture.get()).isNull(); // innerCallable received the request assertThat(innerCallable.lastRequest).isEqualTo(request); }