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