@@ -65,6 +65,8 @@ public class SpannerPoolTest {
65
65
66
66
private ConnectionOptions options5 = mock (ConnectionOptions .class );
67
67
private ConnectionOptions options6 = mock (ConnectionOptions .class );
68
+ private ConnectionOptions options7 = mock (ConnectionOptions .class );
69
+ private ConnectionOptions options8 = mock (ConnectionOptions .class );
68
70
69
71
private SpannerPool createSubjectAndMocks () {
70
72
return createSubjectAndMocks (0L , Ticker .systemTicker ());
@@ -93,6 +95,10 @@ Spanner createSpanner(SpannerPoolKey key, ConnectionOptions options) {
93
95
// ConnectionOptions with no specific credentials.
94
96
when (options5 .getProjectId ()).thenReturn ("test-project-3" );
95
97
when (options6 .getProjectId ()).thenReturn ("test-project-3" );
98
+ when (options7 .getProjectId ()).thenReturn ("test-project-3" );
99
+ when (options7 .isRouteToLeader ()).thenReturn (true );
100
+ when (options8 .getProjectId ()).thenReturn ("test-project-3" );
101
+ when (options8 .isRouteToLeader ()).thenReturn (false );
96
102
97
103
return pool ;
98
104
}
@@ -111,40 +117,43 @@ public void testGetSpanner() {
111
117
// assert equal
112
118
spanner1 = pool .getSpanner (options1 , connection1 );
113
119
spanner2 = pool .getSpanner (options1 , connection2 );
114
- assertThat (spanner1 ). isEqualTo ( spanner2 );
120
+ assertEquals (spanner1 , spanner2 );
115
121
spanner1 = pool .getSpanner (options2 , connection1 );
116
122
spanner2 = pool .getSpanner (options2 , connection2 );
117
- assertThat (spanner1 ). isEqualTo ( spanner2 );
123
+ assertEquals (spanner1 , spanner2 );
118
124
spanner1 = pool .getSpanner (options3 , connection1 );
119
125
spanner2 = pool .getSpanner (options3 , connection2 );
120
- assertThat (spanner1 ). isEqualTo ( spanner2 );
126
+ assertEquals (spanner1 , spanner2 );
121
127
spanner1 = pool .getSpanner (options4 , connection1 );
122
128
spanner2 = pool .getSpanner (options4 , connection2 );
123
- assertThat (spanner1 ). isEqualTo ( spanner2 );
129
+ assertEquals (spanner1 , spanner2 );
124
130
// Options 5 and 6 both use default credentials.
125
131
spanner1 = pool .getSpanner (options5 , connection1 );
126
132
spanner2 = pool .getSpanner (options6 , connection2 );
127
- assertThat (spanner1 ). isEqualTo ( spanner2 );
133
+ assertEquals (spanner1 , spanner2 );
128
134
129
135
// assert not equal
130
136
spanner1 = pool .getSpanner (options1 , connection1 );
131
137
spanner2 = pool .getSpanner (options2 , connection2 );
132
- assertThat (spanner1 ). isNotEqualTo ( spanner2 );
138
+ assertNotEquals (spanner1 , spanner2 );
133
139
spanner1 = pool .getSpanner (options1 , connection1 );
134
140
spanner2 = pool .getSpanner (options3 , connection2 );
135
- assertThat (spanner1 ). isNotEqualTo ( spanner2 );
141
+ assertNotEquals (spanner1 , spanner2 );
136
142
spanner1 = pool .getSpanner (options1 , connection1 );
137
143
spanner2 = pool .getSpanner (options4 , connection2 );
138
- assertThat (spanner1 ). isNotEqualTo ( spanner2 );
144
+ assertNotEquals (spanner1 , spanner2 );
139
145
spanner1 = pool .getSpanner (options2 , connection1 );
140
146
spanner2 = pool .getSpanner (options3 , connection2 );
141
- assertThat (spanner1 ). isNotEqualTo ( spanner2 );
147
+ assertNotEquals (spanner1 , spanner2 );
142
148
spanner1 = pool .getSpanner (options2 , connection1 );
143
149
spanner2 = pool .getSpanner (options4 , connection2 );
144
- assertThat (spanner1 ). isNotEqualTo ( spanner2 );
150
+ assertNotEquals (spanner1 , spanner2 );
145
151
spanner1 = pool .getSpanner (options3 , connection1 );
146
152
spanner2 = pool .getSpanner (options4 , connection2 );
147
- assertThat (spanner1 ).isNotEqualTo (spanner2 );
153
+ assertNotEquals (spanner1 , spanner2 );
154
+ spanner1 = pool .getSpanner (options7 , connection1 );
155
+ spanner2 = pool .getSpanner (options8 , connection2 );
156
+ assertNotEquals (spanner1 , spanner2 );
148
157
}
149
158
150
159
@ Test
@@ -460,14 +469,30 @@ public void testSpannerPoolKeyEquality() {
460
469
.setUri ("cloudspanner:/projects/p/instances/i/databases/d" )
461
470
.setCredentials (NoCredentials .getInstance ())
462
471
.build ();
472
+ // Not passing in routeToLeader in Connection URI is equivalent to passing it as true,
473
+ // as routeToLeader is true by default.
474
+ ConnectionOptions options4 =
475
+ ConnectionOptions .newBuilder ()
476
+ .setUri ("cloudspanner:/projects/p/instances/i/databases/d?routeToLeader=true" )
477
+ .setCredentials (NoCredentials .getInstance ())
478
+ .build ();
479
+ ConnectionOptions options5 =
480
+ ConnectionOptions .newBuilder ()
481
+ .setUri ("cloudspanner:/projects/p/instances/i/databases/d?routeToLeader=false" )
482
+ .setCredentials (NoCredentials .getInstance ())
483
+ .build ();
463
484
464
485
SpannerPoolKey key1 = SpannerPoolKey .of (options1 );
465
486
SpannerPoolKey key2 = SpannerPoolKey .of (options2 );
466
487
SpannerPoolKey key3 = SpannerPoolKey .of (options3 );
488
+ SpannerPoolKey key4 = SpannerPoolKey .of (options4 );
489
+ SpannerPoolKey key5 = SpannerPoolKey .of (options5 );
467
490
468
491
assertNotEquals (key1 , key2 );
469
492
assertEquals (key2 , key3 );
470
493
assertNotEquals (key1 , key3 );
471
494
assertNotEquals (key1 , new Object ());
495
+ assertEquals (key3 , key4 );
496
+ assertNotEquals (key4 , key5 );
472
497
}
473
498
}
0 commit comments