mongo 2.13.0.beta1 → 2.13.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (170) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +1 -5
  4. data/Rakefile +15 -9
  5. data/lib/mongo.rb +4 -2
  6. data/lib/mongo/auth/aws/request.rb +4 -2
  7. data/lib/mongo/bulk_write.rb +1 -0
  8. data/lib/mongo/client.rb +143 -21
  9. data/lib/mongo/cluster.rb +53 -17
  10. data/lib/mongo/cluster/sdam_flow.rb +13 -10
  11. data/lib/mongo/cluster/topology/replica_set_no_primary.rb +3 -2
  12. data/lib/mongo/cluster/topology/sharded.rb +1 -1
  13. data/lib/mongo/cluster/topology/single.rb +1 -1
  14. data/lib/mongo/collection.rb +17 -13
  15. data/lib/mongo/collection/view/readable.rb +3 -1
  16. data/lib/mongo/collection/view/writable.rb +41 -5
  17. data/lib/mongo/database.rb +31 -4
  18. data/lib/mongo/database/view.rb +19 -4
  19. data/lib/mongo/distinguishing_semaphore.rb +55 -0
  20. data/lib/mongo/error.rb +1 -0
  21. data/lib/mongo/error/invalid_session.rb +2 -1
  22. data/lib/mongo/error/operation_failure.rb +6 -0
  23. data/lib/mongo/error/sessions_not_supported.rb +35 -0
  24. data/lib/mongo/event/base.rb +6 -0
  25. data/lib/mongo/grid/file.rb +5 -0
  26. data/lib/mongo/grid/file/chunk.rb +2 -0
  27. data/lib/mongo/grid/fs_bucket.rb +15 -13
  28. data/lib/mongo/grid/stream/write.rb +9 -3
  29. data/lib/mongo/monitoring.rb +38 -0
  30. data/lib/mongo/monitoring/command_log_subscriber.rb +10 -2
  31. data/lib/mongo/monitoring/event/command_failed.rb +11 -0
  32. data/lib/mongo/monitoring/event/command_started.rb +37 -2
  33. data/lib/mongo/monitoring/event/command_succeeded.rb +11 -0
  34. data/lib/mongo/monitoring/event/server_closed.rb +1 -1
  35. data/lib/mongo/monitoring/event/server_description_changed.rb +27 -4
  36. data/lib/mongo/monitoring/event/server_heartbeat_failed.rb +9 -2
  37. data/lib/mongo/monitoring/event/server_heartbeat_started.rb +9 -2
  38. data/lib/mongo/monitoring/event/server_heartbeat_succeeded.rb +9 -2
  39. data/lib/mongo/monitoring/event/server_opening.rb +1 -1
  40. data/lib/mongo/monitoring/event/topology_changed.rb +1 -1
  41. data/lib/mongo/monitoring/event/topology_closed.rb +1 -1
  42. data/lib/mongo/monitoring/event/topology_opening.rb +1 -1
  43. data/lib/mongo/monitoring/publishable.rb +6 -3
  44. data/lib/mongo/monitoring/server_description_changed_log_subscriber.rb +9 -1
  45. data/lib/mongo/monitoring/topology_changed_log_subscriber.rb +1 -1
  46. data/lib/mongo/protocol/message.rb +36 -8
  47. data/lib/mongo/protocol/msg.rb +14 -0
  48. data/lib/mongo/protocol/serializers.rb +5 -2
  49. data/lib/mongo/server.rb +10 -3
  50. data/lib/mongo/server/connection.rb +4 -4
  51. data/lib/mongo/server/connection_base.rb +3 -1
  52. data/lib/mongo/server/description.rb +5 -0
  53. data/lib/mongo/server/monitor.rb +76 -44
  54. data/lib/mongo/server/monitor/connection.rb +55 -7
  55. data/lib/mongo/server/pending_connection.rb +14 -4
  56. data/lib/mongo/server/push_monitor.rb +173 -0
  57. data/{spec/runners/transactions/context.rb → lib/mongo/server/push_monitor/connection.rb} +9 -14
  58. data/lib/mongo/server_selector.rb +0 -1
  59. data/lib/mongo/server_selector/base.rb +579 -1
  60. data/lib/mongo/server_selector/nearest.rb +1 -6
  61. data/lib/mongo/server_selector/primary.rb +1 -6
  62. data/lib/mongo/server_selector/primary_preferred.rb +7 -10
  63. data/lib/mongo/server_selector/secondary.rb +1 -6
  64. data/lib/mongo/server_selector/secondary_preferred.rb +1 -7
  65. data/lib/mongo/session.rb +2 -0
  66. data/lib/mongo/socket.rb +20 -8
  67. data/lib/mongo/socket/ssl.rb +1 -1
  68. data/lib/mongo/socket/tcp.rb +1 -1
  69. data/lib/mongo/topology_version.rb +9 -0
  70. data/lib/mongo/utils.rb +62 -0
  71. data/lib/mongo/version.rb +1 -1
  72. data/spec/README.aws-auth.md +2 -2
  73. data/spec/integration/awaited_ismaster_spec.rb +28 -0
  74. data/spec/integration/change_stream_examples_spec.rb +6 -2
  75. data/spec/integration/check_clean_slate_spec.rb +16 -0
  76. data/spec/integration/client_construction_spec.rb +1 -0
  77. data/spec/integration/connect_single_rs_name_spec.rb +5 -2
  78. data/spec/integration/connection_spec.rb +7 -4
  79. data/spec/integration/crud_spec.rb +4 -4
  80. data/spec/integration/docs_examples_spec.rb +6 -0
  81. data/spec/integration/grid_fs_bucket_spec.rb +48 -0
  82. data/spec/integration/heartbeat_events_spec.rb +4 -23
  83. data/spec/integration/read_concern_spec.rb +1 -1
  84. data/spec/integration/retryable_errors_spec.rb +1 -1
  85. data/spec/integration/retryable_writes/shared/performs_legacy_retries.rb +2 -2
  86. data/spec/integration/retryable_writes/shared/performs_modern_retries.rb +3 -3
  87. data/spec/integration/retryable_writes/shared/performs_no_retries.rb +2 -2
  88. data/spec/integration/sdam_error_handling_spec.rb +37 -15
  89. data/spec/integration/sdam_events_spec.rb +77 -6
  90. data/spec/integration/sdam_prose_spec.rb +64 -0
  91. data/spec/integration/server_monitor_spec.rb +25 -1
  92. data/spec/integration/size_limit_spec.rb +7 -3
  93. data/spec/integration/size_limit_spec.rb~12e1e9c4f... RUBY-2242 Fix zlib compression (#2021) +98 -0
  94. data/spec/integration/ssl_uri_options_spec.rb +2 -2
  95. data/spec/integration/zlib_compression_spec.rb +25 -0
  96. data/spec/lite_spec_helper.rb +12 -5
  97. data/spec/mongo/auth/aws/request_spec.rb +76 -0
  98. data/spec/mongo/auth/scram_spec.rb +1 -1
  99. data/spec/mongo/client_construction_spec.rb +207 -0
  100. data/spec/mongo/client_spec.rb +38 -3
  101. data/spec/mongo/cluster/topology/replica_set_spec.rb +52 -9
  102. data/spec/mongo/cluster/topology/single_spec.rb +4 -2
  103. data/spec/mongo/cluster_spec.rb +34 -35
  104. data/spec/mongo/collection/view/change_stream_resume_spec.rb +6 -6
  105. data/spec/mongo/collection_spec.rb +500 -0
  106. data/spec/mongo/database_spec.rb +245 -8
  107. data/spec/mongo/distinguishing_semaphore_spec.rb +63 -0
  108. data/spec/mongo/error/operation_failure_spec.rb +40 -0
  109. data/spec/mongo/index/view_spec.rb +2 -2
  110. data/spec/mongo/monitoring/event/server_description_changed_spec.rb +1 -4
  111. data/spec/mongo/protocol/msg_spec.rb +10 -0
  112. data/spec/mongo/semaphore_spec.rb +51 -0
  113. data/spec/mongo/server/connection_auth_spec.rb +2 -2
  114. data/spec/mongo/server_selector/nearest_spec.rb +23 -23
  115. data/spec/mongo/server_selector/primary_preferred_spec.rb +26 -26
  116. data/spec/mongo/server_selector/primary_spec.rb +9 -9
  117. data/spec/mongo/server_selector/secondary_preferred_spec.rb +22 -22
  118. data/spec/mongo/server_selector/secondary_spec.rb +18 -18
  119. data/spec/mongo/server_selector_spec.rb +4 -4
  120. data/spec/mongo/session_spec.rb +35 -0
  121. data/spec/runners/change_streams/test.rb +2 -2
  122. data/spec/runners/cmap.rb +1 -1
  123. data/spec/runners/command_monitoring.rb +3 -34
  124. data/spec/runners/crud/context.rb +9 -5
  125. data/spec/runners/crud/operation.rb +59 -27
  126. data/spec/runners/crud/spec.rb +0 -8
  127. data/spec/runners/crud/test.rb +1 -1
  128. data/spec/runners/sdam.rb +2 -2
  129. data/spec/runners/server_selection.rb +242 -28
  130. data/spec/runners/transactions.rb +12 -12
  131. data/spec/runners/transactions/operation.rb +151 -25
  132. data/spec/runners/transactions/test.rb +60 -16
  133. data/spec/spec_tests/command_monitoring_spec.rb +22 -12
  134. data/spec/spec_tests/crud_spec.rb +1 -1
  135. data/spec/spec_tests/data/change_streams/change-streams-errors.yml +4 -8
  136. data/spec/spec_tests/data/change_streams/change-streams-resume-whitelist.yml +66 -0
  137. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/MaxStalenessTooSmall.yml +15 -0
  138. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/NoKnownServers.yml +4 -3
  139. data/spec/spec_tests/data/max_staleness/Unknown/SmallMaxStaleness.yml +1 -0
  140. data/spec/spec_tests/data/sdam_integration/cancel-server-check.yml +96 -0
  141. data/spec/spec_tests/data/sdam_integration/connectTimeoutMS.yml +88 -0
  142. data/spec/spec_tests/data/sdam_integration/find-network-error.yml +83 -0
  143. data/spec/spec_tests/data/sdam_integration/find-shutdown-error.yml +116 -0
  144. data/spec/spec_tests/data/sdam_integration/insert-network-error.yml +86 -0
  145. data/spec/spec_tests/data/sdam_integration/insert-shutdown-error.yml +115 -0
  146. data/spec/spec_tests/data/sdam_integration/isMaster-command-error.yml +168 -0
  147. data/spec/spec_tests/data/sdam_integration/isMaster-network-error.yml +162 -0
  148. data/spec/spec_tests/data/sdam_integration/isMaster-timeout.yml +229 -0
  149. data/spec/spec_tests/data/sdam_integration/rediscover-quickly-after-step-down.yml +87 -0
  150. data/spec/spec_tests/max_staleness_spec.rb +4 -142
  151. data/spec/spec_tests/retryable_reads_spec.rb +2 -2
  152. data/spec/spec_tests/sdam_integration_spec.rb +13 -0
  153. data/spec/spec_tests/sdam_monitoring_spec.rb +1 -2
  154. data/spec/spec_tests/server_selection_spec.rb +4 -116
  155. data/spec/stress/cleanup_spec.rb +17 -2
  156. data/spec/stress/connection_pool_stress_spec.rb +10 -8
  157. data/spec/support/child_process_helper.rb +78 -0
  158. data/spec/support/client_registry.rb +1 -0
  159. data/spec/support/cluster_config.rb +4 -0
  160. data/spec/support/event_subscriber.rb +123 -33
  161. data/spec/support/keyword_struct.rb +26 -0
  162. data/spec/support/shared/server_selector.rb +13 -1
  163. data/spec/support/spec_config.rb +38 -13
  164. data/spec/support/spec_organizer.rb +129 -0
  165. data/spec/support/spec_setup.rb +1 -1
  166. data/spec/support/utils.rb +46 -0
  167. metadata +992 -942
  168. metadata.gz.sig +0 -0
  169. data/lib/mongo/server_selector/selectable.rb +0 -560
  170. data/spec/runners/sdam_monitoring.rb +0 -89
@@ -0,0 +1,51 @@
1
+ require 'lite_spec_helper'
2
+
3
+ describe Mongo::Semaphore do
4
+ let(:semaphore) do
5
+ described_class.new
6
+ end
7
+
8
+ it 'waits until signaled' do
9
+ consumer = Thread.new do
10
+ semaphore.wait(3)
11
+ end
12
+
13
+ # Context switch to start the thread
14
+ sleep 0.1
15
+
16
+ start_time = Time.now
17
+ semaphore.signal
18
+ consumer.join
19
+
20
+ (Time.now - start_time).should < 1
21
+ end
22
+
23
+ it 'waits until broadcast' do
24
+ consumer = Thread.new do
25
+ semaphore.wait(3)
26
+ end
27
+
28
+ # Context switch to start the thread
29
+ sleep 0.1
30
+
31
+ start_time = Time.now
32
+ semaphore.broadcast
33
+ consumer.join
34
+
35
+ (Time.now - start_time).should < 1
36
+ end
37
+
38
+ it 'times out' do
39
+ consumer = Thread.new do
40
+ semaphore.wait(2)
41
+ end
42
+
43
+ # Context switch to start the thread
44
+ sleep 0.1
45
+
46
+ start_time = Time.now
47
+ consumer.join
48
+
49
+ (Time.now - start_time).should > 1
50
+ end
51
+ end
@@ -65,7 +65,7 @@ describe Mongo::Server::Connection, retry: 3 do
65
65
  SpecConfig.instance.test_options.merge(
66
66
  user: SpecConfig.instance.test_user.name,
67
67
  password: SpecConfig.instance.test_user.password,
68
- auth_source: SpecConfig.instance.test_db,
68
+ auth_source: 'admin',
69
69
  )
70
70
  end
71
71
 
@@ -74,7 +74,7 @@ describe Mongo::Server::Connection, retry: 3 do
74
74
  end
75
75
 
76
76
  before do
77
- client = authorized_client.with(database: SpecConfig.instance.test_db)
77
+ client = authorized_client.with(database: 'admin')
78
78
  info = client.database.users.info(SpecConfig.instance.test_user.name)
79
79
  expect(info.length).to eq(1)
80
80
  # this before block may have made 2 or 3 clients
@@ -114,13 +114,13 @@ describe Mongo::ServerSelector::Nearest do
114
114
  end
115
115
  end
116
116
 
117
- describe '#select' do
117
+ describe '#select_in_replica_set' do
118
118
 
119
119
  context 'no candidates' do
120
120
  let(:candidates) { [] }
121
121
 
122
122
  it 'returns an empty array' do
123
- expect(selector.send(:select, candidates)).to be_empty
123
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
124
124
  end
125
125
  end
126
126
 
@@ -128,7 +128,7 @@ describe Mongo::ServerSelector::Nearest do
128
128
  let(:candidates) { [primary] }
129
129
 
130
130
  it 'returns an array with the primary' do
131
- expect(selector.send(:select, candidates)).to eq([primary])
131
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([primary])
132
132
  end
133
133
  end
134
134
 
@@ -136,7 +136,7 @@ describe Mongo::ServerSelector::Nearest do
136
136
  let(:candidates) { [secondary] }
137
137
 
138
138
  it 'returns an array with the secondary' do
139
- expect(selector.send(:select, candidates)).to eq([secondary])
139
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([secondary])
140
140
  end
141
141
  end
142
142
 
@@ -144,7 +144,7 @@ describe Mongo::ServerSelector::Nearest do
144
144
  let(:candidates) { [primary, secondary] }
145
145
 
146
146
  it 'returns an array with the primary and secondary' do
147
- expect(selector.send(:select, candidates)).to match_array([primary, secondary])
147
+ expect(selector.send(:select_in_replica_set, candidates)).to match_array([primary, secondary])
148
148
  end
149
149
  end
150
150
 
@@ -152,7 +152,7 @@ describe Mongo::ServerSelector::Nearest do
152
152
  let(:candidates) { [secondary, secondary] }
153
153
 
154
154
  it 'returns an array with the secondaries' do
155
- expect(selector.send(:select, candidates)).to match_array([secondary, secondary])
155
+ expect(selector.send(:select_in_replica_set, candidates)).to match_array([secondary, secondary])
156
156
  end
157
157
  end
158
158
 
@@ -171,7 +171,7 @@ describe Mongo::ServerSelector::Nearest do
171
171
  let(:candidates) { [primary] }
172
172
 
173
173
  it 'returns an empty array' do
174
- expect(selector.send(:select, candidates)).to be_empty
174
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
175
175
  end
176
176
  end
177
177
 
@@ -179,7 +179,7 @@ describe Mongo::ServerSelector::Nearest do
179
179
  let(:candidates) { [matching_primary] }
180
180
 
181
181
  it 'returns an array with the primary' do
182
- expect(selector.send(:select, candidates)).to eq([matching_primary])
182
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([matching_primary])
183
183
  end
184
184
  end
185
185
 
@@ -187,7 +187,7 @@ describe Mongo::ServerSelector::Nearest do
187
187
  let(:candidates) { [secondary] }
188
188
 
189
189
  it 'returns an empty array' do
190
- expect(selector.send(:select, candidates)).to be_empty
190
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
191
191
  end
192
192
  end
193
193
 
@@ -195,7 +195,7 @@ describe Mongo::ServerSelector::Nearest do
195
195
  let(:candidates) { [matching_secondary] }
196
196
 
197
197
  it 'returns an array with the matching secondary' do
198
- expect(selector.send(:select, candidates)).to eq([matching_secondary])
198
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([matching_secondary])
199
199
  end
200
200
  end
201
201
  end
@@ -206,7 +206,7 @@ describe Mongo::ServerSelector::Nearest do
206
206
  let(:candidates) { [primary, secondary, secondary] }
207
207
 
208
208
  it 'returns an empty array' do
209
- expect(selector.send(:select, candidates)).to be_empty
209
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
210
210
  end
211
211
  end
212
212
 
@@ -214,7 +214,7 @@ describe Mongo::ServerSelector::Nearest do
214
214
  let(:candidates) { [matching_primary, secondary, secondary] }
215
215
 
216
216
  it 'returns an array with the matching primary' do
217
- expect(selector.send(:select, candidates)).to eq([matching_primary])
217
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([matching_primary])
218
218
  end
219
219
  end
220
220
 
@@ -222,7 +222,7 @@ describe Mongo::ServerSelector::Nearest do
222
222
  let(:candidates) { [primary, matching_secondary, secondary] }
223
223
 
224
224
  it 'returns an array with the matching secondary' do
225
- expect(selector.send(:select, candidates)).to eq([matching_secondary])
225
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([matching_secondary])
226
226
  end
227
227
  end
228
228
 
@@ -231,7 +231,7 @@ describe Mongo::ServerSelector::Nearest do
231
231
  let(:expected) { [matching_secondary, matching_secondary] }
232
232
 
233
233
  it 'returns an array with the matching secondaries' do
234
- expect(selector.send(:select, candidates)).to eq(expected)
234
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
235
235
  end
236
236
  end
237
237
 
@@ -240,7 +240,7 @@ describe Mongo::ServerSelector::Nearest do
240
240
  let(:expected) { [matching_primary, matching_secondary] }
241
241
 
242
242
  it 'returns an array with the matching primary and secondary' do
243
- expect(selector.send(:select, candidates)).to match_array(expected)
243
+ expect(selector.send(:select_in_replica_set, candidates)).to match_array(expected)
244
244
  end
245
245
  end
246
246
  end
@@ -256,7 +256,7 @@ describe Mongo::ServerSelector::Nearest do
256
256
  let(:candidates) { [far_primary] }
257
257
 
258
258
  it 'returns array with far primary' do
259
- expect(selector.send(:select, candidates)).to eq([far_primary])
259
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([far_primary])
260
260
  end
261
261
  end
262
262
 
@@ -264,7 +264,7 @@ describe Mongo::ServerSelector::Nearest do
264
264
  let(:candidates) { [far_secondary] }
265
265
 
266
266
  it 'returns array with far primary' do
267
- expect(selector.send(:select, candidates)).to eq([far_secondary])
267
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([far_secondary])
268
268
  end
269
269
  end
270
270
  end
@@ -275,7 +275,7 @@ describe Mongo::ServerSelector::Nearest do
275
275
  let(:candidates) { [primary, secondary] }
276
276
 
277
277
  it 'returns array with primary and secondary' do
278
- expect(selector.send(:select, candidates)).to match_array(
278
+ expect(selector.send(:select_in_replica_set, candidates)).to match_array(
279
279
  [primary, secondary]
280
280
  )
281
281
  end
@@ -285,7 +285,7 @@ describe Mongo::ServerSelector::Nearest do
285
285
  let(:candidates) { [primary, far_secondary] }
286
286
 
287
287
  it 'returns array with local primary' do
288
- expect(selector.send(:select, candidates)).to eq([primary])
288
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([primary])
289
289
  end
290
290
  end
291
291
 
@@ -293,7 +293,7 @@ describe Mongo::ServerSelector::Nearest do
293
293
  let(:candidates) { [far_primary, secondary] }
294
294
 
295
295
  it 'returns array with local secondary' do
296
- expect(selector.send(:select, candidates)).to eq([secondary])
296
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([secondary])
297
297
  end
298
298
  end
299
299
 
@@ -302,7 +302,7 @@ describe Mongo::ServerSelector::Nearest do
302
302
  let(:expected) { [far_primary, far_secondary] }
303
303
 
304
304
  it 'returns array with both servers' do
305
- expect(selector.send(:select, candidates)).to match_array(expected)
305
+ expect(selector.send(:select_in_replica_set, candidates)).to match_array(expected)
306
306
  end
307
307
  end
308
308
 
@@ -313,7 +313,7 @@ describe Mongo::ServerSelector::Nearest do
313
313
  let(:expected) { [primary, secondary] }
314
314
 
315
315
  it 'returns array with local primary and local secondary' do
316
- expect(selector.send(:select, candidates)).to match_array(expected)
316
+ expect(selector.send(:select_in_replica_set, candidates)).to match_array(expected)
317
317
  end
318
318
  end
319
319
 
@@ -322,7 +322,7 @@ describe Mongo::ServerSelector::Nearest do
322
322
  let(:expected) { [secondary, secondary] }
323
323
 
324
324
  it 'returns array with the two local secondaries' do
325
- expect(selector.send(:select, candidates)).to match_array(expected)
325
+ expect(selector.send(:select_in_replica_set, candidates)).to match_array(expected)
326
326
  end
327
327
  end
328
328
  end
@@ -107,13 +107,13 @@ describe Mongo::ServerSelector::PrimaryPreferred do
107
107
  end
108
108
  end
109
109
 
110
- describe '#select' do
110
+ describe '#select_in_replica_set' do
111
111
 
112
112
  context 'no candidates' do
113
113
  let(:candidates) { [] }
114
114
 
115
115
  it 'returns an empty array' do
116
- expect(selector.send(:select, candidates)).to be_empty
116
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
117
117
  end
118
118
  end
119
119
 
@@ -121,7 +121,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
121
121
  let(:candidates) { [primary] }
122
122
 
123
123
  it 'returns an array with the primary' do
124
- expect(selector.send(:select, candidates)).to eq( [primary] )
124
+ expect(selector.send(:select_in_replica_set, candidates)).to eq( [primary] )
125
125
  end
126
126
  end
127
127
 
@@ -129,7 +129,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
129
129
  let(:candidates) { [secondary] }
130
130
 
131
131
  it 'returns an array with the secondary' do
132
- expect(selector.send(:select, candidates)).to eq( [secondary] )
132
+ expect(selector.send(:select_in_replica_set, candidates)).to eq( [secondary] )
133
133
  end
134
134
  end
135
135
 
@@ -138,7 +138,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
138
138
  let(:expected) { [primary] }
139
139
 
140
140
  it 'returns an array with the primary' do
141
- expect(selector.send(:select, candidates)).to eq(expected)
141
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
142
142
  end
143
143
  end
144
144
 
@@ -147,7 +147,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
147
147
  let(:expected) { [primary] }
148
148
 
149
149
  it 'returns an array with the primary' do
150
- expect(selector.send(:select, candidates)).to eq(expected)
150
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
151
151
  end
152
152
  end
153
153
 
@@ -168,7 +168,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
168
168
  let(:candidates) { [primary] }
169
169
 
170
170
  it 'returns array with primary' do
171
- expect(selector.send(:select, candidates)).to eq([primary])
171
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([primary])
172
172
  end
173
173
  end
174
174
 
@@ -176,7 +176,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
176
176
  let(:candidates) { [matching_primary] }
177
177
 
178
178
  it 'returns array with matching primary' do
179
- expect(selector.send(:select, candidates)).to eq([matching_primary])
179
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([matching_primary])
180
180
  end
181
181
  end
182
182
 
@@ -184,7 +184,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
184
184
  let(:candidates) { [matching_secondary] }
185
185
 
186
186
  it 'returns array with matching secondary' do
187
- expect(selector.send(:select, candidates)).to eq([matching_secondary])
187
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([matching_secondary])
188
188
  end
189
189
  end
190
190
 
@@ -192,7 +192,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
192
192
  let(:candidates) { [secondary] }
193
193
 
194
194
  it 'returns an empty array' do
195
- expect(selector.send(:select, candidates)).to be_empty
195
+ expect(selector.send(:select_in_replica_set, candidates)).to be_empty
196
196
  end
197
197
  end
198
198
  end
@@ -203,7 +203,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
203
203
  let(:candidates) { [primary, secondary, secondary] }
204
204
 
205
205
  it 'returns an array with the primary' do
206
- expect(selector.send(:select, candidates)).to eq([primary])
206
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([primary])
207
207
  end
208
208
  end
209
209
 
@@ -211,7 +211,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
211
211
  let(:candidates) { [matching_primary, secondary, secondary] }
212
212
 
213
213
  it 'returns an array of the primary' do
214
- expect(selector.send(:select, candidates)).to eq([matching_primary])
214
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([matching_primary])
215
215
  end
216
216
  end
217
217
 
@@ -220,7 +220,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
220
220
  let(:expected) { [primary] }
221
221
 
222
222
  it 'returns an array of the primary' do
223
- expect(selector.send(:select, candidates)).to eq(expected)
223
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
224
224
  end
225
225
  end
226
226
 
@@ -229,7 +229,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
229
229
  let(:expected) { [primary] }
230
230
 
231
231
  it 'returns an array of the primary ' do
232
- expect(selector.send(:select, candidates)).to eq(expected)
232
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
233
233
  end
234
234
  end
235
235
 
@@ -238,7 +238,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
238
238
  let(:expected) { [primary] }
239
239
 
240
240
  it 'returns an array of the primary' do
241
- expect(selector.send(:select, candidates)).to eq(expected)
241
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
242
242
  end
243
243
  end
244
244
  end
@@ -254,7 +254,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
254
254
  let(:candidates) { [far_primary] }
255
255
 
256
256
  it 'returns array with far primary' do
257
- expect(selector.send(:select, candidates)).to eq([far_primary])
257
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([far_primary])
258
258
  end
259
259
  end
260
260
 
@@ -262,7 +262,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
262
262
  let(:candidates) { [far_secondary] }
263
263
 
264
264
  it 'returns array with far primary' do
265
- expect(selector.send(:select, candidates)).to eq([far_secondary])
265
+ expect(selector.send(:select_in_replica_set, candidates)).to eq([far_secondary])
266
266
  end
267
267
 
268
268
  end
@@ -277,7 +277,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
277
277
  let(:expected) { [primary] }
278
278
 
279
279
  it 'returns an array of the primary' do
280
- expect(selector.send(:select, candidates)).to eq(expected)
280
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
281
281
  end
282
282
  end
283
283
 
@@ -286,7 +286,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
286
286
  let(:expected) { [primary] }
287
287
 
288
288
  it 'returns an array of the primary' do
289
- expect(selector.send(:select, candidates)).to eq(expected)
289
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
290
290
  end
291
291
  end
292
292
 
@@ -295,7 +295,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
295
295
  let(:expected) { [far_primary] }
296
296
 
297
297
  it 'returns an array of the far primary' do
298
- expect(selector.send(:select, candidates)).to eq(expected)
298
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
299
299
  end
300
300
  end
301
301
 
@@ -304,7 +304,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
304
304
  let(:expected) { [far_primary] }
305
305
 
306
306
  it 'returns an array of the far primary' do
307
- expect(selector.send(:select, candidates)).to eq(expected)
307
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
308
308
  end
309
309
  end
310
310
 
@@ -315,7 +315,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
315
315
  let(:expected) { [primary] }
316
316
 
317
317
  it 'returns an array of the primary' do
318
- expect(selector.send(:select, candidates)).to eq(expected)
318
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
319
319
  end
320
320
  end
321
321
 
@@ -324,7 +324,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
324
324
  let(:expected) { [far_primary] }
325
325
 
326
326
  it 'returns an array with primary' do
327
- expect(selector.send(:select, candidates)).to eq(expected)
327
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
328
328
  end
329
329
  end
330
330
  end
@@ -337,7 +337,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
337
337
  let(:expected) { [secondary] }
338
338
 
339
339
  it 'returns an array with the secondary' do
340
- expect(selector.send(:select, candidates)).to eq(expected)
340
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
341
341
  end
342
342
  end
343
343
 
@@ -346,7 +346,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
346
346
  let(:expected) { [secondary] }
347
347
 
348
348
  it 'returns an array of the secondary' do
349
- expect(selector.send(:select, candidates)).to eq(expected)
349
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
350
350
  end
351
351
  end
352
352
 
@@ -355,7 +355,7 @@ describe Mongo::ServerSelector::PrimaryPreferred do
355
355
  let(:expected) { [secondary, secondary] }
356
356
 
357
357
  it 'returns an array of the secondary' do
358
- expect(selector.send(:select, candidates)).to eq(expected)
358
+ expect(selector.send(:select_in_replica_set, candidates)).to eq(expected)
359
359
  end
360
360
  end
361
361
  end