mongoid 7.3.4 → 7.4.1

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 (899) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +17 -17
  4. data/README.md +3 -3
  5. data/lib/config/locales/en.yml +21 -20
  6. data/lib/mongoid/association/accessors.rb +0 -27
  7. data/lib/mongoid/association/bindable.rb +0 -21
  8. data/lib/mongoid/association/builders.rb +0 -9
  9. data/lib/mongoid/association/constrainable.rb +0 -3
  10. data/lib/mongoid/association/depending.rb +0 -7
  11. data/lib/mongoid/association/eager_loadable.rb +0 -3
  12. data/lib/mongoid/association/embedded/batchable.rb +29 -42
  13. data/lib/mongoid/association/embedded/cyclic.rb +2 -11
  14. data/lib/mongoid/association/embedded/embedded_in/binding.rb +0 -7
  15. data/lib/mongoid/association/embedded/embedded_in/buildable.rb +0 -3
  16. data/lib/mongoid/association/embedded/embedded_in/proxy.rb +0 -13
  17. data/lib/mongoid/association/embedded/embedded_in.rb +0 -23
  18. data/lib/mongoid/association/embedded/embeds_many/binding.rb +0 -7
  19. data/lib/mongoid/association/embedded/embeds_many/buildable.rb +0 -3
  20. data/lib/mongoid/association/embedded/embeds_many/proxy.rb +31 -44
  21. data/lib/mongoid/association/embedded/embeds_many.rb +0 -31
  22. data/lib/mongoid/association/embedded/embeds_one/binding.rb +0 -7
  23. data/lib/mongoid/association/embedded/embeds_one/buildable.rb +0 -3
  24. data/lib/mongoid/association/embedded/embeds_one/proxy.rb +26 -14
  25. data/lib/mongoid/association/embedded/embeds_one.rb +0 -27
  26. data/lib/mongoid/association/embedded.rb +0 -1
  27. data/lib/mongoid/association/macros.rb +6 -5
  28. data/lib/mongoid/association/many.rb +0 -17
  29. data/lib/mongoid/association/marshalable.rb +0 -5
  30. data/lib/mongoid/association/nested/many.rb +0 -11
  31. data/lib/mongoid/association/nested/nested_buildable.rb +0 -9
  32. data/lib/mongoid/association/nested/one.rb +1 -16
  33. data/lib/mongoid/association/nested.rb +0 -3
  34. data/lib/mongoid/association/one.rb +1 -10
  35. data/lib/mongoid/association/options.rb +0 -33
  36. data/lib/mongoid/association/proxy.rb +0 -21
  37. data/lib/mongoid/association/referenced/auto_save.rb +0 -9
  38. data/lib/mongoid/association/referenced/belongs_to/binding.rb +0 -7
  39. data/lib/mongoid/association/referenced/belongs_to/buildable.rb +4 -5
  40. data/lib/mongoid/association/referenced/belongs_to/eager.rb +0 -1
  41. data/lib/mongoid/association/referenced/belongs_to/proxy.rb +0 -13
  42. data/lib/mongoid/association/referenced/belongs_to.rb +9 -34
  43. data/lib/mongoid/association/referenced/counter_cache.rb +2 -15
  44. data/lib/mongoid/association/referenced/eager.rb +3 -24
  45. data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +0 -5
  46. data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +0 -3
  47. data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +0 -1
  48. data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +12 -39
  49. data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +11 -38
  50. data/lib/mongoid/association/referenced/has_many/binding.rb +0 -5
  51. data/lib/mongoid/association/referenced/has_many/buildable.rb +0 -3
  52. data/lib/mongoid/association/referenced/has_many/eager.rb +0 -1
  53. data/lib/mongoid/association/referenced/has_many/enumerable.rb +8 -56
  54. data/lib/mongoid/association/referenced/has_many/proxy.rb +20 -63
  55. data/lib/mongoid/association/referenced/has_many.rb +12 -39
  56. data/lib/mongoid/association/referenced/has_one/binding.rb +0 -7
  57. data/lib/mongoid/association/referenced/has_one/buildable.rb +3 -4
  58. data/lib/mongoid/association/referenced/has_one/eager.rb +0 -1
  59. data/lib/mongoid/association/referenced/has_one/nested_builder.rb +0 -15
  60. data/lib/mongoid/association/referenced/has_one/proxy.rb +0 -9
  61. data/lib/mongoid/association/referenced/has_one.rb +9 -32
  62. data/lib/mongoid/association/referenced/syncable.rb +0 -17
  63. data/lib/mongoid/association/referenced.rb +0 -1
  64. data/lib/mongoid/association/reflections.rb +0 -1
  65. data/lib/mongoid/association/relatable.rb +0 -61
  66. data/lib/mongoid/association.rb +0 -17
  67. data/lib/mongoid/atomic/modifiers.rb +4 -51
  68. data/lib/mongoid/atomic/paths/embedded/many.rb +19 -5
  69. data/lib/mongoid/atomic/paths/embedded/one.rb +0 -5
  70. data/lib/mongoid/atomic/paths/embedded.rb +0 -3
  71. data/lib/mongoid/atomic/paths/root.rb +0 -5
  72. data/lib/mongoid/atomic/paths.rb +0 -1
  73. data/lib/mongoid/atomic.rb +1 -42
  74. data/lib/mongoid/attributes/dynamic.rb +0 -17
  75. data/lib/mongoid/attributes/nested.rb +0 -5
  76. data/lib/mongoid/attributes/processing.rb +1 -18
  77. data/lib/mongoid/attributes/projector.rb +0 -1
  78. data/lib/mongoid/attributes/readonly.rb +0 -5
  79. data/lib/mongoid/attributes.rb +0 -33
  80. data/lib/mongoid/cacheable.rb +1 -6
  81. data/lib/mongoid/changeable.rb +3 -59
  82. data/lib/mongoid/clients/factory.rb +0 -7
  83. data/lib/mongoid/clients/options.rb +0 -5
  84. data/lib/mongoid/clients/sessions.rb +0 -7
  85. data/lib/mongoid/clients/storage_options.rb +0 -7
  86. data/lib/mongoid/clients/validators/storage.rb +0 -9
  87. data/lib/mongoid/clients/validators.rb +0 -1
  88. data/lib/mongoid/clients.rb +0 -9
  89. data/lib/mongoid/composable.rb +0 -7
  90. data/lib/mongoid/config/environment.rb +21 -6
  91. data/lib/mongoid/config/options.rb +0 -11
  92. data/lib/mongoid/config/validators/client.rb +0 -17
  93. data/lib/mongoid/config/validators/option.rb +0 -3
  94. data/lib/mongoid/config/validators.rb +0 -1
  95. data/lib/mongoid/config.rb +37 -29
  96. data/lib/mongoid/contextual/aggregable/memory.rb +14 -11
  97. data/lib/mongoid/contextual/aggregable/mongo.rb +15 -20
  98. data/lib/mongoid/contextual/aggregable/none.rb +65 -0
  99. data/lib/mongoid/contextual/aggregable.rb +17 -0
  100. data/lib/mongoid/contextual/atomic.rb +0 -25
  101. data/lib/mongoid/contextual/command.rb +0 -5
  102. data/lib/mongoid/contextual/geo_near.rb +1 -34
  103. data/lib/mongoid/contextual/map_reduce.rb +0 -31
  104. data/lib/mongoid/contextual/memory.rb +4 -59
  105. data/lib/mongoid/contextual/mongo.rb +132 -78
  106. data/lib/mongoid/contextual/none.rb +39 -28
  107. data/lib/mongoid/contextual/queryable.rb +0 -3
  108. data/lib/mongoid/contextual.rb +0 -5
  109. data/lib/mongoid/copyable.rb +0 -5
  110. data/lib/mongoid/criteria/findable.rb +0 -13
  111. data/lib/mongoid/criteria/includable.rb +0 -9
  112. data/lib/mongoid/criteria/inspectable.rb +0 -3
  113. data/lib/mongoid/criteria/marshalable.rb +0 -5
  114. data/lib/mongoid/criteria/modifiable.rb +0 -19
  115. data/lib/mongoid/criteria/options.rb +0 -3
  116. data/lib/mongoid/criteria/permission.rb +0 -1
  117. data/lib/mongoid/criteria/queryable/aggregable.rb +0 -13
  118. data/lib/mongoid/criteria/queryable/expandable.rb +0 -1
  119. data/lib/mongoid/criteria/queryable/extensions/array.rb +1 -26
  120. data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +0 -3
  121. data/lib/mongoid/criteria/queryable/extensions/boolean.rb +0 -3
  122. data/lib/mongoid/criteria/queryable/extensions/date.rb +0 -7
  123. data/lib/mongoid/criteria/queryable/extensions/date_time.rb +0 -5
  124. data/lib/mongoid/criteria/queryable/extensions/hash.rb +0 -25
  125. data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +0 -13
  126. data/lib/mongoid/criteria/queryable/extensions/numeric.rb +0 -11
  127. data/lib/mongoid/criteria/queryable/extensions/object.rb +1 -28
  128. data/lib/mongoid/criteria/queryable/extensions/range.rb +38 -16
  129. data/lib/mongoid/criteria/queryable/extensions/regexp.rb +0 -9
  130. data/lib/mongoid/criteria/queryable/extensions/set.rb +0 -3
  131. data/lib/mongoid/criteria/queryable/extensions/string.rb +0 -17
  132. data/lib/mongoid/criteria/queryable/extensions/symbol.rb +0 -9
  133. data/lib/mongoid/criteria/queryable/extensions/time.rb +0 -7
  134. data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +0 -7
  135. data/lib/mongoid/criteria/queryable/extensions.rb +0 -1
  136. data/lib/mongoid/criteria/queryable/key.rb +1 -14
  137. data/lib/mongoid/criteria/queryable/macroable.rb +0 -3
  138. data/lib/mongoid/criteria/queryable/mergeable.rb +1 -30
  139. data/lib/mongoid/criteria/queryable/optional.rb +0 -45
  140. data/lib/mongoid/criteria/queryable/options.rb +0 -19
  141. data/lib/mongoid/criteria/queryable/pipeline.rb +0 -13
  142. data/lib/mongoid/criteria/queryable/selectable.rb +20 -67
  143. data/lib/mongoid/criteria/queryable/selector.rb +0 -17
  144. data/lib/mongoid/criteria/queryable/smash.rb +0 -11
  145. data/lib/mongoid/criteria/queryable/storable.rb +7 -3
  146. data/lib/mongoid/criteria/queryable.rb +0 -7
  147. data/lib/mongoid/criteria/scopable.rb +25 -19
  148. data/lib/mongoid/criteria.rb +0 -57
  149. data/lib/mongoid/document.rb +0 -51
  150. data/lib/mongoid/equality.rb +26 -10
  151. data/lib/mongoid/errors/ambiguous_relationship.rb +2 -5
  152. data/lib/mongoid/errors/callback.rb +0 -3
  153. data/lib/mongoid/errors/criteria_argument_required.rb +0 -1
  154. data/lib/mongoid/errors/delete_restriction.rb +0 -3
  155. data/lib/mongoid/errors/document_not_destroyed.rb +2 -7
  156. data/lib/mongoid/errors/document_not_found.rb +0 -9
  157. data/lib/mongoid/errors/eager_load.rb +0 -3
  158. data/lib/mongoid/errors/empty_config_file.rb +0 -1
  159. data/lib/mongoid/errors/in_memory_collation_not_supported.rb +0 -3
  160. data/lib/mongoid/errors/invalid_collection.rb +0 -1
  161. data/lib/mongoid/errors/invalid_config_file.rb +0 -1
  162. data/lib/mongoid/errors/invalid_config_option.rb +0 -3
  163. data/lib/mongoid/errors/invalid_dependent_strategy.rb +0 -3
  164. data/lib/mongoid/errors/invalid_discriminator_key_target.rb +0 -1
  165. data/lib/mongoid/errors/invalid_elem_match_operator.rb +0 -1
  166. data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +0 -1
  167. data/lib/mongoid/errors/invalid_expression_operator.rb +0 -1
  168. data/lib/mongoid/errors/invalid_field.rb +0 -5
  169. data/lib/mongoid/errors/invalid_field_operator.rb +0 -1
  170. data/lib/mongoid/errors/invalid_field_option.rb +0 -3
  171. data/lib/mongoid/errors/invalid_find.rb +0 -3
  172. data/lib/mongoid/errors/invalid_includes.rb +0 -3
  173. data/lib/mongoid/errors/invalid_index.rb +0 -3
  174. data/lib/mongoid/errors/invalid_options.rb +0 -3
  175. data/lib/mongoid/errors/invalid_path.rb +0 -3
  176. data/lib/mongoid/errors/invalid_persistence_option.rb +0 -5
  177. data/lib/mongoid/errors/invalid_query.rb +0 -1
  178. data/lib/mongoid/errors/invalid_relation.rb +0 -7
  179. data/lib/mongoid/errors/invalid_relation_option.rb +0 -3
  180. data/lib/mongoid/errors/invalid_scope.rb +0 -3
  181. data/lib/mongoid/errors/invalid_session_use.rb +1 -6
  182. data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +0 -1
  183. data/lib/mongoid/errors/invalid_storage_options.rb +0 -3
  184. data/lib/mongoid/errors/invalid_storage_parent.rb +0 -3
  185. data/lib/mongoid/errors/invalid_time.rb +0 -3
  186. data/lib/mongoid/errors/invalid_value.rb +0 -1
  187. data/lib/mongoid/errors/inverse_not_found.rb +0 -3
  188. data/lib/mongoid/errors/mixed_client_configuration.rb +0 -3
  189. data/lib/mongoid/errors/mixed_relations.rb +0 -3
  190. data/lib/mongoid/errors/mongoid_error.rb +0 -9
  191. data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +0 -3
  192. data/lib/mongoid/errors/no_client_config.rb +0 -3
  193. data/lib/mongoid/errors/no_client_database.rb +0 -3
  194. data/lib/mongoid/errors/no_client_hosts.rb +0 -3
  195. data/lib/mongoid/errors/no_clients_config.rb +0 -3
  196. data/lib/mongoid/errors/no_default_client.rb +0 -3
  197. data/lib/mongoid/errors/no_environment.rb +0 -3
  198. data/lib/mongoid/errors/no_map_reduce_output.rb +0 -3
  199. data/lib/mongoid/errors/no_metadata.rb +0 -3
  200. data/lib/mongoid/errors/no_parent.rb +0 -3
  201. data/lib/mongoid/errors/readonly_attribute.rb +0 -3
  202. data/lib/mongoid/errors/readonly_document.rb +1 -6
  203. data/lib/mongoid/errors/scope_overwrite.rb +0 -1
  204. data/lib/mongoid/errors/too_many_nested_attribute_records.rb +0 -1
  205. data/lib/mongoid/errors/unknown_attribute.rb +0 -3
  206. data/lib/mongoid/errors/unknown_model.rb +0 -3
  207. data/lib/mongoid/errors/unsaved_document.rb +1 -2
  208. data/lib/mongoid/errors/unsupported_javascript.rb +0 -3
  209. data/lib/mongoid/errors/validations.rb +0 -1
  210. data/lib/mongoid/errors.rb +0 -1
  211. data/lib/mongoid/evolvable.rb +0 -3
  212. data/lib/mongoid/extensions/array.rb +3 -29
  213. data/lib/mongoid/extensions/big_decimal.rb +0 -11
  214. data/lib/mongoid/extensions/boolean.rb +0 -3
  215. data/lib/mongoid/extensions/date.rb +0 -9
  216. data/lib/mongoid/extensions/date_time.rb +0 -9
  217. data/lib/mongoid/extensions/decimal128.rb +0 -5
  218. data/lib/mongoid/extensions/false_class.rb +1 -6
  219. data/lib/mongoid/extensions/float.rb +0 -7
  220. data/lib/mongoid/extensions/hash.rb +0 -27
  221. data/lib/mongoid/extensions/integer.rb +0 -9
  222. data/lib/mongoid/extensions/module.rb +0 -3
  223. data/lib/mongoid/extensions/nil_class.rb +0 -5
  224. data/lib/mongoid/extensions/object.rb +1 -40
  225. data/lib/mongoid/extensions/object_id.rb +0 -7
  226. data/lib/mongoid/extensions/range.rb +0 -11
  227. data/lib/mongoid/extensions/regexp.rb +0 -3
  228. data/lib/mongoid/extensions/set.rb +0 -7
  229. data/lib/mongoid/extensions/string.rb +1 -30
  230. data/lib/mongoid/extensions/symbol.rb +0 -7
  231. data/lib/mongoid/extensions/time.rb +0 -11
  232. data/lib/mongoid/extensions/time_with_zone.rb +13 -9
  233. data/lib/mongoid/extensions/true_class.rb +1 -6
  234. data/lib/mongoid/extensions.rb +15 -3
  235. data/lib/mongoid/factory.rb +1 -2
  236. data/lib/mongoid/fields/foreign_key.rb +0 -21
  237. data/lib/mongoid/fields/localized.rb +0 -11
  238. data/lib/mongoid/fields/standard.rb +0 -33
  239. data/lib/mongoid/fields/validators/macro.rb +0 -9
  240. data/lib/mongoid/fields/validators.rb +0 -1
  241. data/lib/mongoid/fields.rb +64 -57
  242. data/lib/mongoid/findable.rb +0 -5
  243. data/lib/mongoid/indexable/specification.rb +0 -15
  244. data/lib/mongoid/indexable/validators/options.rb +0 -7
  245. data/lib/mongoid/indexable.rb +1 -18
  246. data/lib/mongoid/inspectable.rb +1 -10
  247. data/lib/mongoid/interceptable.rb +0 -25
  248. data/lib/mongoid/loggable.rb +0 -9
  249. data/lib/mongoid/matchable.rb +0 -5
  250. data/lib/mongoid/matcher/eq_impl.rb +37 -2
  251. data/lib/mongoid/matcher/eq_impl_with_regexp.rb +6 -1
  252. data/lib/mongoid/persistable/creatable.rb +1 -20
  253. data/lib/mongoid/persistable/deletable.rb +0 -17
  254. data/lib/mongoid/persistable/destroyable.rb +0 -7
  255. data/lib/mongoid/persistable/incrementable.rb +0 -5
  256. data/lib/mongoid/persistable/logical.rb +0 -5
  257. data/lib/mongoid/persistable/poppable.rb +0 -5
  258. data/lib/mongoid/persistable/pullable.rb +0 -7
  259. data/lib/mongoid/persistable/pushable.rb +0 -7
  260. data/lib/mongoid/persistable/renamable.rb +0 -5
  261. data/lib/mongoid/persistable/savable.rb +0 -7
  262. data/lib/mongoid/persistable/settable.rb +0 -5
  263. data/lib/mongoid/persistable/unsettable.rb +0 -5
  264. data/lib/mongoid/persistable/updatable.rb +2 -17
  265. data/lib/mongoid/persistable/upsertable.rb +1 -8
  266. data/lib/mongoid/persistable.rb +0 -23
  267. data/lib/mongoid/persistence_context.rb +0 -27
  268. data/lib/mongoid/positional.rb +0 -5
  269. data/lib/mongoid/query_cache.rb +0 -33
  270. data/lib/mongoid/railtie.rb +0 -15
  271. data/lib/mongoid/railties/controller_runtime.rb +0 -1
  272. data/lib/mongoid/reloadable.rb +4 -16
  273. data/lib/mongoid/scopable.rb +6 -34
  274. data/lib/mongoid/selectable.rb +0 -9
  275. data/lib/mongoid/serializable.rb +0 -15
  276. data/lib/mongoid/shardable.rb +0 -7
  277. data/lib/mongoid/stateful.rb +0 -9
  278. data/lib/mongoid/stringified_symbol.rb +2 -3
  279. data/lib/mongoid/tasks/database.rb +0 -5
  280. data/lib/mongoid/threaded/lifecycle.rb +0 -21
  281. data/lib/mongoid/threaded.rb +0 -55
  282. data/lib/mongoid/timestamps/created/short.rb +0 -1
  283. data/lib/mongoid/timestamps/created.rb +0 -1
  284. data/lib/mongoid/timestamps/short.rb +0 -1
  285. data/lib/mongoid/timestamps/timeless.rb +0 -7
  286. data/lib/mongoid/timestamps/updated/short.rb +0 -1
  287. data/lib/mongoid/timestamps/updated.rb +0 -3
  288. data/lib/mongoid/timestamps.rb +0 -1
  289. data/lib/mongoid/touchable.rb +0 -7
  290. data/lib/mongoid/traversable.rb +67 -53
  291. data/lib/mongoid/validatable/associated.rb +0 -3
  292. data/lib/mongoid/validatable/format.rb +0 -1
  293. data/lib/mongoid/validatable/length.rb +0 -1
  294. data/lib/mongoid/validatable/localizable.rb +0 -3
  295. data/lib/mongoid/validatable/macros.rb +0 -7
  296. data/lib/mongoid/validatable/presence.rb +1 -8
  297. data/lib/mongoid/validatable/queryable.rb +0 -3
  298. data/lib/mongoid/validatable/uniqueness.rb +15 -30
  299. data/lib/mongoid/validatable.rb +1 -22
  300. data/lib/mongoid/version.rb +1 -2
  301. data/lib/mongoid.rb +0 -15
  302. data/lib/rails/generators/mongoid/config/config_generator.rb +0 -1
  303. data/lib/rails/generators/mongoid/config/templates/mongoid.yml +7 -2
  304. data/lib/rails/generators/mongoid/model/model_generator.rb +0 -1
  305. data/lib/rails/generators/mongoid_generator.rb +0 -1
  306. data/lib/rails/mongoid.rb +0 -3
  307. data/spec/config/mongoid_with_schema_map_uuid.yml +27 -0
  308. data/spec/integration/app_spec.rb +20 -15
  309. data/spec/integration/associations/belongs_to_spec.rb +0 -1
  310. data/spec/integration/associations/embedded_dirty_spec.rb +57 -0
  311. data/spec/integration/associations/embedded_spec.rb +0 -1
  312. data/spec/integration/associations/embeds_many_spec.rb +0 -1
  313. data/spec/integration/associations/embeds_one_spec.rb +0 -1
  314. data/spec/integration/associations/foreign_key_spec.rb +0 -1
  315. data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
  316. data/spec/integration/associations/has_many_spec.rb +0 -1
  317. data/spec/integration/associations/has_one_spec.rb +0 -1
  318. data/spec/integration/associations/nested_attributes_assignment_spec.rb +0 -1
  319. data/spec/integration/associations/reverse_population_spec.rb +0 -1
  320. data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
  321. data/spec/integration/associations/scope_option_spec.rb +101 -0
  322. data/spec/integration/atomic/modifiers_spec.rb +0 -1
  323. data/spec/integration/bson_regexp_raw_spec.rb +0 -1
  324. data/spec/integration/callbacks_models.rb +12 -0
  325. data/spec/integration/callbacks_spec.rb +18 -6
  326. data/spec/integration/contextual/empty_spec.rb +0 -1
  327. data/spec/integration/criteria/alias_query_spec.rb +161 -0
  328. data/spec/integration/criteria/date_field_spec.rb +0 -1
  329. data/spec/integration/criteria/default_scope_spec.rb +51 -0
  330. data/spec/integration/criteria/logical_spec.rb +30 -0
  331. data/spec/integration/criteria/range_spec.rb +265 -0
  332. data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
  333. data/spec/integration/discriminator_key_spec.rb +0 -1
  334. data/spec/integration/discriminator_value_spec.rb +0 -1
  335. data/spec/integration/document_spec.rb +0 -1
  336. data/spec/integration/i18n_fallbacks_spec.rb +0 -1
  337. data/spec/integration/matcher_examples_spec.rb +0 -1
  338. data/spec/integration/matcher_operator_spec.rb +27 -3
  339. data/spec/integration/matcher_spec.rb +95 -1
  340. data/spec/integration/server_query_spec.rb +0 -1
  341. data/spec/integration/shardable_spec.rb +0 -1
  342. data/spec/integration/stringified_symbol_field_spec.rb +14 -1
  343. data/spec/lite_spec_helper.rb +9 -3
  344. data/spec/mongoid/association/accessors_spec.rb +44 -15
  345. data/spec/mongoid/association/auto_save_spec.rb +72 -34
  346. data/spec/mongoid/association/builders_spec.rb +1 -2
  347. data/spec/mongoid/association/constrainable_spec.rb +0 -1
  348. data/spec/mongoid/association/counter_cache_spec.rb +32 -33
  349. data/spec/mongoid/association/depending_spec.rb +12 -13
  350. data/spec/mongoid/association/eager_spec.rb +4 -5
  351. data/spec/mongoid/association/embedded/cyclic_spec.rb +2 -3
  352. data/spec/mongoid/association/embedded/dirty_spec.rb +2 -3
  353. data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +0 -1
  354. data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +0 -1
  355. data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +13 -14
  356. data/spec/mongoid/association/embedded/embedded_in_spec.rb +0 -1
  357. data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +0 -1
  358. data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +0 -1
  359. data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +405 -135
  360. data/spec/mongoid/association/embedded/embeds_many_models.rb +137 -1
  361. data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +0 -1
  362. data/spec/mongoid/association/embedded/embeds_many_spec.rb +0 -1
  363. data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +0 -1
  364. data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +0 -1
  365. data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +21 -22
  366. data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +0 -1
  367. data/spec/mongoid/association/embedded/embeds_one_models.rb +0 -1
  368. data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +0 -1
  369. data/spec/mongoid/association/embedded/embeds_one_spec.rb +0 -1
  370. data/spec/mongoid/association/macros_spec.rb +9 -10
  371. data/spec/mongoid/association/nested/many_spec.rb +0 -1
  372. data/spec/mongoid/association/nested/one_spec.rb +0 -1
  373. data/spec/mongoid/association/options_spec.rb +0 -1
  374. data/spec/mongoid/association/polymorphic_spec.rb +0 -1
  375. data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +0 -1
  376. data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +55 -17
  377. data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +50 -15
  378. data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +57 -53
  379. data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +0 -1
  380. data/spec/mongoid/association/referenced/belongs_to_spec.rb +22 -2
  381. data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +0 -1
  382. data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +26 -2
  383. data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +31 -3
  384. data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +0 -1
  385. data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +187 -154
  386. data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +18 -1
  387. data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +0 -1
  388. data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +21 -1
  389. data/spec/mongoid/association/referenced/has_many/binding_spec.rb +0 -1
  390. data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +21 -1
  391. data/spec/mongoid/association/referenced/has_many/eager_spec.rb +23 -7
  392. data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +59 -33
  393. data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
  394. data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +241 -162
  395. data/spec/mongoid/association/referenced/has_many_models.rb +18 -1
  396. data/spec/mongoid/association/referenced/has_many_query_spec.rb +0 -1
  397. data/spec/mongoid/association/referenced/has_many_spec.rb +21 -1
  398. data/spec/mongoid/association/referenced/has_one/binding_spec.rb +0 -1
  399. data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +51 -8
  400. data/spec/mongoid/association/referenced/has_one/eager_spec.rb +17 -2
  401. data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +26 -27
  402. data/spec/mongoid/association/referenced/has_one_models.rb +18 -1
  403. data/spec/mongoid/association/referenced/has_one_query_spec.rb +0 -1
  404. data/spec/mongoid/association/referenced/has_one_spec.rb +21 -1
  405. data/spec/mongoid/association/reflections_spec.rb +0 -1
  406. data/spec/mongoid/association/syncable_spec.rb +31 -32
  407. data/spec/mongoid/association_spec.rb +0 -1
  408. data/spec/mongoid/atomic/modifiers_spec.rb +0 -1
  409. data/spec/mongoid/atomic/paths/embedded/many_spec.rb +0 -1
  410. data/spec/mongoid/atomic/paths/embedded/one_spec.rb +0 -1
  411. data/spec/mongoid/atomic/paths/root_spec.rb +0 -1
  412. data/spec/mongoid/atomic/paths_spec.rb +0 -1
  413. data/spec/mongoid/atomic_spec.rb +28 -7
  414. data/spec/mongoid/attributes/dynamic_spec.rb +0 -1
  415. data/spec/mongoid/attributes/nested_spec.rb +66 -67
  416. data/spec/mongoid/attributes/projector_spec.rb +5 -2
  417. data/spec/mongoid/attributes/readonly_spec.rb +22 -23
  418. data/spec/mongoid/attributes_spec.rb +32 -33
  419. data/spec/mongoid/cacheable_spec.rb +1 -2
  420. data/spec/mongoid/changeable_spec.rb +35 -36
  421. data/spec/mongoid/clients/factory_spec.rb +11 -13
  422. data/spec/mongoid/clients/options_spec.rb +4 -5
  423. data/spec/mongoid/clients/sessions_spec.rb +22 -23
  424. data/spec/mongoid/clients/transactions_spec.rb +49 -27
  425. data/spec/mongoid/clients_spec.rb +6 -7
  426. data/spec/mongoid/composable_spec.rb +0 -1
  427. data/spec/mongoid/config/environment_spec.rb +39 -2
  428. data/spec/mongoid/config/options_spec.rb +0 -1
  429. data/spec/mongoid/config_spec.rb +145 -1
  430. data/spec/mongoid/contextual/aggregable/memory_spec.rb +51 -12
  431. data/spec/mongoid/contextual/aggregable/mongo_spec.rb +120 -21
  432. data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
  433. data/spec/mongoid/contextual/atomic_spec.rb +46 -47
  434. data/spec/mongoid/contextual/geo_near_spec.rb +17 -18
  435. data/spec/mongoid/contextual/map_reduce_spec.rb +2 -3
  436. data/spec/mongoid/contextual/memory_spec.rb +23 -24
  437. data/spec/mongoid/contextual/mongo_spec.rb +339 -77
  438. data/spec/mongoid/contextual/none_spec.rb +7 -82
  439. data/spec/mongoid/copyable_spec.rb +12 -13
  440. data/spec/mongoid/copyable_spec_models.rb +0 -1
  441. data/spec/mongoid/criteria/findable_spec.rb +23 -24
  442. data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
  443. data/spec/mongoid/criteria/marshalable_spec.rb +0 -1
  444. data/spec/mongoid/criteria/modifiable_spec.rb +36 -37
  445. data/spec/mongoid/criteria/options_spec.rb +0 -1
  446. data/spec/mongoid/criteria/queryable/aggregable_spec.rb +1 -2
  447. data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -1
  448. data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +0 -1
  449. data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +0 -1
  450. data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -1
  451. data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +0 -1
  452. data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +0 -1
  453. data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +0 -1
  454. data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -1
  455. data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
  456. data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -1
  457. data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +0 -1
  458. data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +0 -1
  459. data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +0 -1
  460. data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +0 -1
  461. data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +237 -179
  462. data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +0 -1
  463. data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +0 -1
  464. data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
  465. data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -1
  466. data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -1
  467. data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +0 -1
  468. data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +0 -1
  469. data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
  470. data/spec/mongoid/criteria/queryable/mergeable_spec.rb +0 -1
  471. data/spec/mongoid/criteria/queryable/optional_spec.rb +1 -2
  472. data/spec/mongoid/criteria/queryable/options_spec.rb +0 -1
  473. data/spec/mongoid/criteria/queryable/pipeline_spec.rb +0 -1
  474. data/spec/mongoid/criteria/queryable/queryable_spec.rb +1 -2
  475. data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -1
  476. data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +0 -1
  477. data/spec/mongoid/criteria/queryable/selectable_spec.rb +15 -16
  478. data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +0 -1
  479. data/spec/mongoid/criteria/queryable/selector_spec.rb +0 -1
  480. data/spec/mongoid/criteria/queryable/smash_spec.rb +0 -1
  481. data/spec/mongoid/criteria/queryable/storable_spec.rb +37 -1
  482. data/spec/mongoid/criteria/scopable_spec.rb +127 -1
  483. data/spec/mongoid/criteria_projection_spec.rb +3 -4
  484. data/spec/mongoid/criteria_spec.rb +546 -186
  485. data/spec/mongoid/document_fields_spec.rb +0 -1
  486. data/spec/mongoid/document_persistence_context_spec.rb +0 -1
  487. data/spec/mongoid/document_query_spec.rb +0 -1
  488. data/spec/mongoid/document_spec.rb +11 -33
  489. data/spec/mongoid/equality_spec.rb +142 -41
  490. data/spec/mongoid/errors/ambiguous_relationship_spec.rb +0 -1
  491. data/spec/mongoid/errors/callback_spec.rb +0 -1
  492. data/spec/mongoid/errors/delete_restriction_spec.rb +0 -1
  493. data/spec/mongoid/errors/document_not_destroyed_spec.rb +0 -1
  494. data/spec/mongoid/errors/document_not_found_spec.rb +0 -1
  495. data/spec/mongoid/errors/eager_load_spec.rb +0 -1
  496. data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
  497. data/spec/mongoid/errors/invalid_config_file_spec.rb +0 -1
  498. data/spec/mongoid/errors/invalid_config_option_spec.rb +0 -1
  499. data/spec/mongoid/errors/invalid_field_option_spec.rb +0 -1
  500. data/spec/mongoid/errors/invalid_field_spec.rb +0 -1
  501. data/spec/mongoid/errors/invalid_find_spec.rb +0 -1
  502. data/spec/mongoid/errors/invalid_includes_spec.rb +0 -1
  503. data/spec/mongoid/errors/invalid_index_spec.rb +0 -1
  504. data/spec/mongoid/errors/invalid_options_spec.rb +0 -1
  505. data/spec/mongoid/errors/invalid_path_spec.rb +0 -1
  506. data/spec/mongoid/errors/invalid_relation_spec.rb +0 -1
  507. data/spec/mongoid/errors/invalid_scope_spec.rb +1 -2
  508. data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +0 -1
  509. data/spec/mongoid/errors/invalid_storage_options_spec.rb +0 -1
  510. data/spec/mongoid/errors/invalid_time_spec.rb +0 -1
  511. data/spec/mongoid/errors/inverse_not_found_spec.rb +0 -1
  512. data/spec/mongoid/errors/mixed_client_configuration_spec.rb +0 -1
  513. data/spec/mongoid/errors/mixed_relations_spec.rb +0 -1
  514. data/spec/mongoid/errors/mongoid_error_spec.rb +1 -2
  515. data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +0 -1
  516. data/spec/mongoid/errors/no_client_config_spec.rb +0 -1
  517. data/spec/mongoid/errors/no_client_database_spec.rb +0 -1
  518. data/spec/mongoid/errors/no_client_hosts_spec.rb +0 -1
  519. data/spec/mongoid/errors/no_clients_config_spec.rb +0 -1
  520. data/spec/mongoid/errors/no_environment_spec.rb +0 -1
  521. data/spec/mongoid/errors/no_map_reduce_output_spec.rb +0 -1
  522. data/spec/mongoid/errors/no_metadata_spec.rb +0 -1
  523. data/spec/mongoid/errors/no_parent_spec.rb +0 -1
  524. data/spec/mongoid/errors/readonly_attribute_spec.rb +0 -1
  525. data/spec/mongoid/errors/readonly_document_spec.rb +0 -1
  526. data/spec/mongoid/errors/scope_overwrite_spec.rb +0 -1
  527. data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +0 -1
  528. data/spec/mongoid/errors/unknown_attribute_spec.rb +2 -3
  529. data/spec/mongoid/errors/unsaved_document_spec.rb +0 -1
  530. data/spec/mongoid/errors/unsupported_javascript_spec.rb +0 -1
  531. data/spec/mongoid/errors/validations_spec.rb +0 -1
  532. data/spec/mongoid/extensions/array_spec.rb +0 -1
  533. data/spec/mongoid/extensions/big_decimal_spec.rb +0 -1
  534. data/spec/mongoid/extensions/binary_spec.rb +0 -1
  535. data/spec/mongoid/extensions/boolean_spec.rb +0 -1
  536. data/spec/mongoid/extensions/date_class_mongoize_spec.rb +0 -1
  537. data/spec/mongoid/extensions/date_spec.rb +0 -1
  538. data/spec/mongoid/extensions/date_time_spec.rb +0 -1
  539. data/spec/mongoid/extensions/decimal128_spec.rb +0 -1
  540. data/spec/mongoid/extensions/false_class_spec.rb +0 -1
  541. data/spec/mongoid/extensions/float_spec.rb +0 -1
  542. data/spec/mongoid/extensions/hash_spec.rb +0 -1
  543. data/spec/mongoid/extensions/integer_spec.rb +0 -1
  544. data/spec/mongoid/extensions/module_spec.rb +0 -1
  545. data/spec/mongoid/extensions/nil_class_spec.rb +0 -1
  546. data/spec/mongoid/extensions/object_id_spec.rb +0 -1
  547. data/spec/mongoid/extensions/object_spec.rb +0 -1
  548. data/spec/mongoid/extensions/range_spec.rb +0 -1
  549. data/spec/mongoid/extensions/regexp_spec.rb +0 -1
  550. data/spec/mongoid/extensions/set_spec.rb +0 -1
  551. data/spec/mongoid/extensions/string_spec.rb +2 -3
  552. data/spec/mongoid/extensions/stringified_symbol_spec.rb +0 -1
  553. data/spec/mongoid/extensions/symbol_spec.rb +0 -1
  554. data/spec/mongoid/extensions/time_spec.rb +0 -1
  555. data/spec/mongoid/extensions/time_with_zone_spec.rb +0 -1
  556. data/spec/mongoid/extensions/true_class_spec.rb +0 -1
  557. data/spec/mongoid/extensions_spec.rb +14 -3
  558. data/spec/mongoid/factory_spec.rb +1 -1
  559. data/spec/mongoid/fields/foreign_key_spec.rb +0 -1
  560. data/spec/mongoid/fields/localized_spec.rb +0 -1
  561. data/spec/mongoid/fields/standard_spec.rb +0 -1
  562. data/spec/mongoid/fields_spec.rb +326 -31
  563. data/spec/mongoid/findable_spec.rb +21 -22
  564. data/spec/mongoid/indexable/specification_spec.rb +0 -1
  565. data/spec/mongoid/indexable_spec.rb +0 -1
  566. data/spec/mongoid/inspectable_spec.rb +0 -1
  567. data/spec/mongoid/interceptable_spec.rb +102 -95
  568. data/spec/mongoid/loggable_spec.rb +0 -1
  569. data/spec/mongoid/matcher/extract_attribute_spec.rb +5 -2
  570. data/spec/mongoid/persistable/creatable_spec.rb +2 -3
  571. data/spec/mongoid/persistable/deletable_spec.rb +18 -19
  572. data/spec/mongoid/persistable/destroyable_spec.rb +8 -9
  573. data/spec/mongoid/persistable/incrementable_spec.rb +8 -9
  574. data/spec/mongoid/persistable/logical_spec.rb +4 -5
  575. data/spec/mongoid/persistable/poppable_spec.rb +4 -5
  576. data/spec/mongoid/persistable/pullable_spec.rb +8 -9
  577. data/spec/mongoid/persistable/pushable_spec.rb +8 -9
  578. data/spec/mongoid/persistable/renamable_spec.rb +3 -4
  579. data/spec/mongoid/persistable/savable_spec.rb +15 -11
  580. data/spec/mongoid/persistable/settable_spec.rb +9 -10
  581. data/spec/mongoid/persistable/unsettable_spec.rb +4 -5
  582. data/spec/mongoid/persistable/updatable_spec.rb +41 -24
  583. data/spec/mongoid/persistable/upsertable_spec.rb +1 -2
  584. data/spec/mongoid/persistable_spec.rb +1 -2
  585. data/spec/mongoid/persistence_context_spec.rb +0 -1
  586. data/spec/mongoid/positional_spec.rb +0 -1
  587. data/spec/mongoid/query_cache_middleware_spec.rb +1 -2
  588. data/spec/mongoid/query_cache_spec.rb +32 -10
  589. data/spec/mongoid/relations/proxy_spec.rb +6 -7
  590. data/spec/mongoid/reloadable_spec.rb +209 -23
  591. data/spec/mongoid/scopable_spec.rb +65 -22
  592. data/spec/mongoid/selectable_spec.rb +6 -7
  593. data/spec/mongoid/serializable_spec.rb +9 -10
  594. data/spec/mongoid/shardable_spec.rb +2 -3
  595. data/spec/mongoid/stateful_spec.rb +1 -2
  596. data/spec/mongoid/tasks/database_rake_spec.rb +0 -1
  597. data/spec/mongoid/tasks/database_spec.rb +0 -1
  598. data/spec/mongoid/threaded_spec.rb +2 -3
  599. data/spec/mongoid/timestamps/created/short_spec.rb +1 -2
  600. data/spec/mongoid/timestamps/created_spec.rb +1 -2
  601. data/spec/mongoid/timestamps/timeless_spec.rb +2 -3
  602. data/spec/mongoid/timestamps/updated/short_spec.rb +3 -4
  603. data/spec/mongoid/timestamps/updated_spec.rb +3 -4
  604. data/spec/mongoid/timestamps_spec.rb +6 -7
  605. data/spec/mongoid/touchable_spec.rb +15 -20
  606. data/spec/mongoid/touchable_spec_models.rb +0 -1
  607. data/spec/mongoid/traversable_spec.rb +65 -2
  608. data/spec/mongoid/validatable/associated_spec.rb +0 -1
  609. data/spec/mongoid/validatable/format_spec.rb +0 -1
  610. data/spec/mongoid/validatable/length_spec.rb +0 -1
  611. data/spec/mongoid/validatable/numericality_spec.rb +0 -1
  612. data/spec/mongoid/validatable/presence_spec.rb +26 -23
  613. data/spec/mongoid/validatable/uniqueness_spec.rb +67 -68
  614. data/spec/mongoid/validatable_spec.rb +2 -3
  615. data/spec/mongoid_spec.rb +0 -1
  616. data/spec/rails/controller_extension/controller_runtime_spec.rb +0 -1
  617. data/spec/rails/mongoid_spec.rb +0 -1
  618. data/spec/shared/lib/mrss/cluster_config.rb +6 -1
  619. data/spec/shared/lib/mrss/constraints.rb +10 -17
  620. data/spec/shared/lib/mrss/docker_runner.rb +23 -3
  621. data/spec/shared/lib/mrss/eg_config_utils.rb +51 -0
  622. data/spec/shared/lib/mrss/event_subscriber.rb +15 -5
  623. data/spec/shared/lib/mrss/lite_constraints.rb +40 -1
  624. data/spec/shared/lib/mrss/session_registry.rb +69 -0
  625. data/spec/shared/lib/mrss/session_registry_legacy.rb +60 -0
  626. data/spec/shared/share/Dockerfile.erb +56 -54
  627. data/spec/shared/shlib/config.sh +27 -0
  628. data/spec/shared/shlib/distro.sh +2 -1
  629. data/spec/shared/shlib/server.sh +46 -21
  630. data/spec/shared/shlib/set_env.sh +43 -5
  631. data/spec/spec_helper.rb +12 -22
  632. data/spec/support/authorization.rb +0 -1
  633. data/spec/support/constraints.rb +0 -1
  634. data/spec/support/expectations.rb +0 -1
  635. data/spec/support/macros.rb +31 -1
  636. data/spec/support/models/account.rb +1 -2
  637. data/spec/support/models/acolyte.rb +0 -1
  638. data/spec/support/models/actor.rb +0 -1
  639. data/spec/support/models/actress.rb +0 -1
  640. data/spec/support/models/address.rb +0 -1
  641. data/spec/support/models/address_component.rb +0 -1
  642. data/spec/support/models/address_number.rb +0 -1
  643. data/spec/support/models/agency.rb +0 -1
  644. data/spec/support/models/agent.rb +0 -1
  645. data/spec/support/models/album.rb +0 -1
  646. data/spec/support/models/alert.rb +0 -1
  647. data/spec/support/models/animal.rb +0 -1
  648. data/spec/support/models/answer.rb +0 -1
  649. data/spec/support/models/appointment.rb +0 -1
  650. data/spec/support/models/armrest.rb +0 -1
  651. data/spec/support/models/array_field.rb +0 -1
  652. data/spec/support/models/article.rb +0 -1
  653. data/spec/support/models/artist.rb +2 -1
  654. data/spec/support/models/artwork.rb +0 -1
  655. data/spec/support/models/audible_sound.rb +3 -0
  656. data/spec/support/models/audio.rb +0 -1
  657. data/spec/support/models/augmentation.rb +0 -1
  658. data/spec/support/models/author.rb +0 -1
  659. data/spec/support/models/baby.rb +0 -1
  660. data/spec/support/models/band.rb +4 -1
  661. data/spec/support/models/bar.rb +0 -1
  662. data/spec/support/models/basic.rb +0 -1
  663. data/spec/support/models/bed.rb +0 -1
  664. data/spec/support/models/big_palette.rb +0 -1
  665. data/spec/support/models/birthday.rb +0 -1
  666. data/spec/support/models/bolt.rb +0 -1
  667. data/spec/support/models/bomb.rb +0 -1
  668. data/spec/support/models/book.rb +0 -1
  669. data/spec/support/models/breed.rb +0 -1
  670. data/spec/support/models/browser.rb +0 -1
  671. data/spec/support/models/building.rb +0 -1
  672. data/spec/support/models/building_address.rb +0 -1
  673. data/spec/support/models/bus.rb +0 -1
  674. data/spec/support/models/business.rb +0 -1
  675. data/spec/support/models/callback_test.rb +0 -1
  676. data/spec/support/models/canvas.rb +0 -1
  677. data/spec/support/models/car.rb +0 -1
  678. data/spec/support/models/cat.rb +0 -1
  679. data/spec/support/models/category.rb +0 -1
  680. data/spec/support/models/child.rb +0 -1
  681. data/spec/support/models/child_doc.rb +3 -4
  682. data/spec/support/models/church.rb +0 -1
  683. data/spec/support/models/circle.rb +0 -1
  684. data/spec/support/models/circuit.rb +0 -1
  685. data/spec/support/models/circus.rb +0 -1
  686. data/spec/support/models/code.rb +0 -1
  687. data/spec/support/models/coding/pull_request.rb +0 -1
  688. data/spec/support/models/coding.rb +0 -1
  689. data/spec/support/models/comment.rb +0 -1
  690. data/spec/support/models/company.rb +0 -1
  691. data/spec/support/models/consumption_period.rb +0 -1
  692. data/spec/support/models/contextable_item.rb +0 -1
  693. data/spec/support/models/contractor.rb +0 -1
  694. data/spec/support/models/cookie.rb +0 -1
  695. data/spec/support/models/country_code.rb +2 -1
  696. data/spec/support/models/courier_job.rb +0 -1
  697. data/spec/support/models/crate.rb +0 -1
  698. data/spec/support/models/customer.rb +0 -1
  699. data/spec/support/models/customer_address.rb +0 -1
  700. data/spec/support/models/deed.rb +0 -1
  701. data/spec/support/models/definition.rb +0 -1
  702. data/spec/support/models/delegating_patient.rb +0 -1
  703. data/spec/support/models/description.rb +0 -1
  704. data/spec/support/models/dictionary.rb +0 -1
  705. data/spec/support/models/division.rb +0 -1
  706. data/spec/support/models/doctor.rb +0 -1
  707. data/spec/support/models/dog.rb +0 -1
  708. data/spec/support/models/dokument.rb +0 -1
  709. data/spec/support/models/draft.rb +0 -1
  710. data/spec/support/models/dragon.rb +0 -1
  711. data/spec/support/models/driver.rb +0 -1
  712. data/spec/support/models/drug.rb +0 -1
  713. data/spec/support/models/dungeon.rb +0 -1
  714. data/spec/support/models/edit.rb +0 -1
  715. data/spec/support/models/email.rb +0 -1
  716. data/spec/support/models/employer.rb +0 -1
  717. data/spec/support/models/entry.rb +0 -1
  718. data/spec/support/models/eraser.rb +0 -1
  719. data/spec/support/models/even.rb +0 -1
  720. data/spec/support/models/event.rb +0 -1
  721. data/spec/support/models/exhibition.rb +0 -1
  722. data/spec/support/models/exhibitor.rb +0 -1
  723. data/spec/support/models/explosion.rb +0 -1
  724. data/spec/support/models/eye.rb +0 -1
  725. data/spec/support/models/eye_bowl.rb +0 -1
  726. data/spec/support/models/face.rb +0 -1
  727. data/spec/support/models/favorite.rb +0 -1
  728. data/spec/support/models/filesystem.rb +0 -1
  729. data/spec/support/models/fire_hydrant.rb +0 -1
  730. data/spec/support/models/firefox.rb +0 -1
  731. data/spec/support/models/fish.rb +0 -1
  732. data/spec/support/models/folder.rb +0 -1
  733. data/spec/support/models/folder_item.rb +0 -1
  734. data/spec/support/models/fruits.rb +0 -1
  735. data/spec/support/models/game.rb +0 -1
  736. data/spec/support/models/ghost.rb +0 -1
  737. data/spec/support/models/guitar.rb +0 -1
  738. data/spec/support/models/hole.rb +0 -1
  739. data/spec/support/models/home.rb +0 -1
  740. data/spec/support/models/house.rb +0 -1
  741. data/spec/support/models/html_writer.rb +0 -1
  742. data/spec/support/models/id_key.rb +0 -1
  743. data/spec/support/models/idnodef.rb +0 -1
  744. data/spec/support/models/image.rb +0 -1
  745. data/spec/support/models/implant.rb +0 -1
  746. data/spec/support/models/instrument.rb +0 -1
  747. data/spec/support/models/item.rb +0 -1
  748. data/spec/support/models/jar.rb +0 -1
  749. data/spec/support/models/kaleidoscope.rb +0 -1
  750. data/spec/support/models/kangaroo.rb +0 -1
  751. data/spec/support/models/label.rb +2 -2
  752. data/spec/support/models/language.rb +0 -1
  753. data/spec/support/models/lat_lng.rb +0 -1
  754. data/spec/support/models/league.rb +0 -1
  755. data/spec/support/models/learner.rb +0 -1
  756. data/spec/support/models/line_item.rb +0 -1
  757. data/spec/support/models/location.rb +0 -1
  758. data/spec/support/models/login.rb +0 -1
  759. data/spec/support/models/manufacturer.rb +0 -1
  760. data/spec/support/models/meat.rb +0 -1
  761. data/spec/support/models/membership.rb +1 -1
  762. data/spec/support/models/message.rb +0 -1
  763. data/spec/support/models/minim.rb +0 -1
  764. data/spec/support/models/mixed_drink.rb +0 -1
  765. data/spec/support/models/mop.rb +0 -1
  766. data/spec/support/models/movie.rb +0 -1
  767. data/spec/support/models/my_hash.rb +0 -1
  768. data/spec/support/models/name.rb +0 -1
  769. data/spec/support/models/name_only.rb +0 -1
  770. data/spec/support/models/node.rb +0 -1
  771. data/spec/support/models/note.rb +0 -1
  772. data/spec/support/models/nut.rb +0 -1
  773. data/spec/support/models/odd.rb +0 -1
  774. data/spec/support/models/order.rb +2 -1
  775. data/spec/support/models/ordered_post.rb +1 -2
  776. data/spec/support/models/ordered_preference.rb +0 -1
  777. data/spec/support/models/oscar.rb +0 -1
  778. data/spec/support/models/other_owner_object.rb +0 -1
  779. data/spec/support/models/override.rb +0 -1
  780. data/spec/support/models/ownable.rb +0 -1
  781. data/spec/support/models/owner.rb +0 -1
  782. data/spec/support/models/pack.rb +0 -1
  783. data/spec/support/models/page.rb +0 -1
  784. data/spec/support/models/page_question.rb +0 -1
  785. data/spec/support/models/palette.rb +0 -1
  786. data/spec/support/models/parent.rb +0 -1
  787. data/spec/support/models/parent_doc.rb +0 -1
  788. data/spec/support/models/passport.rb +5 -1
  789. data/spec/support/models/patient.rb +0 -1
  790. data/spec/support/models/pdf_writer.rb +0 -1
  791. data/spec/support/models/pencil.rb +0 -1
  792. data/spec/support/models/person.rb +1 -1
  793. data/spec/support/models/pet.rb +0 -1
  794. data/spec/support/models/pet_owner.rb +0 -1
  795. data/spec/support/models/phone.rb +2 -2
  796. data/spec/support/models/piano.rb +0 -1
  797. data/spec/support/models/pizza.rb +0 -1
  798. data/spec/support/models/player.rb +0 -1
  799. data/spec/support/models/post.rb +0 -1
  800. data/spec/support/models/post_genre.rb +0 -1
  801. data/spec/support/models/powerup.rb +0 -1
  802. data/spec/support/models/preference.rb +0 -1
  803. data/spec/support/models/princess.rb +0 -1
  804. data/spec/support/models/product.rb +0 -1
  805. data/spec/support/models/profile.rb +0 -1
  806. data/spec/support/models/pronunciation.rb +0 -1
  807. data/spec/support/models/pub.rb +0 -1
  808. data/spec/support/models/publication/encyclopedia.rb +0 -1
  809. data/spec/support/models/publication/review.rb +0 -1
  810. data/spec/support/models/publication.rb +0 -1
  811. data/spec/support/models/purchase.rb +0 -1
  812. data/spec/support/models/purchased_item.rb +10 -0
  813. data/spec/support/models/question.rb +0 -1
  814. data/spec/support/models/quiz.rb +0 -1
  815. data/spec/support/models/rating.rb +0 -1
  816. data/spec/support/models/record.rb +0 -1
  817. data/spec/support/models/registry.rb +0 -1
  818. data/spec/support/models/role.rb +0 -1
  819. data/spec/support/models/root_category.rb +0 -1
  820. data/spec/support/models/sandwich.rb +0 -1
  821. data/spec/support/models/scheduler.rb +0 -1
  822. data/spec/support/models/scribe.rb +0 -1
  823. data/spec/support/models/sealer.rb +0 -1
  824. data/spec/support/models/seat.rb +0 -1
  825. data/spec/support/models/seo.rb +0 -1
  826. data/spec/support/models/series.rb +0 -1
  827. data/spec/support/models/server.rb +0 -1
  828. data/spec/support/models/service.rb +0 -1
  829. data/spec/support/models/shape.rb +0 -1
  830. data/spec/support/models/shelf.rb +0 -1
  831. data/spec/support/models/shipment_address.rb +0 -1
  832. data/spec/support/models/shipping_container.rb +0 -1
  833. data/spec/support/models/shipping_pack.rb +0 -1
  834. data/spec/support/models/shirt.rb +0 -1
  835. data/spec/support/models/shop.rb +0 -1
  836. data/spec/support/models/short_agent.rb +0 -1
  837. data/spec/support/models/short_quiz.rb +0 -1
  838. data/spec/support/models/simple.rb +0 -1
  839. data/spec/support/models/slave.rb +0 -1
  840. data/spec/support/models/song.rb +0 -1
  841. data/spec/support/models/sound.rb +0 -1
  842. data/spec/support/models/spacer.rb +0 -1
  843. data/spec/support/models/square.rb +0 -1
  844. data/spec/support/models/staff.rb +0 -1
  845. data/spec/support/models/store_as_dup_test1.rb +0 -1
  846. data/spec/support/models/store_as_dup_test2.rb +0 -1
  847. data/spec/support/models/store_as_dup_test3.rb +0 -1
  848. data/spec/support/models/store_as_dup_test4.rb +0 -1
  849. data/spec/support/models/strategy.rb +0 -1
  850. data/spec/support/models/sub_item.rb +0 -1
  851. data/spec/support/models/subscription.rb +0 -1
  852. data/spec/support/models/survey.rb +0 -1
  853. data/spec/support/models/symptom.rb +0 -1
  854. data/spec/support/models/tag.rb +0 -1
  855. data/spec/support/models/target.rb +0 -1
  856. data/spec/support/models/template.rb +0 -1
  857. data/spec/support/models/thing.rb +0 -1
  858. data/spec/support/models/threadlocker.rb +0 -1
  859. data/spec/support/models/title.rb +0 -1
  860. data/spec/support/models/tool.rb +0 -1
  861. data/spec/support/models/topping.rb +0 -1
  862. data/spec/support/models/toy.rb +0 -1
  863. data/spec/support/models/track.rb +0 -1
  864. data/spec/support/models/translation.rb +0 -1
  865. data/spec/support/models/tree.rb +0 -1
  866. data/spec/support/models/truck.rb +0 -1
  867. data/spec/support/models/updatable.rb +0 -1
  868. data/spec/support/models/user.rb +0 -1
  869. data/spec/support/models/user_account.rb +0 -1
  870. data/spec/support/models/validation_callback.rb +0 -1
  871. data/spec/support/models/vehicle.rb +0 -1
  872. data/spec/support/models/version.rb +0 -1
  873. data/spec/support/models/vertex.rb +0 -1
  874. data/spec/support/models/vet_visit.rb +0 -1
  875. data/spec/support/models/video.rb +0 -1
  876. data/spec/support/models/video_game.rb +0 -1
  877. data/spec/support/models/washer.rb +0 -1
  878. data/spec/support/models/weapon.rb +0 -1
  879. data/spec/support/models/wiki_page.rb +0 -1
  880. data/spec/support/models/word.rb +0 -1
  881. data/spec/support/models/word_origin.rb +0 -1
  882. data/spec/support/models/writer.rb +0 -1
  883. data/spec/support/schema_maps/schema_map_aws.json +17 -0
  884. data/spec/support/schema_maps/schema_map_aws_key_alt_names.json +12 -0
  885. data/spec/support/schema_maps/schema_map_azure.json +17 -0
  886. data/spec/support/schema_maps/schema_map_azure_key_alt_names.json +12 -0
  887. data/spec/support/schema_maps/schema_map_gcp.json +17 -0
  888. data/spec/support/schema_maps/schema_map_gcp_key_alt_names.json +12 -0
  889. data/spec/support/schema_maps/schema_map_kmip.json +17 -0
  890. data/spec/support/schema_maps/schema_map_kmip_key_alt_names.json +12 -0
  891. data/spec/support/schema_maps/schema_map_local.json +18 -0
  892. data/spec/support/schema_maps/schema_map_local_key_alt_names.json +12 -0
  893. data/spec/support/shared/time.rb +0 -1
  894. data/spec/support/spec_config.rb +7 -1
  895. data.tar.gz.sig +0 -0
  896. metadata +630 -587
  897. metadata.gz.sig +0 -0
  898. data/lib/support/ruby_version.rb +0 -29
  899. data/spec/support/session_registry.rb +0 -50
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require "spec_helper"
5
4
 
@@ -37,6 +36,7 @@ describe Mongoid::Clients::Factory do
37
36
  context "when the configuration exists" do
38
37
 
39
38
  context "when the configuration is standard" do
39
+ restore_config_clients
40
40
 
41
41
  let(:config) do
42
42
  {
@@ -47,7 +47,6 @@ describe Mongoid::Clients::Factory do
47
47
 
48
48
  before do
49
49
  Mongoid::Config.send(:clients=, config)
50
- # TODO: We should restore overwritten configuration in after block
51
50
  end
52
51
 
53
52
  after do
@@ -121,6 +120,7 @@ describe Mongoid::Clients::Factory do
121
120
  end
122
121
 
123
122
  context "when the configuration has no ports" do
123
+ restore_config_clients
124
124
 
125
125
  let(:config) do
126
126
  {
@@ -131,7 +131,6 @@ describe Mongoid::Clients::Factory do
131
131
 
132
132
  before do
133
133
  Mongoid::Config.send(:clients=, config)
134
- # TODO: We should restore overwritten configuration in after block
135
134
  end
136
135
 
137
136
  after do
@@ -166,6 +165,7 @@ describe Mongoid::Clients::Factory do
166
165
  context "when configured via a uri" do
167
166
 
168
167
  context "when the uri has a single host:port" do
168
+ restore_config_clients
169
169
 
170
170
  let(:config) do
171
171
  {
@@ -176,7 +176,6 @@ describe Mongoid::Clients::Factory do
176
176
 
177
177
  before do
178
178
  Mongoid::Config.send(:clients=, config)
179
- # TODO: We should restore overwritten configuration in after block
180
179
  end
181
180
 
182
181
  after do
@@ -205,6 +204,7 @@ describe Mongoid::Clients::Factory do
205
204
  end
206
205
 
207
206
  context "when the uri has multiple host:port pairs" do
207
+ restore_config_clients
208
208
 
209
209
  let(:config) do
210
210
  {
@@ -215,7 +215,6 @@ describe Mongoid::Clients::Factory do
215
215
 
216
216
  before do
217
217
  Mongoid::Config.send(:clients=, config)
218
- # TODO: We should restore overwritten configuration in after block
219
218
  end
220
219
 
221
220
  after do
@@ -256,6 +255,7 @@ describe Mongoid::Clients::Factory do
256
255
  end
257
256
 
258
257
  context "when no name is provided" do
258
+ restore_config_clients
259
259
 
260
260
  let(:config) do
261
261
  { default: { hosts: SpecConfig.instance.addresses, database: database_id }}
@@ -263,7 +263,6 @@ describe Mongoid::Clients::Factory do
263
263
 
264
264
  before do
265
265
  Mongoid::Config.send(:clients=, config)
266
- # TODO: We should restore overwritten configuration in after block
267
266
  end
268
267
 
269
268
  after do
@@ -290,12 +289,12 @@ describe Mongoid::Clients::Factory do
290
289
  end
291
290
 
292
291
  context "when nil is provided and no default config" do
292
+ restore_config_clients
293
293
 
294
294
  let(:config) { nil }
295
295
 
296
296
  before do
297
297
  Mongoid.clients[:default] = nil
298
- # TODO: We should restore overwritten configuration in after block
299
298
  end
300
299
 
301
300
  it "raises NoClientsConfig error" do
@@ -305,6 +304,7 @@ describe Mongoid::Clients::Factory do
305
304
  end
306
305
 
307
306
  describe ".default" do
307
+ restore_config_clients
308
308
 
309
309
  let(:config) do
310
310
  { default: { hosts: SpecConfig.instance.addresses, database: database_id }}
@@ -312,7 +312,6 @@ describe Mongoid::Clients::Factory do
312
312
 
313
313
  before do
314
314
  Mongoid::Config.send(:clients=, config)
315
- # TODO: We should restore overwritten configuration in after block
316
315
  end
317
316
 
318
317
  after do
@@ -339,6 +338,7 @@ describe Mongoid::Clients::Factory do
339
338
  end
340
339
 
341
340
  context "when options are provided with string keys" do
341
+ restore_config_clients
342
342
 
343
343
  let(:config) do
344
344
  {
@@ -355,7 +355,6 @@ describe Mongoid::Clients::Factory do
355
355
 
356
356
  before do
357
357
  Mongoid::Config.send(:clients=, config)
358
- # TODO: We should restore overwritten configuration in after block
359
358
  end
360
359
 
361
360
  after do
@@ -394,6 +393,8 @@ describe Mongoid::Clients::Factory do
394
393
  end
395
394
 
396
395
  context "unexpected config options" do
396
+ restore_config_clients
397
+
397
398
  let(:unknown_opts) do
398
399
  {
399
400
  bad_one: 1,
@@ -411,11 +412,8 @@ describe Mongoid::Clients::Factory do
411
412
  }
412
413
  end
413
414
 
414
- around(:each) do |example|
415
- old_config = Mongoid::Config.clients
415
+ before do
416
416
  Mongoid::Config.send(:clients=, config)
417
- example.run
418
- Mongoid::Config.send(:clients=, old_config)
419
417
  end
420
418
 
421
419
  [:bad_one, :bad_two].each do |env|
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require "spec_helper"
5
4
 
@@ -246,11 +245,11 @@ describe Mongoid::Clients::Options, retry: 3 do
246
245
  threads << Thread.new do
247
246
  if i % 2 == 0
248
247
  NameOnly.with(collection: 'British') do |klass|
249
- klass.create(name: 'realised')
248
+ klass.create!(name: 'realised')
250
249
  end
251
250
  else
252
251
  NameOnly.with(collection: 'American') do |klass|
253
- klass.create(name: 'realized')
252
+ klass.create!(name: 'realized')
254
253
  end
255
254
  end
256
255
  end
@@ -308,7 +307,7 @@ describe Mongoid::Clients::Options, retry: 3 do
308
307
  end
309
308
 
310
309
  let(:test_model) do
311
- Minim.create
310
+ Minim.create!
312
311
  end
313
312
 
314
313
  let(:persistence_context) do
@@ -464,7 +463,7 @@ describe Mongoid::Clients::Options, retry: 3 do
464
463
  before do
465
464
  threads = []
466
465
  100.times do |i|
467
- test_model = NameOnly.create
466
+ test_model = NameOnly.create!
468
467
  threads << Thread.new do
469
468
  if i % 2 == 0
470
469
  test_model.with(collection: 'British') do |b|
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require "spec_helper"
5
4
 
@@ -54,10 +53,10 @@ describe Mongoid::Clients::Sessions do
54
53
 
55
54
  let!(:last_use_diff) do
56
55
  Person.with_session do |session|
57
- Person.create
58
- Person.create
56
+ Person.create!
57
+ Person.create!
59
58
  last_use = session.instance_variable_get(:@server_session).last_use
60
- Thread.new { Person.create }.value
59
+ Thread.new { Person.create! }.value
61
60
  session.instance_variable_get(:@server_session).last_use - last_use
62
61
  end
63
62
  end
@@ -76,8 +75,8 @@ describe Mongoid::Clients::Sessions do
76
75
 
77
76
  before do
78
77
  Person.with_session do
79
- Person.create
80
- Person.create
78
+ Person.create!
79
+ Person.create!
81
80
  end
82
81
  end
83
82
 
@@ -96,9 +95,9 @@ describe Mongoid::Clients::Sessions do
96
95
  before do
97
96
  Post.with(client: :other) do
98
97
  Person.with_session do
99
- Person.create
100
- Person.create
101
- Post.create
98
+ Person.create!
99
+ Person.create!
100
+ Post.create!
102
101
  end
103
102
  end
104
103
  end
@@ -117,9 +116,9 @@ describe Mongoid::Clients::Sessions do
117
116
  e = nil
118
117
  begin
119
118
  Person.with_session do
120
- Person.create
121
- Person.create
122
- Post.create
119
+ Person.create!
120
+ Person.create!
121
+ Post.create!
123
122
  end
124
123
  rescue => ex
125
124
  e = ex
@@ -146,8 +145,8 @@ describe Mongoid::Clients::Sessions do
146
145
  begin
147
146
  Person.with_session do
148
147
  Person.with_session do
149
- Person.create
150
- Post.create
148
+ Person.create!
149
+ Post.create!
151
150
  end
152
151
  end
153
152
  rescue => ex
@@ -192,7 +191,7 @@ describe Mongoid::Clients::Sessions do
192
191
 
193
192
  let!(:person) do
194
193
  Person.with(client: :other) do |klass|
195
- klass.create
194
+ klass.create!
196
195
  end
197
196
  end
198
197
 
@@ -213,9 +212,9 @@ describe Mongoid::Clients::Sessions do
213
212
  before do
214
213
  person.with_session do
215
214
  person.username = 'Emily'
216
- person.save
215
+ person.save!
217
216
  person.age = 80
218
- person.save
217
+ person.save!
219
218
  end
220
219
  end
221
220
 
@@ -236,8 +235,8 @@ describe Mongoid::Clients::Sessions do
236
235
  Post.with(client: :other) do
237
236
  person.with_session do
238
237
  person.username = 'Emily'
239
- person.save
240
- person.posts << Post.create
238
+ person.save!
239
+ person.posts << Post.create!
241
240
  end
242
241
  end
243
242
  end
@@ -262,8 +261,8 @@ describe Mongoid::Clients::Sessions do
262
261
  begin
263
262
  person.with_session do
264
263
  person.username = 'Emily'
265
- person.save
266
- person.posts << Post.create
264
+ person.save!
265
+ person.posts << Post.create!
267
266
  end
268
267
  rescue => ex
269
268
  e = ex
@@ -291,8 +290,8 @@ describe Mongoid::Clients::Sessions do
291
290
  person.with_session do
292
291
  person.with_session do
293
292
  person.username = 'Emily'
294
- person.save
295
- person.posts << Post.create
293
+ person.save!
294
+ person.posts << Post.create!
296
295
  end
297
296
  end
298
297
  rescue => ex
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require "spec_helper"
5
4
 
@@ -62,9 +61,12 @@ describe Mongoid::Clients::Sessions do
62
61
  Mongoid::Clients.with_name(:other).database.collections.each(&:drop)
63
62
  Mongoid::Clients.with_name(:other).command(create: :people)
64
63
  Mongoid::Clients.with_name(:other).command(create: :posts)
64
+ Mongoid::Clients.with_name(:other).command(create: :canvases)
65
65
  subscriber.clear_events!
66
- Person.with(client: :other) do
67
- example.run
66
+ Canvas.with(client: :other) do
67
+ Person.with(client: :other) do
68
+ example.run
69
+ end
68
70
  end
69
71
  Mongoid::Clients.with_name(:other).database.collections.each(&:drop)
70
72
  end
@@ -74,9 +76,9 @@ describe Mongoid::Clients::Sessions do
74
76
  let!(:last_use_diff) do
75
77
  Person.with_session do |s|
76
78
  s.start_transaction
77
- Person.create
78
- Person.create
79
- Thread.new { Person.create }.value
79
+ Person.create!
80
+ Person.create!
81
+ Thread.new { Person.create! }.value
80
82
  s.commit_transaction
81
83
  end
82
84
  end
@@ -94,8 +96,8 @@ describe Mongoid::Clients::Sessions do
94
96
  before do
95
97
  Person.with_session do |s|
96
98
  s.start_transaction
97
- Person.create
98
- Person.create
99
+ Person.create!
100
+ Person.create!
99
101
  s.commit_transaction
100
102
  end
101
103
  end
@@ -115,9 +117,9 @@ describe Mongoid::Clients::Sessions do
115
117
  Post.with(client: :other) do
116
118
  Person.with_session do |s|
117
119
  s.start_transaction
118
- Person.create
119
- Person.create
120
- Post.create
120
+ Person.create!
121
+ Person.create!
122
+ Post.create!
121
123
  s.commit_transaction
122
124
  end
123
125
  end
@@ -137,9 +139,9 @@ describe Mongoid::Clients::Sessions do
137
139
  begin
138
140
  Person.with_session do |s|
139
141
  s.start_transaction
140
- Person.create
141
- Person.create
142
- Post.create
142
+ Person.create!
143
+ Person.create!
144
+ Post.create!
143
145
  s.commit_transaction
144
146
  end
145
147
  rescue => ex
@@ -169,8 +171,8 @@ describe Mongoid::Clients::Sessions do
169
171
  Person.with_session do |s|
170
172
  s.start_transaction
171
173
  s.start_transaction
172
- Person.create
173
- Post.create
174
+ Person.create!
175
+ Post.create!
174
176
  s.commit_transaction
175
177
  end
176
178
  rescue => ex
@@ -190,6 +192,26 @@ describe Mongoid::Clients::Sessions do
190
192
  end
191
193
  end
192
194
  end
195
+
196
+ context 'When reloading an embedded document created inside a transaction' do
197
+ it 'does not raise an error and has the correct document' do
198
+ Canvas.with_session do |s|
199
+ s.start_transaction
200
+
201
+ p = Palette.new
202
+ c = Canvas.new(palette: p)
203
+ c.save!
204
+
205
+ expect do
206
+ p.reload
207
+ end.to_not raise_error
208
+
209
+ expect(c.palette).to eq(p)
210
+
211
+ s.commit_transaction
212
+ end
213
+ end
214
+ end
193
215
  end
194
216
 
195
217
  context 'when sessions are supported but transactions are not' do
@@ -202,7 +224,7 @@ describe Mongoid::Clients::Sessions do
202
224
  begin
203
225
  Person.with_session do |s|
204
226
  s.start_transaction
205
- Person.create
227
+ Person.create!
206
228
  s.commit_transaction
207
229
  end
208
230
  rescue => ex
@@ -222,7 +244,7 @@ describe Mongoid::Clients::Sessions do
222
244
 
223
245
  let!(:person) do
224
246
  Person.with(client: :other) do |klass|
225
- klass.create
247
+ klass.create!
226
248
  end
227
249
  end
228
250
 
@@ -246,9 +268,9 @@ describe Mongoid::Clients::Sessions do
246
268
  person.with_session do |s|
247
269
  s.start_transaction
248
270
  person.username = 'Emily'
249
- person.save
271
+ person.save!
250
272
  person.age = 80
251
- person.save
273
+ person.save!
252
274
  s.commit_transaction
253
275
  end
254
276
  end
@@ -270,8 +292,8 @@ describe Mongoid::Clients::Sessions do
270
292
  person.with_session do |s|
271
293
  s.start_transaction
272
294
  person.username = 'Emily'
273
- person.save
274
- person.posts << Post.create
295
+ person.save!
296
+ person.posts << Post.create!
275
297
  s.commit_transaction
276
298
  end
277
299
  end
@@ -296,8 +318,8 @@ describe Mongoid::Clients::Sessions do
296
318
  person.with_session do |s|
297
319
  s.start_transaction
298
320
  person.username = 'Emily'
299
- person.save
300
- person.posts << Post.create
321
+ person.save!
322
+ person.posts << Post.create!
301
323
  s.commit_transaction
302
324
  end
303
325
  rescue => ex
@@ -327,8 +349,8 @@ describe Mongoid::Clients::Sessions do
327
349
  s.start_transaction
328
350
  s.start_transaction
329
351
  person.username = 'Emily'
330
- person.save
331
- person.posts << Post.create
352
+ person.save!
353
+ person.posts << Post.create!
332
354
  s.commit_transaction
333
355
  end
334
356
  rescue => ex
@@ -375,7 +397,7 @@ describe Mongoid::Clients::Sessions do
375
397
  person.with_session do |s|
376
398
  s.start_transaction
377
399
  person.username = 'Emily'
378
- person.save
400
+ person.save!
379
401
  s.commit_transaction
380
402
  end
381
403
  rescue => ex
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require "spec_helper"
5
4
 
@@ -792,11 +791,11 @@ describe Mongoid::Clients do
792
791
  end
793
792
  end
794
793
 
795
- describe ".create" do
794
+ describe ".create!" do
796
795
 
797
796
  let!(:band) do
798
797
  Band.with(database: database_id_alt) do |klass|
799
- klass.create
798
+ klass.create!
800
799
  end
801
800
  end
802
801
 
@@ -830,11 +829,11 @@ describe Mongoid::Clients do
830
829
 
831
830
  context "when sending operations to a different collection" do
832
831
 
833
- describe ".create" do
832
+ describe ".create!" do
834
833
 
835
834
  let!(:band) do
836
835
  Band.with(collection: "artists") do |klass|
837
- klass.create
836
+ klass.create!
838
837
  end
839
838
  end
840
839
 
@@ -945,7 +944,7 @@ describe Mongoid::Clients do
945
944
  describe ".save" do
946
945
 
947
946
  before do
948
- Person.create(ssn: "432-97-1113")
947
+ Person.create!(ssn: "432-97-1113")
949
948
  end
950
949
 
951
950
  context "when a mongodb error occurs" do
@@ -1038,7 +1037,7 @@ describe Mongoid::Clients do
1038
1037
  end
1039
1038
 
1040
1039
  let!(:band) do
1041
- Band.create(name: "Tool")
1040
+ Band.create!(name: "Tool")
1042
1041
  end
1043
1042
 
1044
1043
  it "persists to the overridden database" do
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require "spec_helper"
5
4
 
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require "spec_helper"
5
4
 
@@ -107,7 +106,7 @@ describe Mongoid::Config::Environment do
107
106
 
108
107
  context 'when file found' do
109
108
  before do
110
- allow(File).to receive(:new).with('mongoid.yml').and_return(StringIO.new(file_contents))
109
+ allow(File).to receive(:read).with('mongoid.yml').and_return(file_contents)
111
110
  end
112
111
 
113
112
  let(:file_contents) do
@@ -163,5 +162,43 @@ describe Mongoid::Config::Environment do
163
162
  it { is_expected.to be_nil }
164
163
  end
165
164
  end
165
+
166
+ context 'when configuration includes schema map' do
167
+ paths = Dir.glob(File.join(File.dirname(__FILE__), '../../support/schema_maps/*.json'))
168
+
169
+ if paths.empty?
170
+ raise "Expected to find some schema maps"
171
+ end
172
+
173
+ before do
174
+ allow(File).to receive(:read).with('mongoid.yml').and_return(file_contents)
175
+ end
176
+
177
+ let(:file_contents) do
178
+ <<~FILE
179
+ test:
180
+ clients:
181
+ default:
182
+ database: mongoid_test
183
+ hosts: [localhost]
184
+ options:
185
+ auto_encryption_options:
186
+ schema_map: #{schema_map.to_yaml.sub(/\A---/, '').gsub(/\n/, "\n" + ' '*100)}
187
+ FILE
188
+ end
189
+
190
+ paths.each do |path|
191
+ context File.basename(path) do
192
+ let(:schema_map) do
193
+ BSON::ExtJSON.parse(File.read(path))
194
+ end
195
+
196
+ it 'loads successfully' do
197
+ subject.should be_a(Hash)
198
+ subject.fetch('clients').fetch('default').fetch('options').fetch('auto_encryption_options').fetch('schema_map').should be_a(Hash)
199
+ end
200
+ end
201
+ end
202
+ end
166
203
  end
167
204
  end
@@ -1,5 +1,4 @@
1
1
  # frozen_string_literal: true
2
- # encoding: utf-8
3
2
 
4
3
  require "spec_helper"
5
4