@@ -873,4 +873,39 @@ public void testOptions_WithMultipleDifferentIsolationLevels() {
873
873
Options options = Options .fromTransactionOptions (transactionOptions );
874
874
assertEquals (options .isolationLevel (), IsolationLevel .SERIALIZABLE );
875
875
}
876
+
877
+ @ Test
878
+ public void testRequestId () {
879
+ XGoogSpannerRequestId reqId1 = XGoogSpannerRequestId .of (1 , 2 , 3 , 4 );
880
+ XGoogSpannerRequestId reqId2 = XGoogSpannerRequestId .of (2 , 3 , 4 , 5 );
881
+ Options option1 = Options .fromUpdateOptions (Options .requestId (reqId1 ));
882
+ Options option1Prime = Options .fromUpdateOptions (Options .requestId (reqId1 ));
883
+ Options option2 = Options .fromUpdateOptions (Options .requestId (reqId2 ));
884
+ Options option3 = Options .fromUpdateOptions ();
885
+
886
+ assertEquals (option1 , option1Prime );
887
+ assertNotEquals (option1 , option2 );
888
+ assertEquals (option1 .hashCode (), option1Prime .hashCode ());
889
+ assertNotEquals (option1 , option2 );
890
+ assertNotEquals (option1 , option3 );
891
+ assertNotEquals (option1 .hashCode (), option3 .hashCode ());
892
+
893
+ assertTrue (option1 .hasReqId ());
894
+ assertThat (option1 .toString ()).contains ("requestId: " + reqId1 .toString ());
895
+
896
+ assertFalse (option3 .hasReqId ());
897
+ assertThat (option3 .toString ()).doesNotContain ("requestId" );
898
+ }
899
+
900
+ @ Test
901
+ public void testOptions_WithMultipleDifferentRequestIds () {
902
+ XGoogSpannerRequestId reqId1 = XGoogSpannerRequestId .of (1 , 1 , 1 , 1 );
903
+ XGoogSpannerRequestId reqId2 = XGoogSpannerRequestId .of (1 , 1 , 1 , 2 );
904
+ TransactionOption [] transactionOptions = {
905
+ Options .requestId (reqId1 ), Options .requestId (reqId2 ),
906
+ };
907
+ Options options = Options .fromTransactionOptions (transactionOptions );
908
+ assertNotEquals (options .reqId (), reqId1 );
909
+ assertEquals (options .reqId (), reqId2 );
910
+ }
876
911
}
0 commit comments