25
25
import static org .junit .Assert .assertThrows ;
26
26
import static org .junit .Assert .assertTrue ;
27
27
28
+ import com .google .cloud .spanner .Options .RpcLockHint ;
28
29
import com .google .cloud .spanner .Options .RpcOrderBy ;
29
30
import com .google .cloud .spanner .Options .RpcPriority ;
30
31
import com .google .spanner .v1 .DirectedReadOptions ;
31
32
import com .google .spanner .v1 .DirectedReadOptions .IncludeReplicas ;
32
33
import com .google .spanner .v1 .DirectedReadOptions .ReplicaSelection ;
34
+ import com .google .spanner .v1 .ReadRequest .LockHint ;
33
35
import com .google .spanner .v1 .ReadRequest .OrderBy ;
34
36
import com .google .spanner .v1 .RequestOptions .Priority ;
35
37
import org .junit .Test ;
@@ -83,7 +85,8 @@ public void allOptionsPresent() {
83
85
Options .prefetchChunks (1 ),
84
86
Options .dataBoostEnabled (true ),
85
87
Options .directedRead (DIRECTED_READ_OPTIONS ),
86
- Options .orderBy (RpcOrderBy .NO_ORDER ));
88
+ Options .orderBy (RpcOrderBy .NO_ORDER ),
89
+ Options .lockHint (Options .RpcLockHint .SHARED ));
87
90
assertThat (options .hasLimit ()).isTrue ();
88
91
assertThat (options .limit ()).isEqualTo (10 );
89
92
assertThat (options .hasPrefetchChunks ()).isTrue ();
@@ -92,6 +95,7 @@ public void allOptionsPresent() {
92
95
assertTrue (options .dataBoostEnabled ());
93
96
assertTrue (options .hasDirectedReadOptions ());
94
97
assertTrue (options .hasOrderBy ());
98
+ assertTrue (options .hasLockHint ());
95
99
assertEquals (DIRECTED_READ_OPTIONS , options .directedReadOptions ());
96
100
}
97
101
@@ -107,6 +111,7 @@ public void allOptionsAbsent() {
107
111
assertThat (options .hasDataBoostEnabled ()).isFalse ();
108
112
assertThat (options .hasDirectedReadOptions ()).isFalse ();
109
113
assertThat (options .hasOrderBy ()).isFalse ();
114
+ assertThat (options .hasLockHint ()).isFalse ();
110
115
assertNull (options .withExcludeTxnFromChangeStreams ());
111
116
assertThat (options .toString ()).isEqualTo ("" );
112
117
assertThat (options .equals (options )).isTrue ();
@@ -189,7 +194,8 @@ public void readOptionsTest() {
189
194
Options .tag (tag ),
190
195
Options .dataBoostEnabled (true ),
191
196
Options .directedRead (DIRECTED_READ_OPTIONS ),
192
- Options .orderBy (RpcOrderBy .NO_ORDER ));
197
+ Options .orderBy (RpcOrderBy .NO_ORDER ),
198
+ Options .lockHint (RpcLockHint .SHARED ));
193
199
194
200
assertThat (options .toString ())
195
201
.isEqualTo (
@@ -207,11 +213,15 @@ public void readOptionsTest() {
207
213
+ " "
208
214
+ "orderBy: "
209
215
+ RpcOrderBy .NO_ORDER
216
+ + " "
217
+ + "lockHint: "
218
+ + RpcLockHint .SHARED
210
219
+ " " );
211
220
assertThat (options .tag ()).isEqualTo (tag );
212
221
assertEquals (dataBoost , options .dataBoostEnabled ());
213
222
assertEquals (DIRECTED_READ_OPTIONS , options .directedReadOptions ());
214
223
assertEquals (OrderBy .ORDER_BY_NO_ORDER , options .orderBy ());
224
+ assertEquals (LockHint .LOCK_HINT_SHARED , options .lockHint ());
215
225
}
216
226
217
227
@ Test
@@ -373,6 +383,14 @@ public void testReadOptionsOrderBy() {
373
383
assertEquals ("orderBy: " + orderBy + " " , options .toString ());
374
384
}
375
385
386
+ @ Test
387
+ public void testReadOptionsLockHint () {
388
+ RpcLockHint lockHint = RpcLockHint .SHARED ;
389
+ Options options = Options .fromReadOptions (Options .lockHint (lockHint ));
390
+ assertTrue (options .hasLockHint ());
391
+ assertEquals ("lockHint: " + lockHint + " " , options .toString ());
392
+ }
393
+
376
394
@ Test
377
395
public void testReadOptionsWithOrderByEquality () {
378
396
Options optionsWithNoOrderBy1 = Options .fromReadOptions (Options .orderBy (RpcOrderBy .NO_ORDER ));
@@ -383,6 +401,19 @@ public void testReadOptionsWithOrderByEquality() {
383
401
assertFalse (optionsWithNoOrderBy1 .equals (optionsWithPkOrder ));
384
402
}
385
403
404
+ @ Test
405
+ public void testReadOptionsWithLockHintEquality () {
406
+ Options optionsWithSharedLockHint1 =
407
+ Options .fromReadOptions (Options .lockHint (RpcLockHint .SHARED ));
408
+ Options optionsWithSharedLockHint2 =
409
+ Options .fromReadOptions (Options .lockHint (RpcLockHint .SHARED ));
410
+ assertEquals (optionsWithSharedLockHint1 , optionsWithSharedLockHint2 );
411
+
412
+ Options optionsWithExclusiveLock =
413
+ Options .fromReadOptions (Options .lockHint (RpcLockHint .EXCLUSIVE ));
414
+ assertNotEquals (optionsWithSharedLockHint1 , optionsWithExclusiveLock );
415
+ }
416
+
386
417
@ Test
387
418
public void testQueryOptionsPriority () {
388
419
RpcPriority priority = RpcPriority .MEDIUM ;
0 commit comments