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
 
@@ -21,10 +20,10 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
21
20
 
22
21
  describe "##{method}" do
23
22
 
24
- context "when providing the base class in child contructor" do
23
+ context "when providing the base class in child constructor" do
25
24
 
26
25
  let(:person) do
27
- Person.create
26
+ Person.create!
28
27
  end
29
28
 
30
29
  let!(:post) do
@@ -86,7 +85,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
86
85
  context "when the child is persisted" do
87
86
 
88
87
  let(:post) do
89
- Post.create
88
+ Post.create!
90
89
  end
91
90
 
92
91
  before do
@@ -116,8 +115,8 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
116
115
  context "when subsequently saving the parent" do
117
116
 
118
117
  before do
119
- person.save
120
- post.save
118
+ person.save!
119
+ post.save!
121
120
  end
122
121
 
123
122
  it "returns the correct count of the association" do
@@ -130,11 +129,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
130
129
  context "when appending in a parent create block" do
131
130
 
132
131
  let!(:post) do
133
- Post.create(title: "testing")
132
+ Post.create!(title: "testing")
134
133
  end
135
134
 
136
135
  let!(:person) do
137
- Person.create do |doc|
136
+ Person.create! do |doc|
138
137
  doc.posts << post
139
138
  end
140
139
  end
@@ -163,7 +162,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
163
162
  context "when the parent is not a new record" do
164
163
 
165
164
  let(:person) do
166
- Person.create
165
+ Person.create!
167
166
  end
168
167
 
169
168
  let(:post) do
@@ -206,13 +205,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
206
205
  context "when the related item has embedded associations" do
207
206
 
208
207
  let!(:user) do
209
- User.create
208
+ User.create!
210
209
  end
211
210
 
212
211
  before do
213
- p = Post.create(roles: [ Role.create ])
212
+ p = Post.create!(roles: [ Role.create! ])
214
213
  user.posts = [ p ]
215
- user.save
214
+ user.save!
216
215
  end
217
216
 
218
217
  it "add the document to the target" do
@@ -280,7 +279,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
280
279
  context "when.adding to the association" do
281
280
 
282
281
  let(:person) do
283
- Person.create
282
+ Person.create!
284
283
  end
285
284
 
286
285
  context "when the operation succeeds" do
@@ -301,7 +300,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
301
300
  context "when the operation fails" do
302
301
 
303
302
  let!(:existing) do
304
- Post.create
303
+ Post.create!
305
304
  end
306
305
 
307
306
  let(:post) do
@@ -354,7 +353,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
354
353
  context "when the parent is not a new record" do
355
354
 
356
355
  let(:movie) do
357
- Movie.create
356
+ Movie.create!
358
357
  end
359
358
 
360
359
  let(:rating) do
@@ -423,7 +422,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
423
422
  context "when the parent is not a new record" do
424
423
 
425
424
  let(:person) do
426
- Person.create
425
+ Person.create!
427
426
  end
428
427
 
429
428
  let(:post) do
@@ -490,7 +489,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
490
489
  context "when replacing the with a combination of old and new docs" do
491
490
 
492
491
  let(:new_post) do
493
- Post.create(title: "new post")
492
+ Post.create!(title: "new post")
494
493
  end
495
494
 
496
495
  context "when using the same in memory instance" do
@@ -539,7 +538,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
539
538
  context "when replacing the with a combination of only new docs" do
540
539
 
541
540
  let(:new_post) do
542
- Post.create(title: "new post")
541
+ Post.create!(title: "new post")
543
542
  end
544
543
 
545
544
  context "when using the same in memory instance" do
@@ -615,7 +614,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
615
614
  context "when the parent is not a new record" do
616
615
 
617
616
  let(:movie) do
618
- Movie.create
617
+ Movie.create!
619
618
  end
620
619
 
621
620
  let(:rating) do
@@ -650,11 +649,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
650
649
  context "when the parent is persisted" do
651
650
 
652
651
  let(:posts) do
653
- [ Post.create(title: "1"), Post.create(title: "2") ]
652
+ [ Post.create!(title: "1"), Post.create!(title: "2") ]
654
653
  end
655
654
 
656
655
  let(:person) do
657
- Person.create(posts: posts)
656
+ Person.create!(posts: posts)
658
657
  end
659
658
 
660
659
  context "when the parent has multiple children" do
@@ -709,7 +708,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
709
708
  context "when the parent is not a new record" do
710
709
 
711
710
  let(:person) do
712
- Person.create
711
+ Person.create!
713
712
  end
714
713
 
715
714
  context "when dependent is destructive" do
@@ -803,7 +802,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
803
802
  context "when the parent is not a new record" do
804
803
 
805
804
  let(:movie) do
806
- Movie.create
805
+ Movie.create!
807
806
  end
808
807
 
809
808
  let(:rating) do
@@ -844,11 +843,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
844
843
  end
845
844
 
846
845
  let(:post_one) do
847
- Post.create
846
+ Post.create!
848
847
  end
849
848
 
850
849
  let(:post_two) do
851
- Post.create
850
+ Post.create!
852
851
  end
853
852
 
854
853
  before do
@@ -863,11 +862,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
863
862
  describe "#\{name}_ids" do
864
863
 
865
864
  let(:posts) do
866
- [ Post.create, Post.create ]
865
+ [ Post.create!, Post.create! ]
867
866
  end
868
867
 
869
868
  let(:person) do
870
- Person.create(posts: posts)
869
+ Person.create!(posts: posts)
871
870
  end
872
871
 
873
872
  it "returns ids of documents that are in the association" do
@@ -923,7 +922,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
923
922
  context "when the parent is not a new record" do
924
923
 
925
924
  let(:person) do
926
- Person.create
925
+ Person.create!
927
926
  end
928
927
 
929
928
  let!(:post) do
@@ -957,7 +956,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
957
956
  context "when the parent is a subclass" do
958
957
 
959
958
  let(:video_game) do
960
- VideoGame.create
959
+ VideoGame.create!
961
960
  end
962
961
 
963
962
  let(:rating) do
@@ -1011,7 +1010,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1011
1010
  context "when the parent is not a new record" do
1012
1011
 
1013
1012
  let(:movie) do
1014
- Movie.create
1013
+ Movie.create!
1015
1014
  end
1016
1015
 
1017
1016
  let!(:rating) do
@@ -1049,13 +1048,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1049
1048
  context "when the parent has been persisted" do
1050
1049
 
1051
1050
  let!(:person) do
1052
- Person.create
1051
+ Person.create!
1053
1052
  end
1054
1053
 
1055
1054
  context "when the children are persisted" do
1056
1055
 
1057
1056
  let!(:post) do
1058
- person.posts.create(title: "Testing")
1057
+ person.posts.create!(title: "Testing")
1059
1058
  end
1060
1059
 
1061
1060
  let!(:association) do
@@ -1120,13 +1119,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1120
1119
  context "when the parent has been persisted" do
1121
1120
 
1122
1121
  let!(:movie) do
1123
- Movie.create
1122
+ Movie.create!
1124
1123
  end
1125
1124
 
1126
1125
  context "when the children are persisted" do
1127
1126
 
1128
1127
  let!(:rating) do
1129
- movie.ratings.create(value: 1)
1128
+ movie.ratings.create!(value: 1)
1130
1129
  end
1131
1130
 
1132
1131
  let!(:association) do
@@ -1229,11 +1228,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1229
1228
  context "when appending in a parent create block" do
1230
1229
 
1231
1230
  let!(:post) do
1232
- Post.create(title: "testing")
1231
+ Post.create!(title: "testing")
1233
1232
  end
1234
1233
 
1235
1234
  let!(:person) do
1236
- Person.create do |doc|
1235
+ Person.create! do |doc|
1237
1236
  doc.posts.concat([ post ])
1238
1237
  end
1239
1238
  end
@@ -1262,7 +1261,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1262
1261
  context "when the parent is not a new record" do
1263
1262
 
1264
1263
  let(:person) do
1265
- Person.create
1264
+ Person.create!
1266
1265
  end
1267
1266
 
1268
1267
  let(:post) do
@@ -1375,7 +1374,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1375
1374
  context "when the parent is not a new record" do
1376
1375
 
1377
1376
  let(:movie) do
1378
- Movie.create
1377
+ Movie.create!
1379
1378
  end
1380
1379
 
1381
1380
  let(:rating) do
@@ -1407,18 +1406,23 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1407
1406
  describe "#count" do
1408
1407
 
1409
1408
  let(:movie) do
1410
- Movie.create
1409
+ Movie.create!
1411
1410
  end
1412
1411
 
1413
1412
  context "when documents have been persisted" do
1414
1413
 
1415
1414
  let!(:rating) do
1416
- movie.ratings.create(value: 1)
1415
+ movie.ratings.create!(value: 1)
1417
1416
  end
1418
1417
 
1419
1418
  it "returns the number of persisted documents" do
1420
1419
  expect(movie.ratings.count).to eq(1)
1421
1420
  end
1421
+
1422
+ it "block form includes persisted results" do
1423
+ expect(movie.ratings.count {|r| r.value >= 1 }).to eq(1)
1424
+ expect(movie.ratings.count {|r| r.value >= 2 }).to eq(0)
1425
+ end
1422
1426
  end
1423
1427
 
1424
1428
  context "when documents have not been persisted" do
@@ -1430,6 +1434,27 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1430
1434
  it "returns 0" do
1431
1435
  expect(movie.ratings.count).to eq(0)
1432
1436
  end
1437
+
1438
+ it "block form does not include unpersisted results" do
1439
+ expect(movie.ratings.count {|r| r.value == 1 }).to eq(0)
1440
+ end
1441
+ end
1442
+
1443
+ context "when mixed persisted and unpersisted documents" do
1444
+
1445
+ before do
1446
+ movie.ratings.create(value: 1)
1447
+ movie.ratings.build(value: 2)
1448
+ end
1449
+
1450
+ it "returns 1" do
1451
+ expect(movie.ratings.count).to eq(1)
1452
+ end
1453
+
1454
+ it "block form includes only persisted results" do
1455
+ expect(movie.ratings.count {|r| r.value >= 1 }).to eq(1)
1456
+ expect(movie.ratings.count {|r| r.value == 2 }).to eq(0)
1457
+ end
1433
1458
  end
1434
1459
 
1435
1460
  context "when no document is added" do
@@ -1444,7 +1469,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1444
1469
  context "when the documents are part of the association" do
1445
1470
 
1446
1471
  before do
1447
- Rating.create(ratable: movie)
1472
+ Rating.create!(ratable: movie)
1448
1473
  end
1449
1474
 
1450
1475
  it "returns the count from the db" do
@@ -1455,7 +1480,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1455
1480
  context "when the documents are not part of the association" do
1456
1481
 
1457
1482
  before do
1458
- Rating.create
1483
+ Rating.create!
1459
1484
  end
1460
1485
 
1461
1486
  it "returns the count from the db" do
@@ -1517,7 +1542,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1517
1542
  end
1518
1543
 
1519
1544
  let(:movie) do
1520
- Movie.create
1545
+ Movie.create!
1521
1546
  end
1522
1547
 
1523
1548
  context "when nothing exists on the association" do
@@ -1614,7 +1639,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1614
1639
  context "when documents have been persisted" do
1615
1640
 
1616
1641
  let!(:rating) do
1617
- movie.ratings.create(value: 1)
1642
+ movie.ratings.create!(value: 1)
1618
1643
  end
1619
1644
 
1620
1645
  it "returns true" do
@@ -1638,7 +1663,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1638
1663
 
1639
1664
  context "when new documents exist in the database" do
1640
1665
  before do
1641
- Rating.create(ratable: movie)
1666
+ Rating.create!(ratable: movie)
1642
1667
  end
1643
1668
 
1644
1669
  it "returns true" do
@@ -1652,11 +1677,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1652
1677
  context "when providing multiple attributes" do
1653
1678
 
1654
1679
  let(:person) do
1655
- Person.create
1680
+ Person.create!
1656
1681
  end
1657
1682
 
1658
1683
  let!(:posts) do
1659
- person.posts.create([{ text: "Test1" }, { text: "Test2" }])
1684
+ person.posts.create!([{ text: "Test1" }, { text: "Test2" }])
1660
1685
  end
1661
1686
 
1662
1687
  it "creates multiple documents" do
@@ -1685,7 +1710,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1685
1710
  end
1686
1711
 
1687
1712
  let(:post) do
1688
- person.posts.create(text: "Testing")
1713
+ person.posts.create!(text: "Testing")
1689
1714
  end
1690
1715
 
1691
1716
  it "raises an unsaved document error" do
@@ -1698,11 +1723,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1698
1723
  context "when the operation is successful" do
1699
1724
 
1700
1725
  let(:person) do
1701
- Person.create
1726
+ Person.create!
1702
1727
  end
1703
1728
 
1704
1729
  let!(:post) do
1705
- person.posts.create(text: "Testing")
1730
+ person.posts.create!(text: "Testing")
1706
1731
  end
1707
1732
 
1708
1733
  it "creates the document" do
@@ -1713,16 +1738,16 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1713
1738
  context "when the operation fails" do
1714
1739
 
1715
1740
  let(:person) do
1716
- Person.create
1741
+ Person.create!
1717
1742
  end
1718
1743
 
1719
1744
  let!(:existing) do
1720
- Post.create
1745
+ Post.create!
1721
1746
  end
1722
1747
 
1723
1748
  it "raises an error" do
1724
1749
  expect {
1725
- person.posts.create do |doc|
1750
+ person.posts.create! do |doc|
1726
1751
  doc._id = existing.id
1727
1752
  end
1728
1753
  }.to raise_error(Mongo::Error::OperationFailure)
@@ -1733,11 +1758,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1733
1758
  context "when the parent is not a new record" do
1734
1759
 
1735
1760
  let(:person) do
1736
- Person.create
1761
+ Person.create!
1737
1762
  end
1738
1763
 
1739
1764
  let!(:post) do
1740
- person.posts.create(text: "Testing") do |post|
1765
+ person.posts.create!(text: "Testing") do |post|
1741
1766
  post.content = "The Content"
1742
1767
  end
1743
1768
  end
@@ -1770,11 +1795,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1770
1795
  context "when passing a new object" do
1771
1796
 
1772
1797
  let!(:odd) do
1773
- Odd.create(name: 'one')
1798
+ Odd.create!(name: 'one')
1774
1799
  end
1775
1800
 
1776
1801
  let!(:even) do
1777
- odd.evens.create(name: 'two', odds: [Odd.new(name: 'three')])
1802
+ odd.evens.create!(name: 'two', odds: [Odd.new(name: 'three')])
1778
1803
  end
1779
1804
 
1780
1805
  it "only push one even to the list" do
@@ -1804,7 +1829,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1804
1829
  end
1805
1830
 
1806
1831
  let(:rating) do
1807
- movie.ratings.create(value: 1)
1832
+ movie.ratings.create!(value: 1)
1808
1833
  end
1809
1834
 
1810
1835
  it "raises an unsaved document error" do
@@ -1815,11 +1840,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1815
1840
  context "when the parent is not a new record" do
1816
1841
 
1817
1842
  let(:movie) do
1818
- Movie.create
1843
+ Movie.create!
1819
1844
  end
1820
1845
 
1821
1846
  let!(:rating) do
1822
- movie.ratings.create(value: 3)
1847
+ movie.ratings.create!(value: 3)
1823
1848
  end
1824
1849
 
1825
1850
  it "sets the foreign key on the association" do
@@ -1844,7 +1869,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1844
1869
  end
1845
1870
  end
1846
1871
 
1847
- context "when using a diferent primary_key" do
1872
+ context "when using a different primary_key" do
1848
1873
 
1849
1874
  let(:person) do
1850
1875
  Person.create!(username: 'arthurnn')
@@ -1865,7 +1890,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1865
1890
  context "when providing multiple attributes" do
1866
1891
 
1867
1892
  let(:person) do
1868
- Person.create
1893
+ Person.create!
1869
1894
  end
1870
1895
 
1871
1896
  let!(:posts) do
@@ -1909,7 +1934,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1909
1934
  context "when the parent is not a new record" do
1910
1935
 
1911
1936
  let(:person) do
1912
- Person.create
1937
+ Person.create!
1913
1938
  end
1914
1939
 
1915
1940
  let!(:post) do
@@ -1967,7 +1992,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
1967
1992
  context "when the parent is not a new record" do
1968
1993
 
1969
1994
  let(:movie) do
1970
- Movie.create
1995
+ Movie.create!
1971
1996
  end
1972
1997
 
1973
1998
  let!(:rating) do
@@ -2055,7 +2080,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2055
2080
  describe "#delete" do
2056
2081
 
2057
2082
  let!(:person) do
2058
- Person.create(username: 'arthurnn')
2083
+ Person.create!(username: 'arthurnn')
2059
2084
  end
2060
2085
 
2061
2086
  context "when the document is found" do
@@ -2065,7 +2090,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2065
2090
  context "when we are assigning attributes" do
2066
2091
 
2067
2092
  let!(:drug) do
2068
- person.drugs.create
2093
+ person.drugs.create!
2069
2094
  end
2070
2095
 
2071
2096
  before do
@@ -2088,7 +2113,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2088
2113
  context "when the document is loaded" do
2089
2114
 
2090
2115
  let!(:drug) do
2091
- person.drugs.create
2116
+ person.drugs.create!
2092
2117
  end
2093
2118
 
2094
2119
  let!(:deleted) do
@@ -2111,7 +2136,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2111
2136
  context "when the document is not loaded" do
2112
2137
 
2113
2138
  let!(:drug) do
2114
- Drug.create(person_id: person.username)
2139
+ Drug.create!(person_id: person.username)
2115
2140
  end
2116
2141
 
2117
2142
  let!(:deleted) do
@@ -2137,7 +2162,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2137
2162
  context "when the document is loaded" do
2138
2163
 
2139
2164
  let!(:post) do
2140
- person.posts.create(title: "test")
2165
+ person.posts.create!(title: "test")
2141
2166
  end
2142
2167
 
2143
2168
  let!(:deleted) do
@@ -2160,7 +2185,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2160
2185
  context "when the document is not loaded" do
2161
2186
 
2162
2187
  let!(:post) do
2163
- Post.create(title: "foo", person_id: person.id)
2188
+ Post.create!(title: "foo", person_id: person.id)
2164
2189
  end
2165
2190
 
2166
2191
  let!(:deleted) do
@@ -2185,7 +2210,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2185
2210
  context "when the document is not found" do
2186
2211
 
2187
2212
  let!(:post) do
2188
- Post.create(title: "foo")
2213
+ Post.create!(title: "foo")
2189
2214
  end
2190
2215
 
2191
2216
  let!(:deleted) do
@@ -2211,13 +2236,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2211
2236
  context "when conditions are provided" do
2212
2237
 
2213
2238
  let(:person) do
2214
- Person.create(username: 'durran')
2239
+ Person.create!(username: 'durran')
2215
2240
  end
2216
2241
 
2217
- before do
2218
- person.posts.create(title: "Testing")
2219
- person.posts.create(title: "Test")
2220
- end
2242
+ let!(:post1) { person.posts.create!(title: "Testing") }
2243
+ let!(:post2) { person.posts.create!(title: "Test") }
2221
2244
 
2222
2245
  it "removes the correct posts" do
2223
2246
  person.posts.send(method, { title: "Testing" })
@@ -2233,17 +2256,22 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2233
2256
  it "returns the number of documents deleted" do
2234
2257
  expect(person.posts.send(method, { title: "Testing" })).to eq(1)
2235
2258
  end
2259
+
2260
+ it "sets the association locally" do
2261
+ person.posts.send(method, { title: "Testing" })
2262
+ expect(person.posts).to eq([post2])
2263
+ end
2236
2264
  end
2237
2265
 
2238
2266
  context "when conditions are not provided" do
2239
2267
 
2240
2268
  let(:person) do
2241
- Person.create
2269
+ Person.create!
2242
2270
  end
2243
2271
 
2244
2272
  before do
2245
- person.posts.create(title: "Testing")
2246
- person.posts.create(title: "Test")
2273
+ person.posts.create!(title: "Testing")
2274
+ person.posts.create!(title: "Test")
2247
2275
  end
2248
2276
 
2249
2277
  it "removes the correct posts" do
@@ -2259,6 +2287,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2259
2287
  it "returns the number of documents deleted" do
2260
2288
  expect(person.posts.send(method)).to eq(2)
2261
2289
  end
2290
+
2291
+ it "sets the association locally" do
2292
+ person.posts.send(method)
2293
+ expect(person.posts).to eq([])
2294
+ end
2262
2295
  end
2263
2296
  end
2264
2297
 
@@ -2267,13 +2300,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2267
2300
  context "when conditions are provided" do
2268
2301
 
2269
2302
  let(:movie) do
2270
- Movie.create(title: "Bladerunner")
2303
+ Movie.create!(title: "Bladerunner")
2271
2304
  end
2272
2305
 
2273
- before do
2274
- movie.ratings.create(value: 1)
2275
- movie.ratings.create(value: 2)
2276
- end
2306
+ let!(:rating1) { movie.ratings.create!(value: 1) }
2307
+ let!(:rating2) { movie.ratings.create!(value: 2) }
2277
2308
 
2278
2309
  it "removes the correct ratings" do
2279
2310
  movie.ratings.send(method, { value: 1 })
@@ -2288,17 +2319,22 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2288
2319
  it "returns the number of documents deleted" do
2289
2320
  expect(movie.ratings.send(method, { value: 1 })).to eq(1)
2290
2321
  end
2322
+
2323
+ it "sets the association locally" do
2324
+ movie.ratings.send(method, { value: 1 })
2325
+ expect(movie.ratings).to eq([rating2])
2326
+ end
2291
2327
  end
2292
2328
 
2293
2329
  context "when conditions are not provided" do
2294
2330
 
2295
2331
  let(:movie) do
2296
- Movie.create(title: "Bladerunner")
2332
+ Movie.create!(title: "Bladerunner")
2297
2333
  end
2298
2334
 
2299
2335
  before do
2300
- movie.ratings.create(value: 1)
2301
- movie.ratings.create(value: 2)
2336
+ movie.ratings.create!(value: 1)
2337
+ movie.ratings.create!(value: 2)
2302
2338
  end
2303
2339
 
2304
2340
  it "removes the correct ratings" do
@@ -2314,6 +2350,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2314
2350
  it "returns the number of documents deleted" do
2315
2351
  expect(movie.ratings.send(method)).to eq(2)
2316
2352
  end
2353
+
2354
+ it "sets the association locally" do
2355
+ movie.ratings.send(method)
2356
+ expect(movie.ratings).to eq([])
2357
+ end
2317
2358
  end
2318
2359
  end
2319
2360
  end
@@ -2329,13 +2370,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2329
2370
  describe "#exists?" do
2330
2371
 
2331
2372
  let!(:person) do
2332
- Person.create
2373
+ Person.create!
2333
2374
  end
2334
2375
 
2335
2376
  context "when documents exist in the database" do
2336
2377
 
2337
2378
  before do
2338
- person.posts.create
2379
+ person.posts.create!
2339
2380
  end
2340
2381
 
2341
2382
  it "returns true" do
@@ -2466,15 +2507,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2466
2507
  context "when the association is not polymorphic" do
2467
2508
 
2468
2509
  let(:person) do
2469
- Person.create
2510
+ Person.create!
2470
2511
  end
2471
2512
 
2472
2513
  let!(:post_one) do
2473
- person.posts.create(title: "Test")
2514
+ person.posts.create!(title: "Test")
2474
2515
  end
2475
2516
 
2476
2517
  let!(:post_two) do
2477
- person.posts.create(title: "OMG I has associations")
2518
+ person.posts.create!(title: "OMG I has associations")
2478
2519
  end
2479
2520
 
2480
2521
  context "when providing an id" do
@@ -2493,7 +2534,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2493
2534
  context "when the id matches but is not scoped to the association" do
2494
2535
 
2495
2536
  let(:post) do
2496
- Post.create(title: "Unscoped")
2537
+ Post.create!(title: "Unscoped")
2497
2538
  end
2498
2539
 
2499
2540
  it "raises an error" do
@@ -2592,15 +2633,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2592
2633
  context "when the association is polymorphic" do
2593
2634
 
2594
2635
  let(:movie) do
2595
- Movie.create
2636
+ Movie.create!
2596
2637
  end
2597
2638
 
2598
2639
  let!(:rating_one) do
2599
- movie.ratings.create(value: 1)
2640
+ movie.ratings.create!(value: 1)
2600
2641
  end
2601
2642
 
2602
2643
  let!(:rating_two) do
2603
- movie.ratings.create(value: 5)
2644
+ movie.ratings.create!(value: 5)
2604
2645
  end
2605
2646
 
2606
2647
  context "when providing an id" do
@@ -2709,6 +2750,44 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2709
2750
  end
2710
2751
  end
2711
2752
  end
2753
+
2754
+ context "with block" do
2755
+ let!(:author) do
2756
+ Person.create!(title: 'Person')
2757
+ end
2758
+
2759
+ let!(:post_one) do
2760
+ author.posts.create!(title: 'post one')
2761
+ end
2762
+
2763
+ let!(:post_two) do
2764
+ author.posts.create!(title: 'post two')
2765
+ end
2766
+
2767
+ it "finds one" do
2768
+ expect(
2769
+ author.posts.find do |post|
2770
+ post.title == 'post one'
2771
+ end
2772
+ ).to be_a(Post)
2773
+ end
2774
+
2775
+ it "returns first match of multiple" do
2776
+ expect(
2777
+ author.posts.find do |post|
2778
+ ['post one', 'post two'].include?(post.title)
2779
+ end
2780
+ ).to eq(post_one)
2781
+ end
2782
+
2783
+ it "returns nil when not found" do
2784
+ expect(
2785
+ author.posts.find do |post|
2786
+ post.title == 'non exiting one'
2787
+ end
2788
+ ).to be_nil
2789
+ end
2790
+ end
2712
2791
  end
2713
2792
 
2714
2793
  describe "#find_or_create_by" do
@@ -2716,11 +2795,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2716
2795
  context "when the association is not polymorphic" do
2717
2796
 
2718
2797
  let(:person) do
2719
- Person.create
2798
+ Person.create!
2720
2799
  end
2721
2800
 
2722
2801
  let!(:post) do
2723
- person.posts.create(title: "Testing")
2802
+ person.posts.create!(title: "Testing")
2724
2803
  end
2725
2804
 
2726
2805
  context "when the document exists" do
@@ -2789,11 +2868,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2789
2868
  context "when the association is polymorphic" do
2790
2869
 
2791
2870
  let(:movie) do
2792
- Movie.create
2871
+ Movie.create!
2793
2872
  end
2794
2873
 
2795
2874
  let!(:rating) do
2796
- movie.ratings.create(value: 1)
2875
+ movie.ratings.create!(value: 1)
2797
2876
  end
2798
2877
 
2799
2878
  context "when the document exists" do
@@ -2837,11 +2916,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2837
2916
  context "when the association is not polymorphic" do
2838
2917
 
2839
2918
  let(:person) do
2840
- Person.create
2919
+ Person.create!
2841
2920
  end
2842
2921
 
2843
2922
  let!(:post) do
2844
- person.posts.create(title: "Testing")
2923
+ person.posts.create!(title: "Testing")
2845
2924
  end
2846
2925
 
2847
2926
  context "when the document exists" do
@@ -2910,11 +2989,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2910
2989
  context "when the association is polymorphic" do
2911
2990
 
2912
2991
  let(:movie) do
2913
- Movie.create
2992
+ Movie.create!
2914
2993
  end
2915
2994
 
2916
2995
  let!(:rating) do
2917
- movie.ratings.create(value: 1)
2996
+ movie.ratings.create!(value: 1)
2918
2997
  end
2919
2998
 
2920
2999
  context "when the document exists" do
@@ -2967,11 +3046,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2967
3046
  context "when the association is not polymorphic" do
2968
3047
 
2969
3048
  let(:person) do
2970
- Person.create
3049
+ Person.create!
2971
3050
  end
2972
3051
 
2973
3052
  let!(:post) do
2974
- person.posts.create(title: "Testing")
3053
+ person.posts.create!(title: "Testing")
2975
3054
  end
2976
3055
 
2977
3056
  context "when the document exists" do
@@ -3010,11 +3089,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3010
3089
  context "when the association is polymorphic" do
3011
3090
 
3012
3091
  let(:movie) do
3013
- Movie.create
3092
+ Movie.create!
3014
3093
  end
3015
3094
 
3016
3095
  let!(:rating) do
3017
- movie.ratings.create(value: 1)
3096
+ movie.ratings.create!(value: 1)
3018
3097
  end
3019
3098
 
3020
3099
  context "when the document exists" do
@@ -3104,15 +3183,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3104
3183
  describe "#max" do
3105
3184
 
3106
3185
  let(:person) do
3107
- Person.create
3186
+ Person.create!
3108
3187
  end
3109
3188
 
3110
3189
  let(:post_one) do
3111
- Post.create(rating: 5)
3190
+ Post.create!(rating: 5)
3112
3191
  end
3113
3192
 
3114
3193
  let(:post_two) do
3115
- Post.create(rating: 10)
3194
+ Post.create!(rating: 10)
3116
3195
  end
3117
3196
 
3118
3197
  before do
@@ -3133,15 +3212,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3133
3212
  describe "#max_by" do
3134
3213
 
3135
3214
  let(:person) do
3136
- Person.create
3215
+ Person.create!
3137
3216
  end
3138
3217
 
3139
3218
  let(:post_one) do
3140
- Post.create(rating: 5)
3219
+ Post.create!(rating: 5)
3141
3220
  end
3142
3221
 
3143
3222
  let(:post_two) do
3144
- Post.create(rating: 10)
3223
+ Post.create!(rating: 10)
3145
3224
  end
3146
3225
 
3147
3226
  before do
@@ -3160,15 +3239,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3160
3239
  describe "#method_missing" do
3161
3240
 
3162
3241
  let!(:person) do
3163
- Person.create
3242
+ Person.create!
3164
3243
  end
3165
3244
 
3166
3245
  let!(:post_one) do
3167
- person.posts.create(title: "First", content: "Posting")
3246
+ person.posts.create!(title: "First", content: "Posting")
3168
3247
  end
3169
3248
 
3170
3249
  let!(:post_two) do
3171
- person.posts.create(title: "Second", content: "Testing")
3250
+ person.posts.create!(title: "Second", content: "Testing")
3172
3251
  end
3173
3252
 
3174
3253
  context "when providing a single criteria" do
@@ -3235,15 +3314,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3235
3314
  describe "#min" do
3236
3315
 
3237
3316
  let(:person) do
3238
- Person.create
3317
+ Person.create!
3239
3318
  end
3240
3319
 
3241
3320
  let(:post_one) do
3242
- Post.create(rating: 5)
3321
+ Post.create!(rating: 5)
3243
3322
  end
3244
3323
 
3245
3324
  let(:post_two) do
3246
- Post.create(rating: 10)
3325
+ Post.create!(rating: 10)
3247
3326
  end
3248
3327
 
3249
3328
  before do
@@ -3264,15 +3343,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3264
3343
  describe "#min_by" do
3265
3344
 
3266
3345
  let(:person) do
3267
- Person.create
3346
+ Person.create!
3268
3347
  end
3269
3348
 
3270
3349
  let(:post_one) do
3271
- Post.create(rating: 5)
3350
+ Post.create!(rating: 5)
3272
3351
  end
3273
3352
 
3274
3353
  let(:post_two) do
3275
- Post.create(rating: 10)
3354
+ Post.create!(rating: 10)
3276
3355
  end
3277
3356
 
3278
3357
  before do
@@ -3293,15 +3372,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3293
3372
  context "when the inverse has not been loaded" do
3294
3373
 
3295
3374
  let(:person) do
3296
- Person.create
3375
+ Person.create!
3297
3376
  end
3298
3377
 
3299
3378
  let!(:post_one) do
3300
- person.posts.create(title: "One")
3379
+ person.posts.create!(title: "One")
3301
3380
  end
3302
3381
 
3303
3382
  let!(:post_two) do
3304
- person.posts.create(title: "Two")
3383
+ person.posts.create!(title: "Two")
3305
3384
  end
3306
3385
 
3307
3386
  let(:from_db) do
@@ -3330,15 +3409,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3330
3409
  context "when the association is not polymorphic" do
3331
3410
 
3332
3411
  let(:person) do
3333
- Person.create
3412
+ Person.create!
3334
3413
  end
3335
3414
 
3336
3415
  let!(:post_one) do
3337
- person.posts.create(title: "One")
3416
+ person.posts.create!(title: "One")
3338
3417
  end
3339
3418
 
3340
3419
  let!(:post_two) do
3341
- person.posts.create(title: "Two")
3420
+ person.posts.create!(title: "Two")
3342
3421
  end
3343
3422
 
3344
3423
  before do
@@ -3376,15 +3455,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3376
3455
  context "when the association is polymorphic" do
3377
3456
 
3378
3457
  let(:movie) do
3379
- Movie.create(title: "Oldboy")
3458
+ Movie.create!(title: "Oldboy")
3380
3459
  end
3381
3460
 
3382
3461
  let!(:rating_one) do
3383
- movie.ratings.create(value: 10)
3462
+ movie.ratings.create!(value: 10)
3384
3463
  end
3385
3464
 
3386
3465
  let!(:rating_two) do
3387
- movie.ratings.create(value: 9)
3466
+ movie.ratings.create!(value: 9)
3388
3467
  end
3389
3468
 
3390
3469
  before do
@@ -3470,13 +3549,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3470
3549
  describe "##{method}" do
3471
3550
 
3472
3551
  let(:movie) do
3473
- Movie.create
3552
+ Movie.create!
3474
3553
  end
3475
3554
 
3476
3555
  context "when documents have been persisted" do
3477
3556
 
3478
3557
  let!(:rating) do
3479
- movie.ratings.create(value: 1)
3558
+ movie.ratings.create!(value: 1)
3480
3559
  end
3481
3560
 
3482
3561
  it "returns 1" do
@@ -3488,7 +3567,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3488
3567
 
3489
3568
  before do
3490
3569
  movie.ratings.build(value: 1)
3491
- movie.ratings.create(value: 2)
3570
+ movie.ratings.create!(value: 2)
3492
3571
  end
3493
3572
 
3494
3573
  it "returns the total number of documents" do
@@ -3503,15 +3582,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3503
3582
  context "when the association has no default scope" do
3504
3583
 
3505
3584
  let!(:person) do
3506
- Person.create
3585
+ Person.create!
3507
3586
  end
3508
3587
 
3509
3588
  let!(:post_one) do
3510
- person.posts.create(title: "first")
3589
+ person.posts.create!(title: "first")
3511
3590
  end
3512
3591
 
3513
3592
  let!(:post_two) do
3514
- Post.create(title: "second")
3593
+ Post.create!(title: "second")
3515
3594
  end
3516
3595
 
3517
3596
  let(:unscoped) do
@@ -3526,15 +3605,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3526
3605
  context "when the association has a default scope" do
3527
3606
 
3528
3607
  let!(:church) do
3529
- Church.create
3608
+ Church.create!
3530
3609
  end
3531
3610
 
3532
3611
  let!(:acolyte_one) do
3533
- church.acolytes.create(name: "first")
3612
+ church.acolytes.create!(name: "first")
3534
3613
  end
3535
3614
 
3536
3615
  let!(:acolyte_two) do
3537
- Acolyte.create(name: "second")
3616
+ Acolyte.create!(name: "second")
3538
3617
  end
3539
3618
 
3540
3619
  let(:unscoped) do
@@ -3554,19 +3633,19 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3554
3633
  context "when the association has an order defined" do
3555
3634
 
3556
3635
  let(:person) do
3557
- Person.create
3636
+ Person.create!
3558
3637
  end
3559
3638
 
3560
3639
  let(:post_one) do
3561
- OrderedPost.create(rating: 10, title: '1')
3640
+ OrderedPost.create!(rating: 10, title: '1')
3562
3641
  end
3563
3642
 
3564
3643
  let(:post_two) do
3565
- OrderedPost.create(rating: 20, title: '2')
3644
+ OrderedPost.create!(rating: 20, title: '2')
3566
3645
  end
3567
3646
 
3568
3647
  let(:post_three) do
3569
- OrderedPost.create(rating: 20, title: '3')
3648
+ OrderedPost.create!(rating: 20, title: '3')
3570
3649
  end
3571
3650
 
3572
3651
  before do
@@ -3580,7 +3659,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3580
3659
  )
3581
3660
  end
3582
3661
 
3583
- it "chaining order criterias" do
3662
+ it "chaining order criteria" do
3584
3663
  expect(person.ordered_posts.order_by(:title.desc).to_a).to eq(
3585
3664
  [post_three, post_two, post_one]
3586
3665
  )
@@ -3590,15 +3669,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3590
3669
  context "when reloading the association" do
3591
3670
 
3592
3671
  let!(:person) do
3593
- Person.create
3672
+ Person.create!
3594
3673
  end
3595
3674
 
3596
3675
  let!(:post_one) do
3597
- Post.create(title: "one")
3676
+ Post.create!(title: "one")
3598
3677
  end
3599
3678
 
3600
3679
  let!(:post_two) do
3601
- Post.create(title: "two")
3680
+ Post.create!(title: "two")
3602
3681
  end
3603
3682
 
3604
3683
  before do
@@ -3644,7 +3723,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3644
3723
  context "when the parent is using integer ids" do
3645
3724
 
3646
3725
  let(:jar) do
3647
- Jar.create do |doc|
3726
+ Jar.create! do |doc|
3648
3727
  doc._id = 1
3649
3728
  end
3650
3729
  end
@@ -3757,8 +3836,8 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3757
3836
 
3758
3837
  before do
3759
3838
  artist.albums << album
3760
- album.save
3761
- artist.save
3839
+ album.save!
3840
+ artist.save!
3762
3841
  expect(artist).not_to receive(:after_add_album)
3763
3842
  end
3764
3843
 
@@ -3922,15 +4001,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3922
4001
  context "when executing a criteria call on an ordered association" do
3923
4002
 
3924
4003
  let(:person) do
3925
- Person.create
4004
+ Person.create!
3926
4005
  end
3927
4006
 
3928
4007
  let!(:post_one) do
3929
- person.ordered_posts.create(rating: 1)
4008
+ person.ordered_posts.create!(rating: 1)
3930
4009
  end
3931
4010
 
3932
4011
  let!(:post_two) do
3933
- person.ordered_posts.create(rating: 5)
4012
+ person.ordered_posts.create!(rating: 5)
3934
4013
  end
3935
4014
 
3936
4015
  let(:criteria) do
@@ -3945,11 +4024,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3945
4024
  context "when accessing a scope named open" do
3946
4025
 
3947
4026
  let(:person) do
3948
- Person.create
4027
+ Person.create!
3949
4028
  end
3950
4029
 
3951
4030
  let!(:post) do
3952
- person.posts.create(title: "open")
4031
+ person.posts.create!(title: "open")
3953
4032
  end
3954
4033
 
3955
4034
  it "returns the appropriate documents" do
@@ -3960,11 +4039,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3960
4039
  context "when accessing a association named parent" do
3961
4040
 
3962
4041
  let!(:parent) do
3963
- Odd.create(name: "odd parent")
4042
+ Odd.create!(name: "odd parent")
3964
4043
  end
3965
4044
 
3966
4045
  let(:child) do
3967
- Even.create(parent_id: parent.id, name: "original even child")
4046
+ Even.create!(parent_id: parent.id, name: "original even child")
3968
4047
  end
3969
4048
 
3970
4049
  it "updates the child after accessing the parent" do
@@ -4001,7 +4080,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
4001
4080
  end
4002
4081
 
4003
4082
  it 'saves the document correctly' do
4004
- expect(agent.save).to be(true)
4083
+ expect(agent.save!).to be(true)
4005
4084
  end
4006
4085
  end
4007
4086
 
@@ -4017,8 +4096,8 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
4017
4096
 
4018
4097
  before do
4019
4098
  agent.same_name = band
4020
- agent.save
4021
- band.save
4099
+ agent.save!
4100
+ band.save!
4022
4101
  band.reload
4023
4102
  end
4024
4103