mongo 2.13.0.beta1 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (339) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +1 -5
  4. data/Rakefile +50 -9
  5. data/lib/mongo.rb +13 -2
  6. data/lib/mongo/address.rb +1 -1
  7. data/lib/mongo/address/ipv4.rb +1 -1
  8. data/lib/mongo/address/ipv6.rb +1 -1
  9. data/lib/mongo/auth/aws/request.rb +31 -5
  10. data/lib/mongo/bulk_write.rb +18 -0
  11. data/lib/mongo/caching_cursor.rb +74 -0
  12. data/lib/mongo/client.rb +238 -31
  13. data/lib/mongo/cluster.rb +56 -20
  14. data/lib/mongo/cluster/sdam_flow.rb +13 -10
  15. data/lib/mongo/cluster/topology/replica_set_no_primary.rb +3 -2
  16. data/lib/mongo/cluster/topology/sharded.rb +1 -1
  17. data/lib/mongo/cluster/topology/single.rb +2 -2
  18. data/lib/mongo/collection.rb +66 -24
  19. data/lib/mongo/collection/view.rb +24 -20
  20. data/lib/mongo/collection/view/aggregation.rb +25 -4
  21. data/lib/mongo/collection/view/builder/find_command.rb +38 -18
  22. data/lib/mongo/collection/view/explainable.rb +27 -8
  23. data/lib/mongo/collection/view/iterable.rb +72 -12
  24. data/lib/mongo/collection/view/readable.rb +19 -3
  25. data/lib/mongo/collection/view/writable.rb +55 -5
  26. data/lib/mongo/crypt/encryption_io.rb +6 -6
  27. data/lib/mongo/cursor.rb +16 -3
  28. data/lib/mongo/database.rb +37 -4
  29. data/lib/mongo/database/view.rb +18 -3
  30. data/lib/mongo/distinguishing_semaphore.rb +55 -0
  31. data/lib/mongo/error.rb +5 -0
  32. data/lib/mongo/error/invalid_read_concern.rb +28 -0
  33. data/lib/mongo/error/invalid_server_auth_host.rb +22 -0
  34. data/lib/mongo/error/invalid_session.rb +2 -1
  35. data/lib/mongo/error/operation_failure.rb +11 -5
  36. data/lib/mongo/error/server_certificate_revoked.rb +22 -0
  37. data/lib/mongo/error/sessions_not_supported.rb +35 -0
  38. data/lib/mongo/error/unsupported_option.rb +14 -12
  39. data/lib/mongo/event/base.rb +6 -0
  40. data/lib/mongo/grid/file.rb +5 -0
  41. data/lib/mongo/grid/file/chunk.rb +2 -0
  42. data/lib/mongo/grid/fs_bucket.rb +15 -13
  43. data/lib/mongo/grid/stream/write.rb +9 -3
  44. data/lib/mongo/index/view.rb +3 -0
  45. data/lib/mongo/lint.rb +2 -1
  46. data/lib/mongo/logger.rb +3 -3
  47. data/lib/mongo/monitoring.rb +38 -0
  48. data/lib/mongo/monitoring/command_log_subscriber.rb +10 -2
  49. data/lib/mongo/monitoring/event/command_failed.rb +11 -0
  50. data/lib/mongo/monitoring/event/command_started.rb +37 -2
  51. data/lib/mongo/monitoring/event/command_succeeded.rb +11 -0
  52. data/lib/mongo/monitoring/event/server_closed.rb +1 -1
  53. data/lib/mongo/monitoring/event/server_description_changed.rb +27 -4
  54. data/lib/mongo/monitoring/event/server_heartbeat_failed.rb +9 -2
  55. data/lib/mongo/monitoring/event/server_heartbeat_started.rb +9 -2
  56. data/lib/mongo/monitoring/event/server_heartbeat_succeeded.rb +9 -2
  57. data/lib/mongo/monitoring/event/server_opening.rb +1 -1
  58. data/lib/mongo/monitoring/event/topology_changed.rb +1 -1
  59. data/lib/mongo/monitoring/event/topology_closed.rb +1 -1
  60. data/lib/mongo/monitoring/event/topology_opening.rb +1 -1
  61. data/lib/mongo/monitoring/publishable.rb +6 -3
  62. data/lib/mongo/monitoring/server_description_changed_log_subscriber.rb +9 -1
  63. data/lib/mongo/monitoring/topology_changed_log_subscriber.rb +1 -1
  64. data/lib/mongo/operation.rb +2 -0
  65. data/lib/mongo/operation/aggregate/result.rb +9 -8
  66. data/lib/mongo/operation/collections_info/command.rb +5 -0
  67. data/lib/mongo/operation/collections_info/result.rb +18 -1
  68. data/lib/mongo/operation/delete/bulk_result.rb +2 -0
  69. data/lib/mongo/operation/delete/result.rb +3 -0
  70. data/lib/mongo/operation/explain/command.rb +4 -0
  71. data/lib/mongo/operation/explain/legacy.rb +4 -0
  72. data/lib/mongo/operation/explain/op_msg.rb +6 -0
  73. data/lib/mongo/operation/explain/result.rb +3 -0
  74. data/lib/mongo/operation/find/legacy/result.rb +2 -0
  75. data/lib/mongo/operation/find/result.rb +13 -0
  76. data/lib/mongo/operation/get_more/result.rb +3 -0
  77. data/lib/mongo/operation/indexes/result.rb +5 -0
  78. data/lib/mongo/operation/insert/bulk_result.rb +5 -0
  79. data/lib/mongo/operation/insert/result.rb +5 -0
  80. data/lib/mongo/operation/list_collections/result.rb +5 -0
  81. data/lib/mongo/operation/map_reduce/result.rb +10 -0
  82. data/lib/mongo/operation/parallel_scan/result.rb +4 -0
  83. data/lib/mongo/operation/result.rb +35 -6
  84. data/lib/mongo/operation/shared/bypass_document_validation.rb +1 -0
  85. data/lib/mongo/operation/shared/causal_consistency_supported.rb +1 -0
  86. data/lib/mongo/operation/shared/collections_info_or_list_collections.rb +2 -0
  87. data/lib/mongo/operation/shared/executable.rb +1 -0
  88. data/lib/mongo/operation/shared/idable.rb +2 -1
  89. data/lib/mongo/operation/shared/limited.rb +1 -0
  90. data/lib/mongo/operation/shared/object_id_generator.rb +1 -0
  91. data/lib/mongo/operation/shared/result/aggregatable.rb +1 -0
  92. data/lib/mongo/operation/shared/sessions_supported.rb +1 -0
  93. data/lib/mongo/operation/shared/specifiable.rb +1 -0
  94. data/lib/mongo/operation/shared/write.rb +1 -0
  95. data/lib/mongo/operation/shared/write_concern_supported.rb +1 -0
  96. data/lib/mongo/operation/update/legacy/result.rb +7 -0
  97. data/lib/mongo/operation/update/result.rb +8 -0
  98. data/lib/mongo/operation/users_info/result.rb +3 -0
  99. data/lib/mongo/protocol/message.rb +47 -10
  100. data/lib/mongo/protocol/msg.rb +34 -1
  101. data/lib/mongo/protocol/query.rb +36 -0
  102. data/lib/mongo/protocol/serializers.rb +5 -2
  103. data/lib/mongo/query_cache.rb +242 -0
  104. data/lib/mongo/retryable.rb +8 -1
  105. data/lib/mongo/server.rb +15 -4
  106. data/lib/mongo/server/app_metadata.rb +27 -3
  107. data/lib/mongo/server/connection.rb +4 -4
  108. data/lib/mongo/server/connection_base.rb +38 -12
  109. data/lib/mongo/server/connection_common.rb +2 -2
  110. data/lib/mongo/server/connection_pool.rb +3 -0
  111. data/lib/mongo/server/description.rb +13 -1
  112. data/lib/mongo/server/monitor.rb +76 -44
  113. data/lib/mongo/server/monitor/connection.rb +57 -9
  114. data/lib/mongo/server/pending_connection.rb +14 -4
  115. data/lib/mongo/server/push_monitor.rb +173 -0
  116. data/{spec/runners/transactions/context.rb → lib/mongo/server/push_monitor/connection.rb} +9 -14
  117. data/lib/mongo/server_selector.rb +0 -1
  118. data/lib/mongo/server_selector/base.rb +583 -1
  119. data/lib/mongo/server_selector/nearest.rb +1 -6
  120. data/lib/mongo/server_selector/primary.rb +1 -6
  121. data/lib/mongo/server_selector/primary_preferred.rb +7 -10
  122. data/lib/mongo/server_selector/secondary.rb +1 -6
  123. data/lib/mongo/server_selector/secondary_preferred.rb +1 -7
  124. data/lib/mongo/session.rb +7 -1
  125. data/lib/mongo/socket.rb +26 -12
  126. data/lib/mongo/socket/ocsp_cache.rb +97 -0
  127. data/lib/mongo/socket/ocsp_verifier.rb +368 -0
  128. data/lib/mongo/socket/ssl.rb +46 -25
  129. data/lib/mongo/socket/tcp.rb +1 -1
  130. data/lib/mongo/srv/monitor.rb +7 -13
  131. data/lib/mongo/srv/resolver.rb +14 -10
  132. data/lib/mongo/timeout.rb +2 -0
  133. data/lib/mongo/topology_version.rb +9 -0
  134. data/lib/mongo/uri.rb +21 -390
  135. data/lib/mongo/uri/options_mapper.rb +582 -0
  136. data/lib/mongo/uri/srv_protocol.rb +3 -2
  137. data/lib/mongo/utils.rb +73 -0
  138. data/lib/mongo/version.rb +1 -1
  139. data/spec/NOTES.aws-auth.md +12 -7
  140. data/spec/README.aws-auth.md +2 -2
  141. data/spec/README.md +63 -1
  142. data/spec/integration/awaited_ismaster_spec.rb +28 -0
  143. data/spec/integration/bson_symbol_spec.rb +4 -2
  144. data/spec/integration/bulk_write_spec.rb +67 -0
  145. data/spec/integration/change_stream_examples_spec.rb +6 -2
  146. data/spec/integration/change_stream_spec.rb +1 -1
  147. data/spec/integration/check_clean_slate_spec.rb +16 -0
  148. data/spec/integration/client_authentication_options_spec.rb +92 -28
  149. data/spec/integration/client_construction_spec.rb +1 -0
  150. data/spec/integration/client_side_encryption/auto_encryption_bulk_writes_spec.rb +9 -5
  151. data/spec/integration/connect_single_rs_name_spec.rb +5 -2
  152. data/spec/integration/connection_pool_populator_spec.rb +4 -2
  153. data/spec/integration/connection_spec.rb +7 -4
  154. data/spec/integration/crud_spec.rb +4 -4
  155. data/spec/integration/cursor_reaping_spec.rb +54 -18
  156. data/spec/integration/docs_examples_spec.rb +6 -0
  157. data/spec/integration/fork_reconnect_spec.rb +56 -1
  158. data/spec/integration/grid_fs_bucket_spec.rb +48 -0
  159. data/spec/integration/heartbeat_events_spec.rb +4 -23
  160. data/spec/integration/ocsp_connectivity_spec.rb +26 -0
  161. data/spec/integration/ocsp_verifier_cache_spec.rb +188 -0
  162. data/spec/integration/ocsp_verifier_spec.rb +334 -0
  163. data/spec/integration/query_cache_spec.rb +1045 -0
  164. data/spec/integration/query_cache_transactions_spec.rb +190 -0
  165. data/spec/integration/read_concern_spec.rb +1 -1
  166. data/spec/integration/retryable_errors_spec.rb +1 -1
  167. data/spec/integration/retryable_writes/retryable_writes_40_and_newer_spec.rb +1 -0
  168. data/spec/integration/retryable_writes/shared/performs_legacy_retries.rb +4 -2
  169. data/spec/integration/retryable_writes/shared/performs_modern_retries.rb +3 -3
  170. data/spec/integration/retryable_writes/shared/performs_no_retries.rb +2 -2
  171. data/spec/integration/sdam_error_handling_spec.rb +122 -15
  172. data/spec/integration/sdam_events_spec.rb +80 -6
  173. data/spec/integration/sdam_prose_spec.rb +64 -0
  174. data/spec/integration/server_monitor_spec.rb +25 -1
  175. data/spec/integration/server_selection_spec.rb +36 -0
  176. data/spec/integration/size_limit_spec.rb +23 -5
  177. data/spec/integration/srv_monitoring_spec.rb +38 -3
  178. data/spec/integration/srv_spec.rb +56 -0
  179. data/spec/integration/ssl_uri_options_spec.rb +2 -2
  180. data/spec/integration/transactions_examples_spec.rb +17 -7
  181. data/spec/integration/zlib_compression_spec.rb +25 -0
  182. data/spec/lite_spec_helper.rb +20 -9
  183. data/spec/mongo/address_spec.rb +1 -1
  184. data/spec/mongo/auth/aws/request_region_spec.rb +42 -0
  185. data/spec/mongo/auth/aws/request_spec.rb +76 -0
  186. data/spec/mongo/auth/scram_spec.rb +1 -1
  187. data/spec/mongo/auth/user_spec.rb +1 -1
  188. data/spec/mongo/bulk_write_spec.rb +2 -2
  189. data/spec/mongo/caching_cursor_spec.rb +70 -0
  190. data/spec/mongo/client_construction_spec.rb +386 -3
  191. data/spec/mongo/client_encryption_spec.rb +16 -10
  192. data/spec/mongo/client_spec.rb +85 -3
  193. data/spec/mongo/cluster/topology/replica_set_spec.rb +53 -10
  194. data/spec/mongo/cluster/topology/sharded_spec.rb +1 -1
  195. data/spec/mongo/cluster/topology/single_spec.rb +19 -8
  196. data/spec/mongo/cluster/topology/unknown_spec.rb +1 -1
  197. data/spec/mongo/cluster/topology_spec.rb +1 -1
  198. data/spec/mongo/cluster_spec.rb +37 -35
  199. data/spec/mongo/collection/view/change_stream_resume_spec.rb +7 -7
  200. data/spec/mongo/collection/view/explainable_spec.rb +87 -4
  201. data/spec/mongo/collection/view/map_reduce_spec.rb +2 -0
  202. data/spec/mongo/collection/view/readable_spec.rb +36 -0
  203. data/spec/mongo/collection_spec.rb +572 -0
  204. data/spec/mongo/crypt/auto_decryption_context_spec.rb +1 -1
  205. data/spec/mongo/crypt/auto_encryption_context_spec.rb +1 -1
  206. data/spec/mongo/crypt/binary_spec.rb +1 -6
  207. data/spec/mongo/crypt/binding/binary_spec.rb +1 -6
  208. data/spec/mongo/crypt/binding/context_spec.rb +2 -7
  209. data/spec/mongo/crypt/binding/helpers_spec.rb +1 -6
  210. data/spec/mongo/crypt/binding/mongocrypt_spec.rb +2 -7
  211. data/spec/mongo/crypt/binding/status_spec.rb +1 -6
  212. data/spec/mongo/crypt/binding/version_spec.rb +1 -6
  213. data/spec/mongo/crypt/data_key_context_spec.rb +1 -1
  214. data/spec/mongo/crypt/explicit_decryption_context_spec.rb +1 -1
  215. data/spec/mongo/crypt/explicit_encryption_context_spec.rb +1 -1
  216. data/spec/mongo/crypt/status_spec.rb +1 -6
  217. data/spec/mongo/database_spec.rb +353 -8
  218. data/spec/mongo/distinguishing_semaphore_spec.rb +63 -0
  219. data/spec/mongo/error/no_server_available_spec.rb +1 -1
  220. data/spec/mongo/error/operation_failure_spec.rb +40 -0
  221. data/spec/mongo/index/view_spec.rb +148 -2
  222. data/spec/mongo/logger_spec.rb +13 -11
  223. data/spec/mongo/monitoring/event/server_closed_spec.rb +1 -1
  224. data/spec/mongo/monitoring/event/server_description_changed_spec.rb +1 -4
  225. data/spec/mongo/monitoring/event/server_opening_spec.rb +1 -1
  226. data/spec/mongo/monitoring/event/topology_changed_spec.rb +1 -1
  227. data/spec/mongo/monitoring/event/topology_closed_spec.rb +1 -1
  228. data/spec/mongo/monitoring/event/topology_opening_spec.rb +1 -1
  229. data/spec/mongo/operation/delete/op_msg_spec.rb +3 -3
  230. data/spec/mongo/operation/insert/command_spec.rb +2 -2
  231. data/spec/mongo/operation/insert/op_msg_spec.rb +3 -3
  232. data/spec/mongo/operation/read_preference_op_msg_spec.rb +1 -1
  233. data/spec/mongo/operation/update/command_spec.rb +2 -2
  234. data/spec/mongo/operation/update/op_msg_spec.rb +3 -3
  235. data/spec/mongo/protocol/msg_spec.rb +10 -0
  236. data/spec/mongo/query_cache_spec.rb +280 -0
  237. data/spec/mongo/semaphore_spec.rb +51 -0
  238. data/spec/mongo/server/app_metadata_shared.rb +82 -2
  239. data/spec/mongo/server/connection_auth_spec.rb +2 -2
  240. data/spec/mongo/server/connection_pool_spec.rb +7 -3
  241. data/spec/mongo/server/connection_spec.rb +15 -8
  242. data/spec/mongo/server/description_spec.rb +18 -0
  243. data/spec/mongo/server_selector/nearest_spec.rb +23 -23
  244. data/spec/mongo/server_selector/primary_preferred_spec.rb +26 -26
  245. data/spec/mongo/server_selector/primary_spec.rb +9 -9
  246. data/spec/mongo/server_selector/secondary_preferred_spec.rb +22 -22
  247. data/spec/mongo/server_selector/secondary_spec.rb +18 -18
  248. data/spec/mongo/server_selector_spec.rb +6 -6
  249. data/spec/mongo/session_spec.rb +35 -0
  250. data/spec/mongo/socket/ssl_spec.rb +4 -4
  251. data/spec/mongo/socket_spec.rb +1 -1
  252. data/spec/mongo/uri/srv_protocol_spec.rb +64 -33
  253. data/spec/mongo/uri_option_parsing_spec.rb +11 -11
  254. data/spec/mongo/uri_spec.rb +68 -41
  255. data/spec/mongo/utils_spec.rb +39 -0
  256. data/spec/runners/auth.rb +3 -0
  257. data/spec/runners/change_streams/test.rb +3 -3
  258. data/spec/runners/cmap.rb +1 -1
  259. data/spec/runners/command_monitoring.rb +3 -34
  260. data/spec/runners/connection_string.rb +35 -124
  261. data/spec/runners/crud/context.rb +9 -5
  262. data/spec/runners/crud/operation.rb +59 -27
  263. data/spec/runners/crud/spec.rb +0 -8
  264. data/spec/runners/crud/test.rb +1 -1
  265. data/spec/runners/crud/test_base.rb +0 -19
  266. data/spec/runners/sdam.rb +2 -2
  267. data/spec/runners/server_selection.rb +242 -28
  268. data/spec/runners/transactions.rb +12 -12
  269. data/spec/runners/transactions/operation.rb +151 -25
  270. data/spec/runners/transactions/test.rb +62 -18
  271. data/spec/shared/LICENSE +20 -0
  272. data/spec/shared/lib/mrss/child_process_helper.rb +80 -0
  273. data/spec/shared/lib/mrss/constraints.rb +303 -0
  274. data/spec/shared/lib/mrss/lite_constraints.rb +175 -0
  275. data/spec/shared/lib/mrss/spec_organizer.rb +149 -0
  276. data/spec/spec_helper.rb +3 -1
  277. data/spec/spec_tests/cmap_spec.rb +7 -3
  278. data/spec/spec_tests/command_monitoring_spec.rb +22 -12
  279. data/spec/spec_tests/crud_spec.rb +1 -1
  280. data/spec/spec_tests/data/change_streams/change-streams-errors.yml +4 -9
  281. data/spec/spec_tests/data/change_streams/change-streams-resume-whitelist.yml +66 -0
  282. data/spec/spec_tests/data/change_streams/change-streams.yml +0 -1
  283. data/spec/spec_tests/data/cmap/pool-checkout-connection.yml +6 -2
  284. data/spec/spec_tests/data/cmap/pool-create-min-size.yml +3 -0
  285. data/spec/spec_tests/data/connection_string/valid-warnings.yml +24 -0
  286. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/MaxStalenessTooSmall.yml +15 -0
  287. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/NoKnownServers.yml +4 -3
  288. data/spec/spec_tests/data/max_staleness/Unknown/SmallMaxStaleness.yml +1 -0
  289. data/spec/spec_tests/data/sdam_integration/cancel-server-check.yml +96 -0
  290. data/spec/spec_tests/data/sdam_integration/connectTimeoutMS.yml +88 -0
  291. data/spec/spec_tests/data/sdam_integration/find-network-error.yml +83 -0
  292. data/spec/spec_tests/data/sdam_integration/find-shutdown-error.yml +116 -0
  293. data/spec/spec_tests/data/sdam_integration/insert-network-error.yml +86 -0
  294. data/spec/spec_tests/data/sdam_integration/insert-shutdown-error.yml +115 -0
  295. data/spec/spec_tests/data/sdam_integration/isMaster-command-error.yml +168 -0
  296. data/spec/spec_tests/data/sdam_integration/isMaster-network-error.yml +162 -0
  297. data/spec/spec_tests/data/sdam_integration/isMaster-timeout.yml +229 -0
  298. data/spec/spec_tests/data/sdam_integration/rediscover-quickly-after-step-down.yml +87 -0
  299. data/spec/spec_tests/data/sdam_monitoring/discovered_standalone.yml +1 -3
  300. data/spec/spec_tests/data/sdam_monitoring/standalone.yml +2 -2
  301. data/spec/spec_tests/data/sdam_monitoring/standalone_repeated.yml +2 -2
  302. data/spec/spec_tests/data/sdam_monitoring/standalone_suppress_equal_description_changes.yml +2 -2
  303. data/spec/spec_tests/data/sdam_monitoring/standalone_to_rs_with_me_mismatch.yml +2 -2
  304. data/spec/spec_tests/data/uri_options/auth-options.yml +25 -0
  305. data/spec/spec_tests/data/uri_options/compression-options.yml +6 -3
  306. data/spec/spec_tests/data/uri_options/read-preference-options.yml +24 -0
  307. data/spec/spec_tests/data/uri_options/ruby-connection-options.yml +1 -0
  308. data/spec/spec_tests/data/uri_options/tls-options.yml +160 -4
  309. data/spec/spec_tests/dns_seedlist_discovery_spec.rb +9 -1
  310. data/spec/spec_tests/max_staleness_spec.rb +4 -142
  311. data/spec/spec_tests/retryable_reads_spec.rb +2 -2
  312. data/spec/spec_tests/sdam_integration_spec.rb +13 -0
  313. data/spec/spec_tests/sdam_monitoring_spec.rb +1 -2
  314. data/spec/spec_tests/server_selection_spec.rb +4 -116
  315. data/spec/spec_tests/uri_options_spec.rb +31 -33
  316. data/spec/stress/cleanup_spec.rb +17 -2
  317. data/spec/stress/connection_pool_stress_spec.rb +10 -8
  318. data/spec/stress/fork_reconnect_stress_spec.rb +1 -1
  319. data/spec/support/certificates/atlas-ocsp-ca.crt +28 -0
  320. data/spec/support/certificates/atlas-ocsp.crt +41 -0
  321. data/spec/support/client_registry.rb +1 -0
  322. data/spec/support/client_registry_macros.rb +11 -2
  323. data/spec/support/cluster_config.rb +4 -0
  324. data/spec/support/common_shortcuts.rb +45 -0
  325. data/spec/support/constraints.rb +6 -253
  326. data/spec/support/event_subscriber.rb +123 -33
  327. data/spec/support/keyword_struct.rb +26 -0
  328. data/spec/support/matchers.rb +16 -0
  329. data/spec/support/ocsp +1 -0
  330. data/spec/support/session_registry.rb +52 -0
  331. data/spec/support/shared/server_selector.rb +13 -1
  332. data/spec/support/spec_config.rb +60 -13
  333. data/spec/support/spec_setup.rb +1 -1
  334. data/spec/support/utils.rb +84 -1
  335. metadata +1027 -937
  336. metadata.gz.sig +0 -0
  337. data/lib/mongo/server_selector/selectable.rb +0 -560
  338. data/spec/runners/sdam_monitoring.rb +0 -89
  339. data/spec/support/lite_constraints.rb +0 -141
@@ -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
@@ -5,9 +5,13 @@ describe Mongo::Server::ConnectionPool do
5
5
  let(:options) { {} }
6
6
 
7
7
  let(:server_options) do
8
- SpecConfig.instance.ssl_options.merge(SpecConfig.instance.compressor_options)
9
- .merge(SpecConfig.instance.retry_writes_options).merge(SpecConfig.instance.auth_options)
10
- .merge(options)
8
+ Mongo::Utils.shallow_symbolize_keys(Mongo::Client.canonicalize_ruby_options(
9
+ SpecConfig.instance.all_test_options,
10
+ )).tap do |opts|
11
+ opts.delete(:min_pool_size)
12
+ opts.delete(:max_pool_size)
13
+ opts.delete(:wait_queue_timeout)
14
+ end.update(options)
11
15
  end
12
16
 
13
17
  let(:address) do
@@ -158,6 +158,8 @@ describe Mongo::Server::Connection do
158
158
  end
159
159
 
160
160
  shared_examples_for 'logs a warning' do
161
+ require_warning_clean
162
+
161
163
  it 'logs a warning' do
162
164
  messages = []
163
165
  expect(Mongo::Logger.logger).to receive(:warn) do |msg|
@@ -172,6 +174,8 @@ describe Mongo::Server::Connection do
172
174
  end
173
175
 
174
176
  shared_examples_for 'adds server diagnostics' do
177
+ require_warning_clean
178
+
175
179
  it 'adds server diagnostics' do
176
180
  messages = []
177
181
  expect(Mongo::Logger.logger).to receive(:warn) do |msg|
@@ -248,8 +252,9 @@ describe Mongo::Server::Connection do
248
252
  require_auth
249
253
 
250
254
  let(:server_options) do
251
- SpecConfig.instance.test_options.merge(monitoring_io: false).
252
- merge(SpecConfig.instance.auth_options)
255
+ Mongo::Client.canonicalize_ruby_options(
256
+ SpecConfig.instance.all_test_options,
257
+ ).update(monitoring_io: false)
253
258
  end
254
259
 
255
260
  let(:exception) do
@@ -589,10 +594,12 @@ describe Mongo::Server::Connection do
589
594
  server,
590
595
  SpecConfig.instance.test_options.merge(
591
596
  :database => SpecConfig.instance.test_user.database,
592
- ).merge(SpecConfig.instance.credentials_or_external_user(
593
- user: SpecConfig.instance.test_user.name,
594
- password: SpecConfig.instance.test_user.password,
595
- ))
597
+ ).merge(Mongo::Utils.shallow_symbolize_keys(Mongo::Client.canonicalize_ruby_options(
598
+ SpecConfig.instance.credentials_or_external_user(
599
+ user: SpecConfig.instance.test_user.name,
600
+ password: SpecConfig.instance.test_user.password,
601
+ ),
602
+ )))
596
603
  ).tap do |connection|
597
604
  connection.connect!
598
605
  end
@@ -767,7 +774,7 @@ describe Mongo::Server::Connection do
767
774
  context 'when the message is a command' do
768
775
  # Server description is frozen when linting is enabled, which is
769
776
  # incompatible with expectations set on it in this test
770
- skip_if_linting
777
+ require_no_linting
771
778
 
772
779
  let(:selector) do
773
780
  # The driver allows up to 16KiB for command overhead on top of
@@ -1099,7 +1106,7 @@ describe Mongo::Server::Connection do
1099
1106
  :user => SpecConfig.instance.test_user.name,
1100
1107
  :password => SpecConfig.instance.test_user.password,
1101
1108
  :database => SpecConfig.instance.test_db,
1102
- :auth_mech => :mongodb_cr
1109
+ :auth_mech => :mongodb_cr,
1103
1110
  )
1104
1111
  end
1105
1112
 
@@ -27,6 +27,7 @@ describe Mongo::Server::Description do
27
27
  'logicalSessionTimeoutMinutes' => 7,
28
28
  'operationTime' => 1,
29
29
  '$clusterTime' => 1,
30
+ 'connectionId' => 11,
30
31
  'ok' => 1
31
32
  }
32
33
  end
@@ -757,6 +758,23 @@ describe Mongo::Server::Description do
757
758
  end
758
759
  end
759
760
 
761
+ context 'when the configs match, but have different connectionId values' do
762
+
763
+ let(:description) do
764
+ described_class.new(address, replica)
765
+ end
766
+
767
+ let(:other) do
768
+ described_class.new(address, replica.merge(
769
+ 'connectionId' => 12
770
+ ))
771
+ end
772
+
773
+ it 'returns true' do
774
+ expect(description == other).to be(true)
775
+ end
776
+ end
777
+
760
778
  context 'when the configs do not match' do
761
779
 
762
780
  let(:description) do
@@ -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