mongo 2.1.0.beta → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (342) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.md +10 -3
  4. data/Rakefile +1 -7
  5. data/lib/mongo/address/ipv4.rb +6 -1
  6. data/lib/mongo/address/unix.rb +2 -2
  7. data/lib/mongo/address.rb +32 -10
  8. data/lib/mongo/auth/cr/conversation.rb +1 -1
  9. data/lib/mongo/auth/ldap/conversation.rb +7 -3
  10. data/lib/mongo/auth/scram/conversation.rb +9 -3
  11. data/lib/mongo/auth/user/view.rb +23 -2
  12. data/lib/mongo/auth/x509/conversation.rb +1 -1
  13. data/lib/mongo/bulk_write/combineable.rb +51 -0
  14. data/lib/mongo/bulk_write/ordered_combiner.rb +55 -0
  15. data/lib/mongo/bulk_write/result.rb +61 -8
  16. data/lib/mongo/bulk_write/result_combiner.rb +117 -0
  17. data/lib/mongo/bulk_write/transformable.rb +132 -0
  18. data/lib/mongo/bulk_write/unordered_combiner.rb +52 -0
  19. data/lib/mongo/bulk_write/validatable.rb +62 -0
  20. data/lib/mongo/bulk_write.rb +164 -23
  21. data/lib/mongo/client.rb +75 -18
  22. data/lib/mongo/cluster/topology/replica_set.rb +8 -6
  23. data/lib/mongo/cluster/topology/unknown.rb +5 -2
  24. data/lib/mongo/cluster.rb +85 -5
  25. data/lib/mongo/collection/view/aggregation.rb +19 -45
  26. data/lib/mongo/collection/view/builder/aggregation.rb +98 -0
  27. data/lib/mongo/collection/view/builder/find_command.rb +111 -0
  28. data/lib/mongo/collection/view/builder/flags.rb +62 -0
  29. data/lib/mongo/collection/view/builder/map_reduce.rb +134 -0
  30. data/lib/mongo/collection/view/builder/modifiers.rb +80 -0
  31. data/lib/mongo/collection/view/builder/op_query.rb +83 -0
  32. data/lib/mongo/collection/view/builder.rb +20 -0
  33. data/lib/mongo/collection/view/explainable.rb +15 -0
  34. data/lib/mongo/collection/view/immutable.rb +4 -11
  35. data/lib/mongo/collection/view/iterable.rb +40 -5
  36. data/lib/mongo/collection/view/map_reduce.rb +67 -37
  37. data/lib/mongo/collection/view/readable.rb +114 -100
  38. data/lib/mongo/collection/view/writable.rb +46 -22
  39. data/lib/mongo/collection/view.rb +25 -22
  40. data/lib/mongo/collection.rb +130 -12
  41. data/lib/mongo/cursor/builder/get_more_command.rb +71 -0
  42. data/lib/mongo/cursor/builder/kill_cursors_command.rb +62 -0
  43. data/lib/mongo/cursor/builder/op_get_more.rb +61 -0
  44. data/lib/mongo/cursor/builder/op_kill_cursors.rb +56 -0
  45. data/lib/mongo/cursor/builder.rb +18 -0
  46. data/lib/mongo/cursor.rb +76 -21
  47. data/lib/mongo/database/view.rb +11 -6
  48. data/lib/mongo/database.rb +16 -6
  49. data/lib/mongo/dbref.rb +9 -9
  50. data/lib/mongo/{bulk_write/unordered_bulk_write.rb → error/closed_stream.rb} +12 -21
  51. data/lib/mongo/{bulk_write/ordered_bulk_write.rb → error/extra_file_chunk.rb} +13 -27
  52. data/lib/mongo/error/file_not_found.rb +37 -0
  53. data/lib/mongo/error/invalid_file.rb +2 -2
  54. data/lib/mongo/error/invalid_file_revision.rb +37 -0
  55. data/lib/mongo/error/invalid_uri.rb +5 -4
  56. data/lib/mongo/error/invalid_write_concern.rb +35 -0
  57. data/lib/mongo/error/missing_file_chunk.rb +38 -0
  58. data/lib/mongo/error/operation_failure.rb +33 -2
  59. data/lib/mongo/error/unchangeable_collection_option.rb +38 -0
  60. data/lib/mongo/error/unexpected_chunk_length.rb +39 -0
  61. data/lib/mongo/error.rb +8 -0
  62. data/lib/mongo/grid/file/chunk.rb +9 -9
  63. data/lib/mongo/grid/file/{metadata.rb → info.rb} +41 -39
  64. data/lib/mongo/grid/file.rb +12 -9
  65. data/lib/mongo/grid/fs_bucket.rb +448 -0
  66. data/lib/mongo/grid/stream/read.rb +208 -0
  67. data/lib/mongo/grid/stream/write.rb +187 -0
  68. data/lib/mongo/grid/stream.rb +64 -0
  69. data/lib/mongo/grid.rb +2 -1
  70. data/lib/mongo/index/view.rb +7 -4
  71. data/lib/mongo/index.rb +5 -0
  72. data/lib/mongo/loggable.rb +34 -57
  73. data/lib/mongo/logger.rb +16 -78
  74. data/lib/mongo/monitoring/command_log_subscriber.rb +38 -14
  75. data/lib/mongo/monitoring/event/command_started.rb +2 -1
  76. data/lib/mongo/monitoring/event/command_succeeded.rb +24 -2
  77. data/lib/mongo/monitoring/event/secure.rb +58 -0
  78. data/lib/mongo/monitoring/event.rb +1 -0
  79. data/lib/mongo/monitoring/publishable.rb +22 -12
  80. data/lib/mongo/monitoring.rb +1 -5
  81. data/lib/mongo/operation/commands/aggregate/result.rb +89 -0
  82. data/lib/mongo/operation/commands/aggregate.rb +64 -0
  83. data/lib/mongo/operation/commands/collections_info/result.rb +41 -0
  84. data/lib/mongo/operation/{read → commands}/collections_info.rb +5 -3
  85. data/lib/mongo/operation/commands/command.rb +47 -0
  86. data/lib/mongo/operation/commands/find/result.rb +62 -0
  87. data/lib/mongo/operation/commands/find.rb +27 -0
  88. data/lib/mongo/operation/commands/get_more/result.rb +62 -0
  89. data/lib/mongo/operation/commands/get_more.rb +27 -0
  90. data/lib/mongo/operation/{read → commands}/indexes.rb +9 -6
  91. data/lib/mongo/operation/{list_collections → commands/list_collections}/result.rb +1 -21
  92. data/lib/mongo/operation/{read → commands}/list_collections.rb +4 -32
  93. data/lib/mongo/operation/{list_indexes → commands/list_indexes}/result.rb +1 -21
  94. data/lib/mongo/operation/{read → commands}/list_indexes.rb +3 -33
  95. data/lib/mongo/operation/commands/map_reduce/result.rb +119 -0
  96. data/lib/mongo/operation/commands/map_reduce.rb +49 -0
  97. data/lib/mongo/operation/commands/parallel_scan/result.rb +64 -0
  98. data/lib/mongo/operation/commands/parallel_scan.rb +52 -0
  99. data/lib/mongo/operation/commands/user_query.rb +71 -0
  100. data/lib/mongo/operation/commands/users_info/result.rb +38 -0
  101. data/lib/mongo/operation/commands/users_info.rb +48 -0
  102. data/lib/mongo/operation/commands.rb +26 -0
  103. data/lib/mongo/operation/executable.rb +4 -68
  104. data/lib/mongo/operation/kill_cursors.rb +3 -3
  105. data/lib/mongo/operation/object_id_generator.rb +36 -0
  106. data/lib/mongo/operation/read/get_more.rb +2 -22
  107. data/lib/mongo/operation/read/query/result.rb +40 -0
  108. data/lib/mongo/operation/read/query.rb +4 -21
  109. data/lib/mongo/operation/read.rb +0 -4
  110. data/lib/mongo/operation/{read_preferrable.rb → read_preference.rb} +3 -2
  111. data/lib/mongo/operation/result.rb +43 -1
  112. data/lib/mongo/operation/specifiable.rb +59 -1
  113. data/lib/mongo/operation/write/bulk/bulkable.rb +83 -0
  114. data/lib/mongo/operation/write/bulk/delete/result.rb +67 -0
  115. data/lib/mongo/operation/write/bulk/delete.rb +71 -0
  116. data/lib/mongo/operation/write/bulk/insert/result.rb +129 -0
  117. data/lib/mongo/operation/write/bulk/insert.rb +96 -0
  118. data/lib/mongo/operation/write/bulk/legacy_mergable.rb +87 -0
  119. data/lib/mongo/operation/write/bulk/mergable.rb +71 -0
  120. data/lib/mongo/operation/write/bulk/update/result.rb +174 -0
  121. data/lib/mongo/operation/write/bulk/update.rb +81 -0
  122. data/lib/mongo/operation/write/bulk.rb +6 -3
  123. data/lib/mongo/operation/write/command/create_index.rb +0 -1
  124. data/lib/mongo/operation/write/command/create_user.rb +0 -1
  125. data/lib/mongo/operation/write/command/delete.rb +3 -3
  126. data/lib/mongo/operation/write/command/drop_index.rb +0 -1
  127. data/lib/mongo/operation/write/command/insert.rb +4 -3
  128. data/lib/mongo/operation/write/command/remove_user.rb +0 -1
  129. data/lib/mongo/operation/write/command/update.rb +6 -4
  130. data/lib/mongo/operation/write/command/update_user.rb +0 -1
  131. data/lib/mongo/operation/write/command/writable.rb +13 -18
  132. data/lib/mongo/operation/write/create_index.rb +4 -27
  133. data/lib/mongo/operation/write/create_user.rb +4 -30
  134. data/lib/mongo/operation/write/delete.rb +6 -29
  135. data/lib/mongo/operation/write/drop_index.rb +3 -3
  136. data/lib/mongo/operation/write/gle.rb +49 -0
  137. data/lib/mongo/operation/write/idable.rb +24 -2
  138. data/lib/mongo/operation/write/insert.rb +2 -24
  139. data/lib/mongo/operation/write/remove_user.rb +4 -27
  140. data/lib/mongo/operation/write/update.rb +13 -36
  141. data/lib/mongo/operation/write/update_user.rb +4 -30
  142. data/lib/mongo/operation/write/write_command_enabled.rb +53 -0
  143. data/lib/mongo/operation/write.rb +2 -0
  144. data/lib/mongo/operation.rb +33 -5
  145. data/lib/mongo/options/mapper.rb +26 -2
  146. data/lib/mongo/options/redacted.rb +156 -0
  147. data/lib/mongo/options.rb +1 -0
  148. data/lib/mongo/protocol/bit_vector.rb +11 -9
  149. data/lib/mongo/protocol/delete.rb +78 -3
  150. data/lib/mongo/protocol/get_more.rb +59 -2
  151. data/lib/mongo/protocol/insert.rb +73 -1
  152. data/lib/mongo/protocol/kill_cursors.rb +66 -4
  153. data/lib/mongo/protocol/message.rb +44 -20
  154. data/lib/mongo/protocol/query.rb +153 -65
  155. data/lib/mongo/protocol/reply.rb +92 -1
  156. data/lib/mongo/protocol/serializers.rb +49 -40
  157. data/lib/mongo/protocol/update.rb +93 -1
  158. data/lib/mongo/retryable.rb +101 -0
  159. data/lib/mongo/server/connectable.rb +28 -8
  160. data/lib/mongo/server/connection.rb +52 -10
  161. data/lib/mongo/server/connection_pool/queue.rb +15 -0
  162. data/lib/mongo/server/connection_pool.rb +12 -15
  163. data/lib/mongo/server/description/features.rb +4 -2
  164. data/lib/mongo/server/description.rb +39 -3
  165. data/lib/mongo/server/monitor/connection.rb +49 -28
  166. data/lib/mongo/server/monitor.rb +3 -14
  167. data/lib/mongo/server.rb +31 -4
  168. data/lib/mongo/server_selector/selectable.rb +58 -32
  169. data/lib/mongo/server_selector.rb +19 -10
  170. data/lib/mongo/socket/ssl.rb +4 -1
  171. data/lib/mongo/socket/tcp.rb +2 -2
  172. data/lib/mongo/socket/unix.rb +5 -8
  173. data/lib/mongo/socket.rb +11 -4
  174. data/lib/mongo/uri.rb +245 -139
  175. data/lib/mongo/version.rb +1 -1
  176. data/lib/mongo/write_concern.rb +21 -6
  177. data/lib/mongo.rb +4 -4
  178. data/mongo.gemspec +1 -2
  179. data/spec/mongo/address/unix_spec.rb +1 -1
  180. data/spec/mongo/address_spec.rb +25 -0
  181. data/spec/mongo/auth/ldap/conversation_spec.rb +43 -0
  182. data/spec/mongo/auth/user/view_spec.rb +26 -1
  183. data/spec/mongo/bulk_write/ordered_combiner_spec.rb +284 -0
  184. data/spec/mongo/bulk_write/unordered_combiner_spec.rb +239 -0
  185. data/spec/mongo/bulk_write_spec.rb +385 -161
  186. data/spec/mongo/client_spec.rb +193 -23
  187. data/spec/mongo/cluster/topology/replica_set_spec.rb +2 -0
  188. data/spec/mongo/collection/view/aggregation_spec.rb +65 -0
  189. data/spec/mongo/collection/view/builder/find_command_spec.rb +167 -0
  190. data/spec/mongo/collection/view/builder/flags_spec.rb +106 -0
  191. data/spec/mongo/collection/view/builder/modifiers_spec.rb +210 -0
  192. data/spec/mongo/collection/view/builder/op_query_spec.rb +154 -0
  193. data/spec/mongo/collection/view/explainable_spec.rb +1 -2
  194. data/spec/mongo/collection/view/immutable_spec.rb +54 -0
  195. data/spec/mongo/collection/view/map_reduce_spec.rb +104 -9
  196. data/spec/mongo/collection/view/readable_spec.rb +109 -112
  197. data/spec/mongo/collection/view_spec.rb +119 -487
  198. data/spec/mongo/collection_spec.rb +1002 -33
  199. data/spec/mongo/command_monitoring_spec.rb +64 -0
  200. data/spec/mongo/connection_string_spec.rb +115 -0
  201. data/spec/mongo/cursor/builder/get_more_command_spec.rb +160 -0
  202. data/spec/mongo/cursor/builder/op_get_more_spec.rb +52 -0
  203. data/spec/mongo/cursor_spec.rb +10 -60
  204. data/spec/mongo/database_spec.rb +81 -12
  205. data/spec/mongo/dbref_spec.rb +4 -4
  206. data/spec/mongo/grid/file/chunk_spec.rb +6 -6
  207. data/spec/mongo/grid/file/{metadata_spec.rb → info_spec.rb} +29 -17
  208. data/spec/mongo/grid/file_spec.rb +8 -8
  209. data/spec/mongo/grid/fs_bucket_spec.rb +1020 -0
  210. data/spec/mongo/grid/stream/read_spec.rb +275 -0
  211. data/spec/mongo/grid/stream/write_spec.rb +440 -0
  212. data/spec/mongo/grid/stream_spec.rb +48 -0
  213. data/spec/mongo/gridfs_spec.rb +50 -0
  214. data/spec/mongo/index/view_spec.rb +41 -0
  215. data/spec/mongo/logger_spec.rb +0 -40
  216. data/spec/mongo/monitoring/command_log_subscriber_spec.rb +76 -0
  217. data/spec/mongo/monitoring/event/command_started_spec.rb +26 -0
  218. data/spec/mongo/monitoring/event/command_succeeded_spec.rb +26 -0
  219. data/spec/mongo/monitoring/event/secure_spec.rb +57 -0
  220. data/spec/mongo/operation/{aggregate → commands/aggregate}/result_spec.rb +1 -1
  221. data/spec/mongo/operation/commands/aggregate_spec.rb +69 -0
  222. data/spec/mongo/operation/{read → commands}/collections_info_spec.rb +1 -1
  223. data/spec/mongo/operation/{command_spec.rb → commands/command_spec.rb} +1 -19
  224. data/spec/mongo/operation/{read → commands}/indexes_spec.rb +1 -1
  225. data/spec/mongo/operation/{map_reduce_spec.rb → commands/map_reduce_spec.rb} +1 -19
  226. data/spec/mongo/operation/kill_cursors_spec.rb +1 -17
  227. data/spec/mongo/operation/read/get_more_spec.rb +0 -16
  228. data/spec/mongo/operation/read/query_spec.rb +19 -16
  229. data/spec/mongo/operation/{read_preferrable_spec.rb → read_preference_spec.rb} +11 -11
  230. data/spec/mongo/operation/result_spec.rb +19 -0
  231. data/spec/mongo/operation/write/bulk/{bulk_delete_spec.rb → delete_spec.rb} +17 -28
  232. data/spec/mongo/operation/write/bulk/{bulk_insert_spec.rb → insert_spec.rb} +1 -12
  233. data/spec/mongo/operation/write/bulk/{bulk_update_spec.rb → update_spec.rb} +7 -18
  234. data/spec/mongo/operation/write/command/delete_spec.rb +18 -9
  235. data/spec/mongo/operation/write/command/insert_spec.rb +18 -9
  236. data/spec/mongo/operation/write/command/update_spec.rb +18 -9
  237. data/spec/mongo/operation/write/delete_spec.rb +3 -3
  238. data/spec/mongo/operation/write/insert_spec.rb +0 -11
  239. data/spec/mongo/operation/write/update_spec.rb +6 -6
  240. data/spec/mongo/options/redacted_spec.rb +350 -0
  241. data/spec/mongo/protocol/delete_spec.rb +4 -4
  242. data/spec/mongo/protocol/get_more_spec.rb +4 -4
  243. data/spec/mongo/protocol/insert_spec.rb +3 -3
  244. data/spec/mongo/protocol/kill_cursors_spec.rb +8 -6
  245. data/spec/mongo/protocol/query_spec.rb +21 -7
  246. data/spec/mongo/protocol/update_spec.rb +5 -5
  247. data/spec/mongo/retryable_spec.rb +221 -0
  248. data/spec/mongo/server/connection_pool/queue_spec.rb +16 -0
  249. data/spec/mongo/server/connection_pool_spec.rb +42 -6
  250. data/spec/mongo/server/connection_spec.rb +86 -1
  251. data/spec/mongo/server/description/features_spec.rb +25 -0
  252. data/spec/mongo/server/description_spec.rb +42 -0
  253. data/spec/mongo/server/monitor_spec.rb +44 -0
  254. data/spec/mongo/server_discovery_and_monitoring_spec.rb +25 -59
  255. data/spec/mongo/server_selection_rtt_spec.rb +37 -57
  256. data/spec/mongo/server_selection_spec.rb +5 -3
  257. data/spec/mongo/server_selector/nearest_spec.rb +35 -27
  258. data/spec/mongo/server_selector/primary_preferred_spec.rb +32 -30
  259. data/spec/mongo/server_selector/primary_spec.rb +21 -14
  260. data/spec/mongo/server_selector/secondary_preferred_spec.rb +28 -26
  261. data/spec/mongo/server_selector/secondary_spec.rb +24 -22
  262. data/spec/mongo/server_selector_spec.rb +87 -24
  263. data/spec/mongo/server_spec.rb +78 -15
  264. data/spec/mongo/socket/ssl_spec.rb +101 -57
  265. data/spec/mongo/socket/unix_spec.rb +52 -0
  266. data/spec/mongo/uri_spec.rb +271 -59
  267. data/spec/mongo/write_concern_spec.rb +126 -0
  268. data/spec/spec_helper.rb +29 -23
  269. data/spec/support/authorization.rb +4 -5
  270. data/spec/support/command_monitoring/bulkWrite.yml +73 -0
  271. data/spec/support/command_monitoring/command.yml +42 -0
  272. data/spec/support/command_monitoring/deleteMany.yml +55 -0
  273. data/spec/support/command_monitoring/deleteOne.yml +55 -0
  274. data/spec/support/command_monitoring/find.yml +268 -0
  275. data/spec/support/command_monitoring/insertMany.yml +81 -0
  276. data/spec/support/command_monitoring/insertOne.yml +51 -0
  277. data/spec/support/command_monitoring/updateMany.yml +67 -0
  278. data/spec/support/command_monitoring/updateOne.yml +95 -0
  279. data/spec/support/command_monitoring.rb +373 -0
  280. data/spec/support/connection_string.rb +228 -0
  281. data/spec/support/connection_string_tests/invalid-uris.yml +193 -0
  282. data/spec/support/connection_string_tests/valid-auth.yml +256 -0
  283. data/spec/support/connection_string_tests/valid-host_identifiers.yml +121 -0
  284. data/spec/support/connection_string_tests/valid-options.yml +30 -0
  285. data/spec/support/connection_string_tests/valid-unix_socket-absolute.yml +197 -0
  286. data/spec/support/connection_string_tests/valid-unix_socket-relative.yml +213 -0
  287. data/spec/support/connection_string_tests/valid-warnings.yml +55 -0
  288. data/spec/support/crud/read.rb +14 -10
  289. data/spec/support/crud/write.rb +36 -9
  290. data/spec/support/crud.rb +10 -2
  291. data/spec/support/gridfs.rb +637 -0
  292. data/spec/support/gridfs_tests/delete.yml +157 -0
  293. data/spec/support/gridfs_tests/download.yml +210 -0
  294. data/spec/support/gridfs_tests/download_by_name.yml +113 -0
  295. data/spec/support/gridfs_tests/upload.yml +158 -0
  296. data/spec/support/matchers.rb +2 -2
  297. data/spec/support/sdam/rs/equal_electionids.yml +1 -2
  298. data/spec/support/sdam/rs/new_primary_new_electionid.yml +0 -3
  299. data/spec/support/sdam/rs/primary_mismatched_me.yml +37 -0
  300. data/spec/support/sdam/rs/primary_to_no_primary_mismatched_me.yml +75 -0
  301. data/spec/support/sdam/rs/rsother_discovered.yml +24 -3
  302. data/spec/support/sdam/rs/secondary_mismatched_me.yml +37 -0
  303. data/spec/support/sdam/rs/stepdown_change_set_name.yml +59 -0
  304. data/spec/support/sdam/single/direct_connection_rsarbiter.yml +1 -1
  305. data/spec/support/sdam/single/direct_connection_rsprimary.yml +1 -1
  306. data/spec/support/sdam/single/direct_connection_rssecondary.yml +1 -1
  307. data/spec/support/sdam/single/direct_connection_slave.yml +1 -1
  308. data/spec/support/sdam/single/direct_connection_standalone.yml +1 -1
  309. data/spec/support/sdam/single/not_ok_response.yml +0 -1
  310. data/spec/support/server_discovery_and_monitoring.rb +3 -1
  311. data/spec/support/server_selection.rb +3 -1
  312. data/spec/support/shared/bulk_write.rb +192 -0
  313. data/spec/support/shared/protocol.rb +5 -5
  314. data/spec/support/shared/server_selector.rb +78 -13
  315. data/spec/support/travis.rb +1 -1
  316. data.tar.gz.sig +0 -0
  317. metadata +211 -72
  318. metadata.gz.sig +0 -0
  319. data/lib/mongo/bulk_write/bulk_writable.rb +0 -252
  320. data/lib/mongo/bulk_write/deletable.rb +0 -57
  321. data/lib/mongo/bulk_write/insertable.rb +0 -49
  322. data/lib/mongo/bulk_write/replacable.rb +0 -58
  323. data/lib/mongo/bulk_write/updatable.rb +0 -69
  324. data/lib/mongo/grid/fs.rb +0 -146
  325. data/lib/mongo/operation/aggregate/result.rb +0 -103
  326. data/lib/mongo/operation/aggregate.rb +0 -108
  327. data/lib/mongo/operation/command.rb +0 -61
  328. data/lib/mongo/operation/map_reduce/result.rb +0 -122
  329. data/lib/mongo/operation/map_reduce.rb +0 -95
  330. data/lib/mongo/operation/parallel_scan/result.rb +0 -72
  331. data/lib/mongo/operation/parallel_scan.rb +0 -76
  332. data/lib/mongo/operation/write/bulk/bulk_delete/result.rb +0 -75
  333. data/lib/mongo/operation/write/bulk/bulk_delete.rb +0 -145
  334. data/lib/mongo/operation/write/bulk/bulk_insert/result.rb +0 -130
  335. data/lib/mongo/operation/write/bulk/bulk_insert.rb +0 -132
  336. data/lib/mongo/operation/write/bulk/bulk_mergable.rb +0 -67
  337. data/lib/mongo/operation/write/bulk/bulk_update/result.rb +0 -174
  338. data/lib/mongo/operation/write/bulk/bulk_update.rb +0 -154
  339. data/lib/mongo/operation/write/bulk/legacy_bulk_mergable.rb +0 -83
  340. data/spec/mongo/grid/fs_spec.rb +0 -160
  341. data/spec/mongo/loggable_spec.rb +0 -63
  342. data/spec/mongo/operation/aggregate_spec.rb +0 -127
@@ -0,0 +1,268 @@
1
+ data:
2
+ - { _id: 1, x: 11 }
3
+ - { _id: 2, x: 22 }
4
+ - { _id: 3, x: 33 }
5
+ - { _id: 4, x: 44 }
6
+ - { _id: 5, x: 55 }
7
+
8
+ collection_name: &collection_name "test"
9
+ database_name: &database_name "ruby-driver"
10
+ namespace: &namespace "ruby-driver.test"
11
+
12
+ tests:
13
+ -
14
+ description: "A successful find event with no options"
15
+ operation:
16
+ name: "find"
17
+ arguments:
18
+ filter: { _id: 1 }
19
+ expectations:
20
+ -
21
+ command_started_event:
22
+ command:
23
+ find: *collection_name
24
+ filter: { _id: 1 }
25
+ command_name: "find"
26
+ database_name: *database_name
27
+ -
28
+ command_succeeded_event:
29
+ reply:
30
+ ok: 1.0
31
+ cursor:
32
+ id: { $numberLong: "0" }
33
+ ns: *namespace
34
+ firstBatch:
35
+ - { _id: 1, x: 11 }
36
+ command_name: "find"
37
+ -
38
+ description: "A successful find event with options"
39
+ operation:
40
+ name: "find"
41
+ read_preference: { mode: "primaryPreferred" }
42
+ arguments:
43
+ filter: { _id: { $gt: 1 } }
44
+ sort: { _id: 1 }
45
+ skip: 2
46
+ modifiers:
47
+ $comment: "test"
48
+ $hint: { _id: 1 }
49
+ $max: { _id: 6 }
50
+ $maxScan: 5000
51
+ $maxTimeMS: 6000
52
+ $min: { _id: 0 }
53
+ $returnKey: false
54
+ $showDiskLoc: false
55
+ $snapshot: false
56
+ expectations:
57
+ -
58
+ command_started_event:
59
+ command:
60
+ find: *collection_name
61
+ filter: { _id: { $gt: 1 } }
62
+ sort: { _id: 1 }
63
+ skip: 2
64
+ comment: "test"
65
+ hint: { _id: 1 }
66
+ max: { _id: 6 }
67
+ maxScan: 5000
68
+ maxTimeMS: 6000
69
+ min: { _id: 0 }
70
+ returnKey: false
71
+ showRecordId: false
72
+ snapshot: false
73
+ command_name: "find"
74
+ database_name: *database_name
75
+ -
76
+ command_succeeded_event:
77
+ reply:
78
+ ok: 1.0
79
+ cursor:
80
+ id: { $numberLong: "0" }
81
+ ns: *namespace
82
+ firstBatch:
83
+ - { _id: 4, x: 44 }
84
+ - { _id: 5, x: 55 }
85
+ command_name: "find"
86
+ -
87
+ description: "A successful find event with a getmore"
88
+ operation:
89
+ name: "find"
90
+ arguments:
91
+ filter: { _id: { $gte: 1 }}
92
+ sort: { _id: 1 }
93
+ batchSize: 3
94
+ expectations:
95
+ -
96
+ command_started_event:
97
+ command:
98
+ find: *collection_name
99
+ filter: { _id: { $gte : 1 }}
100
+ sort: { _id: 1 }
101
+ batchSize: 3
102
+ command_name: "find"
103
+ database_name: *database_name
104
+ -
105
+ command_succeeded_event:
106
+ reply:
107
+ ok: 1.0
108
+ cursor:
109
+ id: { $numberLong: "42" }
110
+ ns: *namespace
111
+ firstBatch:
112
+ - { _id: 1, x: 11 }
113
+ - { _id: 2, x: 22 }
114
+ - { _id: 3, x: 33 }
115
+ command_name: "find"
116
+ -
117
+ command_started_event:
118
+ command:
119
+ getMore: { $numberLong: "42" }
120
+ collection: *collection_name
121
+ batchSize: 3
122
+ command_name: "getMore"
123
+ database_name: *database_name
124
+ -
125
+ command_succeeded_event:
126
+ reply:
127
+ ok: 1.0
128
+ cursor:
129
+ id: { $numberLong: "0" }
130
+ ns: *namespace
131
+ nextBatch:
132
+ - { _id: 4, x: 44 }
133
+ - { _id: 5, x: 55 }
134
+ command_name: "getMore"
135
+ -
136
+ description: "A successful find event with a getmore and killcursors"
137
+ ignore_if_server_version_greater_than: "3.0"
138
+ operation:
139
+ name: "find"
140
+ arguments:
141
+ filter: { _id: { $gte: 1 }}
142
+ sort: { _id: 1 }
143
+ batchSize: 3
144
+ limit: 4
145
+ expectations:
146
+ -
147
+ command_started_event:
148
+ command:
149
+ find: *collection_name
150
+ filter: { _id: { $gte : 1 }}
151
+ sort: { _id: 1 }
152
+ batchSize: 3
153
+ limit: 4
154
+ command_name: "find"
155
+ database_name: *database_name
156
+ -
157
+ command_succeeded_event:
158
+ reply:
159
+ ok: 1.0
160
+ cursor:
161
+ id: { $numberLong: "42" }
162
+ ns: *namespace
163
+ firstBatch:
164
+ - { _id: 1, x: 11 }
165
+ - { _id: 2, x: 22 }
166
+ - { _id: 3, x: 33 }
167
+ command_name: "find"
168
+ -
169
+ command_started_event:
170
+ command:
171
+ getMore: { $numberLong: "42" }
172
+ collection: *collection_name
173
+ batchSize: 1
174
+ command_name: "getMore"
175
+ database_name: *database_name
176
+ -
177
+ command_succeeded_event:
178
+ reply:
179
+ ok: 1.0
180
+ cursor:
181
+ id: { $numberLong: "42" }
182
+ ns: *namespace
183
+ nextBatch:
184
+ - { _id: 4, x: 44 }
185
+ command_name: "getMore"
186
+ -
187
+ command_started_event:
188
+ command:
189
+ killCursors: *collection_name
190
+ cursors:
191
+ - { $numberLong: "42" }
192
+ command_name: "killCursors"
193
+ database_name: *database_name
194
+ -
195
+ command_succeeded_event:
196
+ reply:
197
+ ok: 1.0
198
+ cursorsUnknown:
199
+ - { $numberLong: "42" }
200
+ command_name: "killCursors"
201
+ -
202
+ description: "A successful find event with a getmore and the server kills the cursor"
203
+ ignore_if_server_version_less_than: "3.1"
204
+ operation:
205
+ name: "find"
206
+ arguments:
207
+ filter: { _id: { $gte: 1 }}
208
+ sort: { _id: 1 }
209
+ batchSize: 3
210
+ limit: 4
211
+ expectations:
212
+ -
213
+ command_started_event:
214
+ command:
215
+ find: *collection_name
216
+ filter: { _id: { $gte : 1 }}
217
+ sort: { _id: 1 }
218
+ batchSize: 3
219
+ limit: 4
220
+ command_name: "find"
221
+ database_name: *database_name
222
+ -
223
+ command_succeeded_event:
224
+ reply:
225
+ ok: 1.0
226
+ cursor:
227
+ id: { $numberLong: "42" }
228
+ ns: *namespace
229
+ firstBatch:
230
+ - { _id: 1, x: 11 }
231
+ - { _id: 2, x: 22 }
232
+ - { _id: 3, x: 33 }
233
+ command_name: "find"
234
+ -
235
+ command_started_event:
236
+ command:
237
+ getMore: { $numberLong: "42" }
238
+ collection: *collection_name
239
+ batchSize: 3
240
+ command_name: "getMore"
241
+ database_name: *database_name
242
+ -
243
+ command_succeeded_event:
244
+ reply:
245
+ ok: 1.0
246
+ cursor:
247
+ id: { $numberLong: "0" }
248
+ ns: *namespace
249
+ nextBatch:
250
+ - { _id: 4, x: 44 }
251
+ command_name: "getMore"
252
+ -
253
+ description: "A failed find event"
254
+ operation:
255
+ name: "find"
256
+ arguments:
257
+ filter: { $or: true }
258
+ expectations:
259
+ -
260
+ command_started_event:
261
+ command:
262
+ find: *collection_name
263
+ filter: { $or: true }
264
+ command_name: "find"
265
+ database_name: *database_name
266
+ -
267
+ command_failed_event:
268
+ command_name: "find"
@@ -0,0 +1,81 @@
1
+ data:
2
+ - { _id: 1, x: 11 }
3
+
4
+ collection_name: &collection_name "test"
5
+ database_name: &database_name "ruby-driver"
6
+
7
+ tests:
8
+ -
9
+ description: "A successful insert many"
10
+ operation:
11
+ name: "insertMany"
12
+ arguments:
13
+ documents:
14
+ - { _id: 2, x: 22 }
15
+ - { _id: 3, x: 33 }
16
+ expectations:
17
+ -
18
+ command_started_event:
19
+ command:
20
+ insert: *collection_name
21
+ documents:
22
+ - { _id: 2, x: 22 }
23
+ - { _id: 3, x: 33 }
24
+ ordered: true
25
+ command_name: "insert"
26
+ database_name: *database_name
27
+ -
28
+ command_succeeded_event:
29
+ reply: { ok: 1.0, n: 2 }
30
+ command_name: "insert"
31
+ -
32
+ description: "A successful insert many command with write errors"
33
+ operation:
34
+ name: "insertMany"
35
+ arguments:
36
+ documents:
37
+ - { _id: 1, x: 11 }
38
+ - { _id: 2, x: 22 }
39
+ expectations:
40
+ -
41
+ command_started_event:
42
+ command:
43
+ insert: *collection_name
44
+ documents:
45
+ - { _id: 1, x: 11 }
46
+ - { _id: 2, x: 22 }
47
+ ordered: true
48
+ command_name: "insert"
49
+ database_name: *database_name
50
+ -
51
+ command_succeeded_event:
52
+ reply:
53
+ ok: 1.0
54
+ n: 0
55
+ writeErrors:
56
+ - { index: 0, code: 42, errmsg: "" }
57
+ command_name: "insert"
58
+ -
59
+ description: "A successful unordered insert many"
60
+ operation:
61
+ name: "insertMany"
62
+ arguments:
63
+ documents:
64
+ - { _id: 2, x: 22 }
65
+ - { _id: 3, x: 33 }
66
+ ordered: false
67
+ expectations:
68
+ -
69
+ command_started_event:
70
+ command:
71
+ insert: *collection_name
72
+ documents:
73
+ - { _id: 2, x: 22 }
74
+ - { _id: 3, x: 33 }
75
+ ordered: false
76
+ command_name: "insert"
77
+ database_name: *database_name
78
+ -
79
+ command_succeeded_event:
80
+ reply: { ok: 1.0, n: 2 }
81
+ command_name: "insert"
@@ -0,0 +1,51 @@
1
+ data:
2
+ - { _id: 1, x: 11 }
3
+
4
+ collection_name: &collection_name "test"
5
+ database_name: &database_name "ruby-driver"
6
+
7
+ tests:
8
+ -
9
+ description: "A successful insert one"
10
+ operation:
11
+ name: "insertOne"
12
+ arguments:
13
+ document: { _id: 2, x: 22 }
14
+ expectations:
15
+ -
16
+ command_started_event:
17
+ command:
18
+ insert: *collection_name
19
+ documents:
20
+ - { _id: 2, x: 22 }
21
+ ordered: true
22
+ command_name: "insert"
23
+ database_name: *database_name
24
+ -
25
+ command_succeeded_event:
26
+ reply: { ok: 1.0, n: 1 }
27
+ command_name: "insert"
28
+ -
29
+ description: "A successful insert one command with write errors"
30
+ operation:
31
+ name: "insertOne"
32
+ arguments:
33
+ document: { _id: 1, x: 11 }
34
+ expectations:
35
+ -
36
+ command_started_event:
37
+ command:
38
+ insert: *collection_name
39
+ documents:
40
+ - { _id: 1, x: 11 }
41
+ ordered: true
42
+ command_name: "insert"
43
+ database_name: *database_name
44
+ -
45
+ command_succeeded_event:
46
+ reply:
47
+ ok: 1.0
48
+ n: 0
49
+ writeErrors:
50
+ - { index: 0, code: 42, errmsg: "" }
51
+ command_name: "insert"
@@ -0,0 +1,67 @@
1
+ data:
2
+ - { _id: 1, x: 11 }
3
+ - { _id: 2, x: 22 }
4
+ - { _id: 3, x: 33 }
5
+
6
+ collection_name: &collection_name "test"
7
+ database_name: &database_name "ruby-driver"
8
+
9
+ tests:
10
+ -
11
+ description: "A successful update many"
12
+ operation:
13
+ name: "updateMany"
14
+ arguments:
15
+ filter:
16
+ _id: { $gt: 1 }
17
+ update:
18
+ $inc: { x: 1 }
19
+ expectations:
20
+ -
21
+ command_started_event:
22
+ command:
23
+ update: *collection_name
24
+ ordered: true
25
+ updates:
26
+ -
27
+ q: { _id: { $gt: 1 }}
28
+ u: { $inc: { x: 1 }}
29
+ multi: true
30
+ upsert: false
31
+ command_name: "update"
32
+ database_name: *database_name
33
+ -
34
+ command_succeeded_event:
35
+ reply: { ok: 1.0, n: 2 }
36
+ command_name: "update"
37
+ -
38
+ description: "A successful update many command with write errors"
39
+ operation:
40
+ name: "updateMany"
41
+ arguments:
42
+ filter:
43
+ _id: { $gt: 1 }
44
+ update:
45
+ $nothing: { x: 1 }
46
+ expectations:
47
+ -
48
+ command_started_event:
49
+ command:
50
+ update: *collection_name
51
+ ordered: true
52
+ updates:
53
+ -
54
+ q: { _id: { $gt: 1 }}
55
+ u: { $nothing: { x: 1 }}
56
+ multi: true
57
+ upsert: false
58
+ command_name: "update"
59
+ database_name: *database_name
60
+ -
61
+ command_succeeded_event:
62
+ reply:
63
+ ok: 1.0
64
+ n: 0
65
+ writeErrors:
66
+ - { index: 0, code: 42, errmsg: "" }
67
+ command_name: "update"
@@ -0,0 +1,95 @@
1
+ data:
2
+ - { _id: 1, x: 11 }
3
+ - { _id: 2, x: 22 }
4
+ - { _id: 3, x: 33 }
5
+
6
+ collection_name: &collection_name "test"
7
+ database_name: &database_name "ruby-driver"
8
+
9
+ tests:
10
+ -
11
+ description: "A successful update one"
12
+ operation:
13
+ name: "updateOne"
14
+ arguments:
15
+ filter:
16
+ _id: { $gt: 1 }
17
+ update:
18
+ $inc: { x: 1 }
19
+ expectations:
20
+ -
21
+ command_started_event:
22
+ command:
23
+ update: *collection_name
24
+ ordered: true
25
+ updates:
26
+ -
27
+ q: { _id: { $gt: 1 }}
28
+ u: { $inc: { x: 1 }}
29
+ multi: false
30
+ upsert: false
31
+ command_name: "update"
32
+ database_name: *database_name
33
+ -
34
+ command_succeeded_event:
35
+ reply: { ok: 1.0, n: 1 }
36
+ command_name: "update"
37
+ -
38
+ description: "A successful update one with upsert when the upserted id is not an object id"
39
+ operation:
40
+ name: "updateOne"
41
+ arguments:
42
+ filter:
43
+ _id: 4
44
+ update:
45
+ $inc: { x: 1 }
46
+ upsert: true
47
+ expectations:
48
+ -
49
+ command_started_event:
50
+ command:
51
+ update: *collection_name
52
+ ordered: true
53
+ updates:
54
+ -
55
+ q: { _id: 4 }
56
+ u: { $inc: { x: 1 } }
57
+ multi: false
58
+ upsert: true
59
+ command_name: "update"
60
+ database_name: *database_name
61
+ -
62
+ command_succeeded_event:
63
+ reply: { ok: 1.0, n: 1, upserted: [{ index: 0, _id: 4 }] }
64
+ command_name: "update"
65
+ -
66
+ description: "A successful update one command with write errors"
67
+ operation:
68
+ name: "updateOne"
69
+ arguments:
70
+ filter:
71
+ _id: { $gt: 1 }
72
+ update:
73
+ $nothing: { x: 1 }
74
+ expectations:
75
+ -
76
+ command_started_event:
77
+ command:
78
+ update: *collection_name
79
+ ordered: true
80
+ updates:
81
+ -
82
+ q: { _id: { $gt: 1 }}
83
+ u: { $nothing: { x: 1 }}
84
+ multi: false
85
+ upsert: false
86
+ command_name: "update"
87
+ database_name: *database_name
88
+ -
89
+ command_succeeded_event:
90
+ reply:
91
+ ok: 1.0
92
+ n: 0
93
+ writeErrors:
94
+ - { index: 0, code: 42, errmsg: "" }
95
+ command_name: "update"