|
19 | 19 | import static com.google.common.testing.SerializableTester.reserialize;
|
20 | 20 | import static com.google.common.truth.Truth.assertThat;
|
21 | 21 | import static org.junit.Assert.assertEquals;
|
| 22 | +import static org.junit.Assert.assertFalse; |
22 | 23 | import static org.junit.Assert.assertThrows;
|
23 | 24 | import static org.junit.Assert.assertTrue;
|
24 | 25 |
|
@@ -1115,4 +1116,58 @@ public void getProtoEnumList() {
|
1115 | 1116 | resultSet.getProtoEnum(0, Genre::forNumber);
|
1116 | 1117 | });
|
1117 | 1118 | }
|
| 1119 | + |
| 1120 | + @Test |
| 1121 | + public void verifyResultSetWithLastTrue() { |
| 1122 | + long[] longArray = {111, 333, 444, 0, -1, -2234, Long.MAX_VALUE, Long.MIN_VALUE}; |
| 1123 | + |
| 1124 | + consumer.onPartialResultSet( |
| 1125 | + PartialResultSet.newBuilder() |
| 1126 | + .setMetadata( |
| 1127 | + makeMetadata(Type.struct(Type.StructField.of("f", Type.array(Type.int64()))))) |
| 1128 | + .addValues(Value.int64Array(longArray).toProto()) |
| 1129 | + .setLast(false) |
| 1130 | + .build()); |
| 1131 | + assertTrue(resultSet.next()); |
| 1132 | + consumer.onPartialResultSet( |
| 1133 | + PartialResultSet.newBuilder() |
| 1134 | + .setMetadata( |
| 1135 | + makeMetadata(Type.struct(Type.StructField.of("f", Type.array(Type.int64()))))) |
| 1136 | + .addValues(Value.int64Array(longArray).toProto()) |
| 1137 | + .setLast(true) |
| 1138 | + .build()); |
| 1139 | + assertTrue(resultSet.next()); |
| 1140 | + assertFalse(resultSet.next()); |
| 1141 | + consumer.onCompleted(); |
| 1142 | + } |
| 1143 | + |
| 1144 | + @Test |
| 1145 | + public void shouldThrowDeadlineExceededIfLastTrueIsNotReceived() { |
| 1146 | + long[] longArray = {111, 333, 444, 0, -1, -2234, Long.MAX_VALUE, Long.MIN_VALUE}; |
| 1147 | + |
| 1148 | + consumer.onPartialResultSet( |
| 1149 | + PartialResultSet.newBuilder() |
| 1150 | + .setMetadata( |
| 1151 | + makeMetadata(Type.struct(Type.StructField.of("f", Type.array(Type.int64()))))) |
| 1152 | + .addValues(Value.int64Array(longArray).toProto()) |
| 1153 | + .setLast(false) |
| 1154 | + .build()); |
| 1155 | + assertTrue(resultSet.next()); |
| 1156 | + consumer.onPartialResultSet( |
| 1157 | + PartialResultSet.newBuilder() |
| 1158 | + .setMetadata( |
| 1159 | + makeMetadata(Type.struct(Type.StructField.of("f", Type.array(Type.int64()))))) |
| 1160 | + .addValues(Value.int64Array(longArray).toProto()) |
| 1161 | + .setLast(false) |
| 1162 | + .build()); |
| 1163 | + assertTrue(resultSet.next()); |
| 1164 | + SpannerException spannerException = |
| 1165 | + assertThrows( |
| 1166 | + SpannerException.class, |
| 1167 | + () -> { |
| 1168 | + assertThat(resultSet.next()).isFalse(); |
| 1169 | + }); |
| 1170 | + assertEquals("DEADLINE_EXCEEDED: stream wait timeout", spannerException.getMessage()); |
| 1171 | + consumer.onCompleted(); |
| 1172 | + } |
1118 | 1173 | }
|
0 commit comments