3434import com .datastax .oss .driver .internal .core .adminrequest .AdminRow ;
3535import com .datastax .oss .driver .internal .core .channel .DriverChannel ;
3636import com .datastax .oss .driver .internal .core .context .InternalDriverContext ;
37+ import com .datastax .oss .driver .internal .core .metadata .token .DefaultTokenMap ;
38+ import com .datastax .oss .driver .internal .core .metadata .token .Murmur3Token ;
39+ import com .datastax .oss .driver .internal .core .metadata .token .Murmur3TokenRange ;
3740import com .datastax .oss .driver .internal .core .metrics .MetricsFactory ;
3841import com .datastax .oss .driver .shaded .guava .common .collect .ImmutableMap ;
3942import com .datastax .oss .driver .shaded .guava .common .collect .Iterators ;
4649import java .util .Arrays ;
4750import java .util .Map ;
4851import java .util .Objects ;
52+ import java .util .Optional ;
4953import java .util .Queue ;
5054import java .util .UUID ;
5155import java .util .concurrent .CompletableFuture ;
5660import org .junit .runner .RunWith ;
5761import org .mockito .Mock ;
5862import org .mockito .MockitoAnnotations ;
63+ import org .mockito .internal .util .collections .Sets ;
5964
6065@ RunWith (DataProviderRunner .class )
6166public class SchemaAgreementCheckerTest {
@@ -72,6 +77,7 @@ public class SchemaAgreementCheckerTest {
7277 @ Mock private EventLoop eventLoop ;
7378 @ Mock private MetadataManager metadataManager ;
7479 @ Mock private MetricsFactory metricsFactory ;
80+ @ Mock private DefaultTokenMap tokenMap ;
7581 @ Mock private Metadata metadata ;
7682 @ Mock private DefaultNode node1 ;
7783 @ Mock private DefaultNode node2 ;
@@ -102,6 +108,12 @@ public void setup() {
102108 Objects .requireNonNull (node2 .getHostId ()),
103109 node2 );
104110 when (metadata .getNodes ()).thenReturn (nodes );
111+ when (tokenMap .getTokenRanges ())
112+ .thenReturn (
113+ Sets .newSet (
114+ new Murmur3TokenRange (new Murmur3Token (1 ), new Murmur3Token (2 )),
115+ new Murmur3TokenRange (new Murmur3Token (3 ), new Murmur3Token (4 ))));
116+ when (metadata .getTokenMap ()).thenReturn (Optional .of (tokenMap ));
105117 when (metadataManager .getMetadata ()).thenReturn (metadata );
106118 when (context .getMetadataManager ()).thenReturn (metadataManager );
107119
@@ -139,7 +151,9 @@ public void should_succeed_if_only_one_node() {
139151 new StubbedQuery (
140152 "SELECT schema_version FROM system.local WHERE key='local'" ,
141153 mockResult (mockLocalRow (VERSION1 ))),
142- new StubbedQuery ("SELECT * FROM system.peers" , mockResult (/*empty*/ )));
154+ new StubbedQuery (
155+ "SELECT host_id, schema_version, rpc_address, data_center, rack FROM system.peers" ,
156+ mockResult (/*empty*/ )));
143157
144158 // When
145159 CompletionStage <Boolean > future = checker .run ();
@@ -156,7 +170,9 @@ public void should_succeed_if_versions_match_on_first_try() {
156170 new StubbedQuery (
157171 "SELECT schema_version FROM system.local WHERE key='local'" ,
158172 mockResult (mockLocalRow (VERSION1 ))),
159- new StubbedQuery ("SELECT * FROM system.peers" , mockResult (mockValidPeerRow (VERSION1 ))));
173+ new StubbedQuery (
174+ "SELECT host_id, schema_version, rpc_address, data_center, rack FROM system.peers" ,
175+ mockResult (mockValidPeerRow (VERSION1 ))));
160176
161177 // When
162178 CompletionStage <Boolean > future = checker .run ();
@@ -174,7 +190,9 @@ public void should_ignore_down_peers() {
174190 new StubbedQuery (
175191 "SELECT schema_version FROM system.local WHERE key='local'" ,
176192 mockResult (mockLocalRow (VERSION1 ))),
177- new StubbedQuery ("SELECT * FROM system.peers" , mockResult (mockValidPeerRow (VERSION2 ))));
193+ new StubbedQuery (
194+ "SELECT host_id, schema_version, rpc_address, data_center, rack FROM system.peers" ,
195+ mockResult (mockValidPeerRow (VERSION2 ))));
178196
179197 // When
180198 CompletionStage <Boolean > future = checker .run ();
@@ -210,7 +228,9 @@ public void should_ignore_malformed_rows(AdminRow malformedPeer) {
210228 new StubbedQuery (
211229 "SELECT schema_version FROM system.local WHERE key='local'" ,
212230 mockResult (mockLocalRow (VERSION1 ))),
213- new StubbedQuery ("SELECT * FROM system.peers" , mockResult (malformedPeer )));
231+ new StubbedQuery (
232+ "SELECT host_id, schema_version, rpc_address, data_center, rack FROM system.peers" ,
233+ mockResult (malformedPeer )));
214234
215235 // When
216236 CompletionStage <Boolean > future = checker .run ();
@@ -228,13 +248,17 @@ public void should_reschedule_if_versions_do_not_match_on_first_try() {
228248 new StubbedQuery (
229249 "SELECT schema_version FROM system.local WHERE key='local'" ,
230250 mockResult (mockLocalRow (VERSION1 ))),
231- new StubbedQuery ("SELECT * FROM system.peers" , mockResult (mockValidPeerRow (VERSION2 ))),
251+ new StubbedQuery (
252+ "SELECT host_id, schema_version, rpc_address, data_center, rack FROM system.peers" ,
253+ mockResult (mockValidPeerRow (VERSION2 ))),
232254
233255 // Second round
234256 new StubbedQuery (
235257 "SELECT schema_version FROM system.local WHERE key='local'" ,
236258 mockResult (mockLocalRow (VERSION1 ))),
237- new StubbedQuery ("SELECT * FROM system.peers" , mockResult (mockValidPeerRow (VERSION1 ))));
259+ new StubbedQuery (
260+ "SELECT host_id, schema_version, rpc_address, data_center, rack FROM system.peers" ,
261+ mockResult (mockValidPeerRow (VERSION1 ))));
238262
239263 // When
240264 CompletionStage <Boolean > future = checker .run ();
@@ -253,7 +277,9 @@ public void should_fail_if_versions_do_not_match_after_timeout() {
253277 new StubbedQuery (
254278 "SELECT schema_version FROM system.local WHERE key='local'" ,
255279 mockResult (mockLocalRow (VERSION1 ))),
256- new StubbedQuery ("SELECT * FROM system.peers" , mockResult (mockValidPeerRow (VERSION1 ))));
280+ new StubbedQuery (
281+ "SELECT host_id, schema_version, rpc_address, data_center, rack FROM system.peers" ,
282+ mockResult (mockValidPeerRow (VERSION1 ))));
257283
258284 // When
259285 CompletionStage <Boolean > future = checker .run ();
0 commit comments