|
41 | 41 | import java.util.List;
|
42 | 42 | import java.util.Set;
|
43 | 43 | import java.util.concurrent.Callable;
|
| 44 | +import java.util.concurrent.ExecutionException; |
| 45 | +import org.junit.Assert; |
44 | 46 | import org.junit.Before;
|
45 | 47 | import org.junit.Test;
|
46 | 48 | import org.junit.runner.RunWith;
|
@@ -92,6 +94,37 @@ public void singleEntrySuccessTest() throws Exception {
|
92 | 94 | assertThat(innerCallable.lastRequest).isEqualTo(request);
|
93 | 95 | }
|
94 | 96 |
|
| 97 | + @Test |
| 98 | + public void missingEntry() { |
| 99 | + MutateRowsRequest request = |
| 100 | + MutateRowsRequest.newBuilder() |
| 101 | + .addEntries(Entry.getDefaultInstance()) |
| 102 | + .addEntries(Entry.getDefaultInstance()) |
| 103 | + .build(); |
| 104 | + innerCallable.response.add( |
| 105 | + MutateRowsResponse.newBuilder() |
| 106 | + .addEntries(MutateRowsResponse.Entry.newBuilder().setIndex(0)) |
| 107 | + .build()); |
| 108 | + |
| 109 | + MutateRowsAttemptCallable attemptCallable = |
| 110 | + new MutateRowsAttemptCallable(innerCallable, request, callContext, retryCodes); |
| 111 | + attemptCallable.setExternalFuture(parentFuture); |
| 112 | + attemptCallable.call(); |
| 113 | + |
| 114 | + ExecutionException executionException = |
| 115 | + Assert.assertThrows(ExecutionException.class, () -> parentFuture.attemptFuture.get()); |
| 116 | + assertThat(executionException).hasCauseThat().isInstanceOf(MutateRowsException.class); |
| 117 | + MutateRowsException e = (MutateRowsException) executionException.getCause(); |
| 118 | + |
| 119 | + assertThat(e).hasMessageThat().contains("Some mutations failed to apply"); |
| 120 | + assertThat(e.getFailedMutations()).hasSize(1); |
| 121 | + FailedMutation failedMutation = e.getFailedMutations().get(0); |
| 122 | + assertThat(failedMutation.getIndex()).isEqualTo(1); |
| 123 | + assertThat(failedMutation.getError()) |
| 124 | + .hasMessageThat() |
| 125 | + .contains("Missing entry response for entry 1"); |
| 126 | + } |
| 127 | + |
95 | 128 | @Test
|
96 | 129 | public void testNoRpcTimeout() {
|
97 | 130 | parentFuture.timedAttemptSettings =
|
|
0 commit comments