mongoid 7.3.5 → 7.4.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (893) 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 +9 -39
  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 +18 -61
  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 +0 -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 +6 -2
  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 +0 -7
  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/model/model_generator.rb +0 -1
  304. data/lib/rails/generators/mongoid_generator.rb +0 -1
  305. data/lib/rails/mongoid.rb +0 -3
  306. data/spec/config/mongoid_with_schema_map_uuid.yml +27 -0
  307. data/spec/integration/app_spec.rb +20 -15
  308. data/spec/integration/associations/belongs_to_spec.rb +0 -1
  309. data/spec/integration/associations/embedded_dirty_spec.rb +57 -0
  310. data/spec/integration/associations/embedded_spec.rb +0 -1
  311. data/spec/integration/associations/embeds_many_spec.rb +0 -1
  312. data/spec/integration/associations/embeds_one_spec.rb +0 -1
  313. data/spec/integration/associations/foreign_key_spec.rb +0 -1
  314. data/spec/integration/associations/foreign_key_spec_models.rb +0 -1
  315. data/spec/integration/associations/has_many_spec.rb +0 -1
  316. data/spec/integration/associations/has_one_spec.rb +0 -1
  317. data/spec/integration/associations/nested_attributes_assignment_spec.rb +0 -1
  318. data/spec/integration/associations/reverse_population_spec.rb +0 -1
  319. data/spec/integration/associations/reverse_population_spec_models.rb +0 -1
  320. data/spec/integration/associations/scope_option_spec.rb +101 -0
  321. data/spec/integration/atomic/modifiers_spec.rb +0 -1
  322. data/spec/integration/bson_regexp_raw_spec.rb +0 -1
  323. data/spec/integration/callbacks_models.rb +12 -0
  324. data/spec/integration/callbacks_spec.rb +18 -6
  325. data/spec/integration/contextual/empty_spec.rb +0 -1
  326. data/spec/integration/criteria/alias_query_spec.rb +161 -0
  327. data/spec/integration/criteria/date_field_spec.rb +0 -1
  328. data/spec/integration/criteria/default_scope_spec.rb +51 -0
  329. data/spec/integration/criteria/logical_spec.rb +30 -0
  330. data/spec/integration/criteria/range_spec.rb +265 -0
  331. data/spec/integration/criteria/time_with_zone_spec.rb +125 -15
  332. data/spec/integration/discriminator_key_spec.rb +0 -1
  333. data/spec/integration/discriminator_value_spec.rb +0 -1
  334. data/spec/integration/document_spec.rb +0 -1
  335. data/spec/integration/i18n_fallbacks_spec.rb +0 -1
  336. data/spec/integration/matcher_examples_spec.rb +0 -1
  337. data/spec/integration/matcher_operator_spec.rb +27 -3
  338. data/spec/integration/matcher_spec.rb +95 -1
  339. data/spec/integration/server_query_spec.rb +0 -1
  340. data/spec/integration/shardable_spec.rb +0 -1
  341. data/spec/integration/stringified_symbol_field_spec.rb +14 -1
  342. data/spec/lite_spec_helper.rb +1 -2
  343. data/spec/mongoid/association/accessors_spec.rb +44 -15
  344. data/spec/mongoid/association/auto_save_spec.rb +72 -34
  345. data/spec/mongoid/association/builders_spec.rb +1 -2
  346. data/spec/mongoid/association/constrainable_spec.rb +0 -1
  347. data/spec/mongoid/association/counter_cache_spec.rb +32 -33
  348. data/spec/mongoid/association/depending_spec.rb +12 -13
  349. data/spec/mongoid/association/eager_spec.rb +4 -5
  350. data/spec/mongoid/association/embedded/cyclic_spec.rb +2 -3
  351. data/spec/mongoid/association/embedded/dirty_spec.rb +2 -3
  352. data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +0 -1
  353. data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +0 -1
  354. data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +13 -14
  355. data/spec/mongoid/association/embedded/embedded_in_spec.rb +0 -1
  356. data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +0 -1
  357. data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +0 -1
  358. data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +384 -135
  359. data/spec/mongoid/association/embedded/embeds_many_models.rb +0 -1
  360. data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +0 -1
  361. data/spec/mongoid/association/embedded/embeds_many_spec.rb +0 -1
  362. data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +0 -1
  363. data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +0 -1
  364. data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +21 -22
  365. data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +0 -1
  366. data/spec/mongoid/association/embedded/embeds_one_models.rb +0 -1
  367. data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +0 -1
  368. data/spec/mongoid/association/embedded/embeds_one_spec.rb +0 -1
  369. data/spec/mongoid/association/macros_spec.rb +9 -10
  370. data/spec/mongoid/association/nested/many_spec.rb +0 -1
  371. data/spec/mongoid/association/nested/one_spec.rb +0 -1
  372. data/spec/mongoid/association/options_spec.rb +0 -1
  373. data/spec/mongoid/association/polymorphic_spec.rb +0 -1
  374. data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +0 -1
  375. data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +55 -17
  376. data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +50 -15
  377. data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +57 -53
  378. data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +0 -1
  379. data/spec/mongoid/association/referenced/belongs_to_spec.rb +22 -2
  380. data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +0 -1
  381. data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +26 -2
  382. data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +31 -3
  383. data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +0 -1
  384. data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +179 -154
  385. data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +18 -1
  386. data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +0 -1
  387. data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +21 -1
  388. data/spec/mongoid/association/referenced/has_many/binding_spec.rb +0 -1
  389. data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +21 -1
  390. data/spec/mongoid/association/referenced/has_many/eager_spec.rb +23 -7
  391. data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +59 -33
  392. data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +0 -1
  393. data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +217 -154
  394. data/spec/mongoid/association/referenced/has_many_models.rb +18 -1
  395. data/spec/mongoid/association/referenced/has_many_query_spec.rb +0 -1
  396. data/spec/mongoid/association/referenced/has_many_spec.rb +21 -1
  397. data/spec/mongoid/association/referenced/has_one/binding_spec.rb +0 -1
  398. data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +51 -8
  399. data/spec/mongoid/association/referenced/has_one/eager_spec.rb +17 -2
  400. data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +26 -27
  401. data/spec/mongoid/association/referenced/has_one_models.rb +18 -1
  402. data/spec/mongoid/association/referenced/has_one_query_spec.rb +0 -1
  403. data/spec/mongoid/association/referenced/has_one_spec.rb +21 -1
  404. data/spec/mongoid/association/reflections_spec.rb +0 -1
  405. data/spec/mongoid/association/syncable_spec.rb +31 -32
  406. data/spec/mongoid/association_spec.rb +0 -1
  407. data/spec/mongoid/atomic/modifiers_spec.rb +0 -1
  408. data/spec/mongoid/atomic/paths/embedded/many_spec.rb +0 -1
  409. data/spec/mongoid/atomic/paths/embedded/one_spec.rb +0 -1
  410. data/spec/mongoid/atomic/paths/root_spec.rb +0 -1
  411. data/spec/mongoid/atomic/paths_spec.rb +0 -1
  412. data/spec/mongoid/atomic_spec.rb +28 -7
  413. data/spec/mongoid/attributes/dynamic_spec.rb +0 -1
  414. data/spec/mongoid/attributes/nested_spec.rb +66 -67
  415. data/spec/mongoid/attributes/projector_spec.rb +5 -2
  416. data/spec/mongoid/attributes/readonly_spec.rb +22 -23
  417. data/spec/mongoid/attributes_spec.rb +32 -33
  418. data/spec/mongoid/cacheable_spec.rb +1 -2
  419. data/spec/mongoid/changeable_spec.rb +35 -36
  420. data/spec/mongoid/clients/factory_spec.rb +11 -13
  421. data/spec/mongoid/clients/options_spec.rb +4 -5
  422. data/spec/mongoid/clients/sessions_spec.rb +22 -23
  423. data/spec/mongoid/clients/transactions_spec.rb +49 -27
  424. data/spec/mongoid/clients_spec.rb +6 -7
  425. data/spec/mongoid/composable_spec.rb +0 -1
  426. data/spec/mongoid/config/environment_spec.rb +39 -2
  427. data/spec/mongoid/config/options_spec.rb +0 -1
  428. data/spec/mongoid/config_spec.rb +145 -1
  429. data/spec/mongoid/contextual/aggregable/memory_spec.rb +51 -12
  430. data/spec/mongoid/contextual/aggregable/mongo_spec.rb +120 -21
  431. data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
  432. data/spec/mongoid/contextual/atomic_spec.rb +46 -47
  433. data/spec/mongoid/contextual/geo_near_spec.rb +17 -18
  434. data/spec/mongoid/contextual/map_reduce_spec.rb +2 -3
  435. data/spec/mongoid/contextual/memory_spec.rb +23 -24
  436. data/spec/mongoid/contextual/mongo_spec.rb +339 -77
  437. data/spec/mongoid/contextual/none_spec.rb +7 -82
  438. data/spec/mongoid/copyable_spec.rb +12 -13
  439. data/spec/mongoid/copyable_spec_models.rb +0 -1
  440. data/spec/mongoid/criteria/findable_spec.rb +23 -24
  441. data/spec/mongoid/criteria/inspectable_spec.rb +0 -1
  442. data/spec/mongoid/criteria/marshalable_spec.rb +0 -1
  443. data/spec/mongoid/criteria/modifiable_spec.rb +36 -37
  444. data/spec/mongoid/criteria/options_spec.rb +0 -1
  445. data/spec/mongoid/criteria/queryable/aggregable_spec.rb +1 -2
  446. data/spec/mongoid/criteria/queryable/expandable_spec.rb +0 -1
  447. data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +0 -1
  448. data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +0 -1
  449. data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +0 -1
  450. data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +0 -1
  451. data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +0 -1
  452. data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +0 -1
  453. data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +0 -1
  454. data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +0 -1
  455. data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +0 -1
  456. data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +0 -1
  457. data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +0 -1
  458. data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +0 -1
  459. data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +0 -1
  460. data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +237 -179
  461. data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +0 -1
  462. data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +0 -1
  463. data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +0 -1
  464. data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +0 -1
  465. data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +0 -1
  466. data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +0 -1
  467. data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +0 -1
  468. data/spec/mongoid/criteria/queryable/key_spec.rb +0 -1
  469. data/spec/mongoid/criteria/queryable/mergeable_spec.rb +0 -1
  470. data/spec/mongoid/criteria/queryable/optional_spec.rb +1 -2
  471. data/spec/mongoid/criteria/queryable/options_spec.rb +0 -1
  472. data/spec/mongoid/criteria/queryable/pipeline_spec.rb +0 -1
  473. data/spec/mongoid/criteria/queryable/queryable_spec.rb +1 -2
  474. data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +0 -1
  475. data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +0 -1
  476. data/spec/mongoid/criteria/queryable/selectable_spec.rb +15 -16
  477. data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +0 -1
  478. data/spec/mongoid/criteria/queryable/selector_spec.rb +0 -1
  479. data/spec/mongoid/criteria/queryable/smash_spec.rb +0 -1
  480. data/spec/mongoid/criteria/queryable/storable_spec.rb +37 -1
  481. data/spec/mongoid/criteria/scopable_spec.rb +127 -1
  482. data/spec/mongoid/criteria_projection_spec.rb +3 -4
  483. data/spec/mongoid/criteria_spec.rb +515 -187
  484. data/spec/mongoid/document_fields_spec.rb +0 -1
  485. data/spec/mongoid/document_persistence_context_spec.rb +0 -1
  486. data/spec/mongoid/document_query_spec.rb +0 -1
  487. data/spec/mongoid/document_spec.rb +11 -33
  488. data/spec/mongoid/equality_spec.rb +142 -41
  489. data/spec/mongoid/errors/ambiguous_relationship_spec.rb +0 -1
  490. data/spec/mongoid/errors/callback_spec.rb +0 -1
  491. data/spec/mongoid/errors/delete_restriction_spec.rb +0 -1
  492. data/spec/mongoid/errors/document_not_destroyed_spec.rb +0 -1
  493. data/spec/mongoid/errors/document_not_found_spec.rb +0 -1
  494. data/spec/mongoid/errors/eager_load_spec.rb +0 -1
  495. data/spec/mongoid/errors/invalid_collection_spec.rb +0 -1
  496. data/spec/mongoid/errors/invalid_config_file_spec.rb +0 -1
  497. data/spec/mongoid/errors/invalid_config_option_spec.rb +0 -1
  498. data/spec/mongoid/errors/invalid_field_option_spec.rb +0 -1
  499. data/spec/mongoid/errors/invalid_field_spec.rb +0 -1
  500. data/spec/mongoid/errors/invalid_find_spec.rb +0 -1
  501. data/spec/mongoid/errors/invalid_includes_spec.rb +0 -1
  502. data/spec/mongoid/errors/invalid_index_spec.rb +0 -1
  503. data/spec/mongoid/errors/invalid_options_spec.rb +0 -1
  504. data/spec/mongoid/errors/invalid_path_spec.rb +0 -1
  505. data/spec/mongoid/errors/invalid_relation_spec.rb +0 -1
  506. data/spec/mongoid/errors/invalid_scope_spec.rb +1 -2
  507. data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +0 -1
  508. data/spec/mongoid/errors/invalid_storage_options_spec.rb +0 -1
  509. data/spec/mongoid/errors/invalid_time_spec.rb +0 -1
  510. data/spec/mongoid/errors/inverse_not_found_spec.rb +0 -1
  511. data/spec/mongoid/errors/mixed_client_configuration_spec.rb +0 -1
  512. data/spec/mongoid/errors/mixed_relations_spec.rb +0 -1
  513. data/spec/mongoid/errors/mongoid_error_spec.rb +1 -2
  514. data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +0 -1
  515. data/spec/mongoid/errors/no_client_config_spec.rb +0 -1
  516. data/spec/mongoid/errors/no_client_database_spec.rb +0 -1
  517. data/spec/mongoid/errors/no_client_hosts_spec.rb +0 -1
  518. data/spec/mongoid/errors/no_clients_config_spec.rb +0 -1
  519. data/spec/mongoid/errors/no_environment_spec.rb +0 -1
  520. data/spec/mongoid/errors/no_map_reduce_output_spec.rb +0 -1
  521. data/spec/mongoid/errors/no_metadata_spec.rb +0 -1
  522. data/spec/mongoid/errors/no_parent_spec.rb +0 -1
  523. data/spec/mongoid/errors/readonly_attribute_spec.rb +0 -1
  524. data/spec/mongoid/errors/readonly_document_spec.rb +0 -1
  525. data/spec/mongoid/errors/scope_overwrite_spec.rb +0 -1
  526. data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +0 -1
  527. data/spec/mongoid/errors/unknown_attribute_spec.rb +2 -3
  528. data/spec/mongoid/errors/unsaved_document_spec.rb +0 -1
  529. data/spec/mongoid/errors/unsupported_javascript_spec.rb +0 -1
  530. data/spec/mongoid/errors/validations_spec.rb +0 -1
  531. data/spec/mongoid/extensions/array_spec.rb +0 -1
  532. data/spec/mongoid/extensions/big_decimal_spec.rb +0 -1
  533. data/spec/mongoid/extensions/binary_spec.rb +0 -1
  534. data/spec/mongoid/extensions/boolean_spec.rb +0 -1
  535. data/spec/mongoid/extensions/date_class_mongoize_spec.rb +0 -1
  536. data/spec/mongoid/extensions/date_spec.rb +0 -1
  537. data/spec/mongoid/extensions/date_time_spec.rb +0 -1
  538. data/spec/mongoid/extensions/decimal128_spec.rb +0 -1
  539. data/spec/mongoid/extensions/false_class_spec.rb +0 -1
  540. data/spec/mongoid/extensions/float_spec.rb +0 -1
  541. data/spec/mongoid/extensions/hash_spec.rb +0 -1
  542. data/spec/mongoid/extensions/integer_spec.rb +0 -1
  543. data/spec/mongoid/extensions/module_spec.rb +0 -1
  544. data/spec/mongoid/extensions/nil_class_spec.rb +0 -1
  545. data/spec/mongoid/extensions/object_id_spec.rb +0 -1
  546. data/spec/mongoid/extensions/object_spec.rb +0 -1
  547. data/spec/mongoid/extensions/range_spec.rb +0 -1
  548. data/spec/mongoid/extensions/regexp_spec.rb +0 -1
  549. data/spec/mongoid/extensions/set_spec.rb +0 -1
  550. data/spec/mongoid/extensions/string_spec.rb +2 -3
  551. data/spec/mongoid/extensions/stringified_symbol_spec.rb +0 -1
  552. data/spec/mongoid/extensions/symbol_spec.rb +0 -1
  553. data/spec/mongoid/extensions/time_spec.rb +0 -1
  554. data/spec/mongoid/extensions/time_with_zone_spec.rb +0 -1
  555. data/spec/mongoid/extensions/true_class_spec.rb +0 -1
  556. data/spec/mongoid/extensions_spec.rb +14 -3
  557. data/spec/mongoid/factory_spec.rb +1 -1
  558. data/spec/mongoid/fields/foreign_key_spec.rb +0 -1
  559. data/spec/mongoid/fields/localized_spec.rb +0 -1
  560. data/spec/mongoid/fields/standard_spec.rb +0 -1
  561. data/spec/mongoid/fields_spec.rb +326 -31
  562. data/spec/mongoid/findable_spec.rb +21 -22
  563. data/spec/mongoid/indexable/specification_spec.rb +0 -1
  564. data/spec/mongoid/indexable_spec.rb +0 -1
  565. data/spec/mongoid/inspectable_spec.rb +0 -1
  566. data/spec/mongoid/interceptable_spec.rb +102 -95
  567. data/spec/mongoid/loggable_spec.rb +0 -1
  568. data/spec/mongoid/matcher/extract_attribute_spec.rb +5 -2
  569. data/spec/mongoid/persistable/creatable_spec.rb +2 -3
  570. data/spec/mongoid/persistable/deletable_spec.rb +18 -19
  571. data/spec/mongoid/persistable/destroyable_spec.rb +8 -9
  572. data/spec/mongoid/persistable/incrementable_spec.rb +8 -9
  573. data/spec/mongoid/persistable/logical_spec.rb +4 -5
  574. data/spec/mongoid/persistable/poppable_spec.rb +4 -5
  575. data/spec/mongoid/persistable/pullable_spec.rb +8 -9
  576. data/spec/mongoid/persistable/pushable_spec.rb +8 -9
  577. data/spec/mongoid/persistable/renamable_spec.rb +3 -4
  578. data/spec/mongoid/persistable/savable_spec.rb +15 -11
  579. data/spec/mongoid/persistable/settable_spec.rb +9 -10
  580. data/spec/mongoid/persistable/unsettable_spec.rb +4 -5
  581. data/spec/mongoid/persistable/updatable_spec.rb +41 -24
  582. data/spec/mongoid/persistable/upsertable_spec.rb +1 -2
  583. data/spec/mongoid/persistable_spec.rb +1 -2
  584. data/spec/mongoid/persistence_context_spec.rb +0 -1
  585. data/spec/mongoid/positional_spec.rb +0 -1
  586. data/spec/mongoid/query_cache_middleware_spec.rb +1 -2
  587. data/spec/mongoid/query_cache_spec.rb +30 -8
  588. data/spec/mongoid/relations/proxy_spec.rb +6 -7
  589. data/spec/mongoid/reloadable_spec.rb +209 -23
  590. data/spec/mongoid/scopable_spec.rb +54 -22
  591. data/spec/mongoid/selectable_spec.rb +6 -7
  592. data/spec/mongoid/serializable_spec.rb +9 -10
  593. data/spec/mongoid/shardable_spec.rb +2 -3
  594. data/spec/mongoid/stateful_spec.rb +1 -2
  595. data/spec/mongoid/tasks/database_rake_spec.rb +0 -1
  596. data/spec/mongoid/tasks/database_spec.rb +0 -1
  597. data/spec/mongoid/threaded_spec.rb +2 -3
  598. data/spec/mongoid/timestamps/created/short_spec.rb +1 -2
  599. data/spec/mongoid/timestamps/created_spec.rb +1 -2
  600. data/spec/mongoid/timestamps/timeless_spec.rb +2 -3
  601. data/spec/mongoid/timestamps/updated/short_spec.rb +3 -4
  602. data/spec/mongoid/timestamps/updated_spec.rb +3 -4
  603. data/spec/mongoid/timestamps_spec.rb +6 -7
  604. data/spec/mongoid/touchable_spec.rb +15 -20
  605. data/spec/mongoid/touchable_spec_models.rb +0 -1
  606. data/spec/mongoid/traversable_spec.rb +65 -2
  607. data/spec/mongoid/validatable/associated_spec.rb +0 -1
  608. data/spec/mongoid/validatable/format_spec.rb +0 -1
  609. data/spec/mongoid/validatable/length_spec.rb +0 -1
  610. data/spec/mongoid/validatable/numericality_spec.rb +0 -1
  611. data/spec/mongoid/validatable/presence_spec.rb +26 -23
  612. data/spec/mongoid/validatable/uniqueness_spec.rb +67 -68
  613. data/spec/mongoid/validatable_spec.rb +2 -3
  614. data/spec/mongoid_spec.rb +0 -1
  615. data/spec/rails/controller_extension/controller_runtime_spec.rb +0 -1
  616. data/spec/rails/mongoid_spec.rb +0 -1
  617. data/spec/shared/lib/mrss/constraints.rb +10 -17
  618. data/spec/shared/lib/mrss/docker_runner.rb +23 -3
  619. data/spec/shared/lib/mrss/eg_config_utils.rb +51 -0
  620. data/spec/shared/lib/mrss/event_subscriber.rb +15 -5
  621. data/spec/shared/lib/mrss/lite_constraints.rb +40 -1
  622. data/spec/shared/share/Dockerfile.erb +56 -54
  623. data/spec/shared/shlib/config.sh +27 -0
  624. data/spec/shared/shlib/distro.sh +2 -1
  625. data/spec/shared/shlib/server.sh +46 -21
  626. data/spec/shared/shlib/set_env.sh +43 -5
  627. data/spec/spec_helper.rb +12 -22
  628. data/spec/support/authorization.rb +0 -1
  629. data/spec/support/constraints.rb +0 -1
  630. data/spec/support/expectations.rb +0 -1
  631. data/spec/support/macros.rb +31 -1
  632. data/spec/support/models/account.rb +1 -2
  633. data/spec/support/models/acolyte.rb +0 -1
  634. data/spec/support/models/actor.rb +0 -1
  635. data/spec/support/models/actress.rb +0 -1
  636. data/spec/support/models/address.rb +0 -1
  637. data/spec/support/models/address_component.rb +0 -1
  638. data/spec/support/models/address_number.rb +0 -1
  639. data/spec/support/models/agency.rb +0 -1
  640. data/spec/support/models/agent.rb +0 -1
  641. data/spec/support/models/album.rb +0 -1
  642. data/spec/support/models/alert.rb +0 -1
  643. data/spec/support/models/animal.rb +0 -1
  644. data/spec/support/models/answer.rb +0 -1
  645. data/spec/support/models/appointment.rb +0 -1
  646. data/spec/support/models/armrest.rb +0 -1
  647. data/spec/support/models/array_field.rb +0 -1
  648. data/spec/support/models/article.rb +0 -1
  649. data/spec/support/models/artist.rb +2 -1
  650. data/spec/support/models/artwork.rb +0 -1
  651. data/spec/support/models/audio.rb +0 -1
  652. data/spec/support/models/augmentation.rb +0 -1
  653. data/spec/support/models/author.rb +0 -1
  654. data/spec/support/models/baby.rb +0 -1
  655. data/spec/support/models/band.rb +4 -1
  656. data/spec/support/models/bar.rb +0 -1
  657. data/spec/support/models/basic.rb +0 -1
  658. data/spec/support/models/bed.rb +0 -1
  659. data/spec/support/models/big_palette.rb +0 -1
  660. data/spec/support/models/birthday.rb +0 -1
  661. data/spec/support/models/bolt.rb +0 -1
  662. data/spec/support/models/bomb.rb +0 -1
  663. data/spec/support/models/book.rb +0 -1
  664. data/spec/support/models/breed.rb +0 -1
  665. data/spec/support/models/browser.rb +0 -1
  666. data/spec/support/models/building.rb +0 -1
  667. data/spec/support/models/building_address.rb +0 -1
  668. data/spec/support/models/bus.rb +0 -1
  669. data/spec/support/models/business.rb +0 -1
  670. data/spec/support/models/callback_test.rb +0 -1
  671. data/spec/support/models/canvas.rb +0 -1
  672. data/spec/support/models/car.rb +0 -1
  673. data/spec/support/models/cat.rb +0 -1
  674. data/spec/support/models/category.rb +0 -1
  675. data/spec/support/models/child.rb +0 -1
  676. data/spec/support/models/child_doc.rb +3 -4
  677. data/spec/support/models/church.rb +0 -1
  678. data/spec/support/models/circle.rb +0 -1
  679. data/spec/support/models/circuit.rb +0 -1
  680. data/spec/support/models/circus.rb +0 -1
  681. data/spec/support/models/code.rb +0 -1
  682. data/spec/support/models/coding/pull_request.rb +0 -1
  683. data/spec/support/models/coding.rb +0 -1
  684. data/spec/support/models/comment.rb +0 -1
  685. data/spec/support/models/company.rb +0 -1
  686. data/spec/support/models/consumption_period.rb +0 -1
  687. data/spec/support/models/contextable_item.rb +0 -1
  688. data/spec/support/models/contractor.rb +0 -1
  689. data/spec/support/models/cookie.rb +0 -1
  690. data/spec/support/models/country_code.rb +2 -1
  691. data/spec/support/models/courier_job.rb +0 -1
  692. data/spec/support/models/crate.rb +0 -1
  693. data/spec/support/models/customer.rb +0 -1
  694. data/spec/support/models/customer_address.rb +0 -1
  695. data/spec/support/models/deed.rb +0 -1
  696. data/spec/support/models/definition.rb +0 -1
  697. data/spec/support/models/delegating_patient.rb +0 -1
  698. data/spec/support/models/description.rb +0 -1
  699. data/spec/support/models/dictionary.rb +0 -1
  700. data/spec/support/models/division.rb +0 -1
  701. data/spec/support/models/doctor.rb +0 -1
  702. data/spec/support/models/dog.rb +0 -1
  703. data/spec/support/models/dokument.rb +0 -1
  704. data/spec/support/models/draft.rb +0 -1
  705. data/spec/support/models/dragon.rb +0 -1
  706. data/spec/support/models/driver.rb +0 -1
  707. data/spec/support/models/drug.rb +0 -1
  708. data/spec/support/models/dungeon.rb +0 -1
  709. data/spec/support/models/edit.rb +0 -1
  710. data/spec/support/models/email.rb +0 -1
  711. data/spec/support/models/employer.rb +0 -1
  712. data/spec/support/models/entry.rb +0 -1
  713. data/spec/support/models/eraser.rb +0 -1
  714. data/spec/support/models/even.rb +0 -1
  715. data/spec/support/models/event.rb +0 -1
  716. data/spec/support/models/exhibition.rb +0 -1
  717. data/spec/support/models/exhibitor.rb +0 -1
  718. data/spec/support/models/explosion.rb +0 -1
  719. data/spec/support/models/eye.rb +0 -1
  720. data/spec/support/models/eye_bowl.rb +0 -1
  721. data/spec/support/models/face.rb +0 -1
  722. data/spec/support/models/favorite.rb +0 -1
  723. data/spec/support/models/filesystem.rb +0 -1
  724. data/spec/support/models/fire_hydrant.rb +0 -1
  725. data/spec/support/models/firefox.rb +0 -1
  726. data/spec/support/models/fish.rb +0 -1
  727. data/spec/support/models/folder.rb +0 -1
  728. data/spec/support/models/folder_item.rb +0 -1
  729. data/spec/support/models/fruits.rb +0 -1
  730. data/spec/support/models/game.rb +0 -1
  731. data/spec/support/models/ghost.rb +0 -1
  732. data/spec/support/models/guitar.rb +0 -1
  733. data/spec/support/models/hole.rb +0 -1
  734. data/spec/support/models/home.rb +0 -1
  735. data/spec/support/models/house.rb +0 -1
  736. data/spec/support/models/html_writer.rb +0 -1
  737. data/spec/support/models/id_key.rb +0 -1
  738. data/spec/support/models/idnodef.rb +0 -1
  739. data/spec/support/models/image.rb +0 -1
  740. data/spec/support/models/implant.rb +0 -1
  741. data/spec/support/models/instrument.rb +0 -1
  742. data/spec/support/models/item.rb +0 -1
  743. data/spec/support/models/jar.rb +0 -1
  744. data/spec/support/models/kaleidoscope.rb +0 -1
  745. data/spec/support/models/kangaroo.rb +0 -1
  746. data/spec/support/models/label.rb +2 -2
  747. data/spec/support/models/language.rb +0 -1
  748. data/spec/support/models/lat_lng.rb +0 -1
  749. data/spec/support/models/league.rb +0 -1
  750. data/spec/support/models/learner.rb +0 -1
  751. data/spec/support/models/line_item.rb +0 -1
  752. data/spec/support/models/location.rb +0 -1
  753. data/spec/support/models/login.rb +0 -1
  754. data/spec/support/models/manufacturer.rb +0 -1
  755. data/spec/support/models/meat.rb +0 -1
  756. data/spec/support/models/membership.rb +1 -1
  757. data/spec/support/models/message.rb +0 -1
  758. data/spec/support/models/minim.rb +0 -1
  759. data/spec/support/models/mixed_drink.rb +0 -1
  760. data/spec/support/models/mop.rb +0 -1
  761. data/spec/support/models/movie.rb +0 -1
  762. data/spec/support/models/my_hash.rb +0 -1
  763. data/spec/support/models/name.rb +0 -1
  764. data/spec/support/models/name_only.rb +0 -1
  765. data/spec/support/models/node.rb +0 -1
  766. data/spec/support/models/note.rb +0 -1
  767. data/spec/support/models/nut.rb +0 -1
  768. data/spec/support/models/odd.rb +0 -1
  769. data/spec/support/models/order.rb +2 -1
  770. data/spec/support/models/ordered_post.rb +1 -2
  771. data/spec/support/models/ordered_preference.rb +0 -1
  772. data/spec/support/models/oscar.rb +0 -1
  773. data/spec/support/models/other_owner_object.rb +0 -1
  774. data/spec/support/models/override.rb +0 -1
  775. data/spec/support/models/ownable.rb +0 -1
  776. data/spec/support/models/owner.rb +0 -1
  777. data/spec/support/models/pack.rb +0 -1
  778. data/spec/support/models/page.rb +0 -1
  779. data/spec/support/models/page_question.rb +0 -1
  780. data/spec/support/models/palette.rb +0 -1
  781. data/spec/support/models/parent.rb +0 -1
  782. data/spec/support/models/parent_doc.rb +0 -1
  783. data/spec/support/models/passport.rb +5 -1
  784. data/spec/support/models/patient.rb +0 -1
  785. data/spec/support/models/pdf_writer.rb +0 -1
  786. data/spec/support/models/pencil.rb +0 -1
  787. data/spec/support/models/person.rb +1 -1
  788. data/spec/support/models/pet.rb +0 -1
  789. data/spec/support/models/pet_owner.rb +0 -1
  790. data/spec/support/models/phone.rb +2 -2
  791. data/spec/support/models/piano.rb +0 -1
  792. data/spec/support/models/pizza.rb +0 -1
  793. data/spec/support/models/player.rb +0 -1
  794. data/spec/support/models/post.rb +0 -1
  795. data/spec/support/models/post_genre.rb +0 -1
  796. data/spec/support/models/powerup.rb +0 -1
  797. data/spec/support/models/preference.rb +0 -1
  798. data/spec/support/models/princess.rb +0 -1
  799. data/spec/support/models/product.rb +0 -1
  800. data/spec/support/models/profile.rb +0 -1
  801. data/spec/support/models/pronunciation.rb +0 -1
  802. data/spec/support/models/pub.rb +0 -1
  803. data/spec/support/models/publication/encyclopedia.rb +0 -1
  804. data/spec/support/models/publication/review.rb +0 -1
  805. data/spec/support/models/publication.rb +0 -1
  806. data/spec/support/models/purchase.rb +0 -1
  807. data/spec/support/models/purchased_item.rb +10 -0
  808. data/spec/support/models/question.rb +0 -1
  809. data/spec/support/models/quiz.rb +0 -1
  810. data/spec/support/models/rating.rb +0 -1
  811. data/spec/support/models/record.rb +0 -1
  812. data/spec/support/models/registry.rb +0 -1
  813. data/spec/support/models/role.rb +0 -1
  814. data/spec/support/models/root_category.rb +0 -1
  815. data/spec/support/models/sandwich.rb +0 -1
  816. data/spec/support/models/scheduler.rb +0 -1
  817. data/spec/support/models/scribe.rb +0 -1
  818. data/spec/support/models/sealer.rb +0 -1
  819. data/spec/support/models/seat.rb +0 -1
  820. data/spec/support/models/seo.rb +0 -1
  821. data/spec/support/models/series.rb +0 -1
  822. data/spec/support/models/server.rb +0 -1
  823. data/spec/support/models/service.rb +0 -1
  824. data/spec/support/models/shape.rb +0 -1
  825. data/spec/support/models/shelf.rb +0 -1
  826. data/spec/support/models/shipment_address.rb +0 -1
  827. data/spec/support/models/shipping_container.rb +0 -1
  828. data/spec/support/models/shipping_pack.rb +0 -1
  829. data/spec/support/models/shirt.rb +0 -1
  830. data/spec/support/models/shop.rb +0 -1
  831. data/spec/support/models/short_agent.rb +0 -1
  832. data/spec/support/models/short_quiz.rb +0 -1
  833. data/spec/support/models/simple.rb +0 -1
  834. data/spec/support/models/slave.rb +0 -1
  835. data/spec/support/models/song.rb +0 -1
  836. data/spec/support/models/sound.rb +0 -1
  837. data/spec/support/models/spacer.rb +0 -1
  838. data/spec/support/models/square.rb +0 -1
  839. data/spec/support/models/staff.rb +0 -1
  840. data/spec/support/models/store_as_dup_test1.rb +0 -1
  841. data/spec/support/models/store_as_dup_test2.rb +0 -1
  842. data/spec/support/models/store_as_dup_test3.rb +0 -1
  843. data/spec/support/models/store_as_dup_test4.rb +0 -1
  844. data/spec/support/models/strategy.rb +0 -1
  845. data/spec/support/models/sub_item.rb +0 -1
  846. data/spec/support/models/subscription.rb +0 -1
  847. data/spec/support/models/survey.rb +0 -1
  848. data/spec/support/models/symptom.rb +0 -1
  849. data/spec/support/models/tag.rb +0 -1
  850. data/spec/support/models/target.rb +0 -1
  851. data/spec/support/models/template.rb +0 -1
  852. data/spec/support/models/thing.rb +0 -1
  853. data/spec/support/models/threadlocker.rb +0 -1
  854. data/spec/support/models/title.rb +0 -1
  855. data/spec/support/models/tool.rb +0 -1
  856. data/spec/support/models/topping.rb +0 -1
  857. data/spec/support/models/toy.rb +0 -1
  858. data/spec/support/models/track.rb +0 -1
  859. data/spec/support/models/translation.rb +0 -1
  860. data/spec/support/models/tree.rb +0 -1
  861. data/spec/support/models/truck.rb +0 -1
  862. data/spec/support/models/updatable.rb +0 -1
  863. data/spec/support/models/user.rb +0 -1
  864. data/spec/support/models/user_account.rb +0 -1
  865. data/spec/support/models/validation_callback.rb +0 -1
  866. data/spec/support/models/vehicle.rb +0 -1
  867. data/spec/support/models/version.rb +0 -1
  868. data/spec/support/models/vertex.rb +0 -1
  869. data/spec/support/models/vet_visit.rb +0 -1
  870. data/spec/support/models/video.rb +0 -1
  871. data/spec/support/models/video_game.rb +0 -1
  872. data/spec/support/models/washer.rb +0 -1
  873. data/spec/support/models/weapon.rb +0 -1
  874. data/spec/support/models/wiki_page.rb +0 -1
  875. data/spec/support/models/word.rb +0 -1
  876. data/spec/support/models/word_origin.rb +0 -1
  877. data/spec/support/models/writer.rb +0 -1
  878. data/spec/support/schema_maps/schema_map_aws.json +17 -0
  879. data/spec/support/schema_maps/schema_map_aws_key_alt_names.json +12 -0
  880. data/spec/support/schema_maps/schema_map_azure.json +17 -0
  881. data/spec/support/schema_maps/schema_map_azure_key_alt_names.json +12 -0
  882. data/spec/support/schema_maps/schema_map_gcp.json +17 -0
  883. data/spec/support/schema_maps/schema_map_gcp_key_alt_names.json +12 -0
  884. data/spec/support/schema_maps/schema_map_kmip.json +17 -0
  885. data/spec/support/schema_maps/schema_map_kmip_key_alt_names.json +12 -0
  886. data/spec/support/schema_maps/schema_map_local.json +18 -0
  887. data/spec/support/schema_maps/schema_map_local_key_alt_names.json +12 -0
  888. data/spec/support/shared/time.rb +0 -1
  889. data/spec/support/spec_config.rb +7 -1
  890. data.tar.gz.sig +0 -0
  891. metadata +51 -12
  892. metadata.gz.sig +0 -0
  893. data/lib/support/ruby_version.rb +0 -29
@@ -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,7 +2236,7 @@ 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
2242
  let!(:post1) { person.posts.create!(title: "Testing") }
@@ -2241,12 +2266,12 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2241
2266
  context "when conditions are not provided" do
2242
2267
 
2243
2268
  let(:person) do
2244
- Person.create
2269
+ Person.create!
2245
2270
  end
2246
2271
 
2247
2272
  before do
2248
- person.posts.create(title: "Testing")
2249
- person.posts.create(title: "Test")
2273
+ person.posts.create!(title: "Testing")
2274
+ person.posts.create!(title: "Test")
2250
2275
  end
2251
2276
 
2252
2277
  it "removes the correct posts" do
@@ -2275,7 +2300,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2275
2300
  context "when conditions are provided" do
2276
2301
 
2277
2302
  let(:movie) do
2278
- Movie.create(title: "Bladerunner")
2303
+ Movie.create!(title: "Bladerunner")
2279
2304
  end
2280
2305
 
2281
2306
  let!(:rating1) { movie.ratings.create!(value: 1) }
@@ -2304,12 +2329,12 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2304
2329
  context "when conditions are not provided" do
2305
2330
 
2306
2331
  let(:movie) do
2307
- Movie.create(title: "Bladerunner")
2332
+ Movie.create!(title: "Bladerunner")
2308
2333
  end
2309
2334
 
2310
2335
  before do
2311
- movie.ratings.create(value: 1)
2312
- movie.ratings.create(value: 2)
2336
+ movie.ratings.create!(value: 1)
2337
+ movie.ratings.create!(value: 2)
2313
2338
  end
2314
2339
 
2315
2340
  it "removes the correct ratings" do
@@ -2345,13 +2370,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2345
2370
  describe "#exists?" do
2346
2371
 
2347
2372
  let!(:person) do
2348
- Person.create
2373
+ Person.create!
2349
2374
  end
2350
2375
 
2351
2376
  context "when documents exist in the database" do
2352
2377
 
2353
2378
  before do
2354
- person.posts.create
2379
+ person.posts.create!
2355
2380
  end
2356
2381
 
2357
2382
  it "returns true" do
@@ -2482,15 +2507,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2482
2507
  context "when the association is not polymorphic" do
2483
2508
 
2484
2509
  let(:person) do
2485
- Person.create
2510
+ Person.create!
2486
2511
  end
2487
2512
 
2488
2513
  let!(:post_one) do
2489
- person.posts.create(title: "Test")
2514
+ person.posts.create!(title: "Test")
2490
2515
  end
2491
2516
 
2492
2517
  let!(:post_two) do
2493
- person.posts.create(title: "OMG I has associations")
2518
+ person.posts.create!(title: "OMG I has associations")
2494
2519
  end
2495
2520
 
2496
2521
  context "when providing an id" do
@@ -2509,7 +2534,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2509
2534
  context "when the id matches but is not scoped to the association" do
2510
2535
 
2511
2536
  let(:post) do
2512
- Post.create(title: "Unscoped")
2537
+ Post.create!(title: "Unscoped")
2513
2538
  end
2514
2539
 
2515
2540
  it "raises an error" do
@@ -2608,15 +2633,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2608
2633
  context "when the association is polymorphic" do
2609
2634
 
2610
2635
  let(:movie) do
2611
- Movie.create
2636
+ Movie.create!
2612
2637
  end
2613
2638
 
2614
2639
  let!(:rating_one) do
2615
- movie.ratings.create(value: 1)
2640
+ movie.ratings.create!(value: 1)
2616
2641
  end
2617
2642
 
2618
2643
  let!(:rating_two) do
2619
- movie.ratings.create(value: 5)
2644
+ movie.ratings.create!(value: 5)
2620
2645
  end
2621
2646
 
2622
2647
  context "when providing an id" do
@@ -2725,6 +2750,44 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2725
2750
  end
2726
2751
  end
2727
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
2728
2791
  end
2729
2792
 
2730
2793
  describe "#find_or_create_by" do
@@ -2732,11 +2795,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2732
2795
  context "when the association is not polymorphic" do
2733
2796
 
2734
2797
  let(:person) do
2735
- Person.create
2798
+ Person.create!
2736
2799
  end
2737
2800
 
2738
2801
  let!(:post) do
2739
- person.posts.create(title: "Testing")
2802
+ person.posts.create!(title: "Testing")
2740
2803
  end
2741
2804
 
2742
2805
  context "when the document exists" do
@@ -2805,11 +2868,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2805
2868
  context "when the association is polymorphic" do
2806
2869
 
2807
2870
  let(:movie) do
2808
- Movie.create
2871
+ Movie.create!
2809
2872
  end
2810
2873
 
2811
2874
  let!(:rating) do
2812
- movie.ratings.create(value: 1)
2875
+ movie.ratings.create!(value: 1)
2813
2876
  end
2814
2877
 
2815
2878
  context "when the document exists" do
@@ -2853,11 +2916,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2853
2916
  context "when the association is not polymorphic" do
2854
2917
 
2855
2918
  let(:person) do
2856
- Person.create
2919
+ Person.create!
2857
2920
  end
2858
2921
 
2859
2922
  let!(:post) do
2860
- person.posts.create(title: "Testing")
2923
+ person.posts.create!(title: "Testing")
2861
2924
  end
2862
2925
 
2863
2926
  context "when the document exists" do
@@ -2926,11 +2989,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2926
2989
  context "when the association is polymorphic" do
2927
2990
 
2928
2991
  let(:movie) do
2929
- Movie.create
2992
+ Movie.create!
2930
2993
  end
2931
2994
 
2932
2995
  let!(:rating) do
2933
- movie.ratings.create(value: 1)
2996
+ movie.ratings.create!(value: 1)
2934
2997
  end
2935
2998
 
2936
2999
  context "when the document exists" do
@@ -2983,11 +3046,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
2983
3046
  context "when the association is not polymorphic" do
2984
3047
 
2985
3048
  let(:person) do
2986
- Person.create
3049
+ Person.create!
2987
3050
  end
2988
3051
 
2989
3052
  let!(:post) do
2990
- person.posts.create(title: "Testing")
3053
+ person.posts.create!(title: "Testing")
2991
3054
  end
2992
3055
 
2993
3056
  context "when the document exists" do
@@ -3026,11 +3089,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3026
3089
  context "when the association is polymorphic" do
3027
3090
 
3028
3091
  let(:movie) do
3029
- Movie.create
3092
+ Movie.create!
3030
3093
  end
3031
3094
 
3032
3095
  let!(:rating) do
3033
- movie.ratings.create(value: 1)
3096
+ movie.ratings.create!(value: 1)
3034
3097
  end
3035
3098
 
3036
3099
  context "when the document exists" do
@@ -3120,15 +3183,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3120
3183
  describe "#max" do
3121
3184
 
3122
3185
  let(:person) do
3123
- Person.create
3186
+ Person.create!
3124
3187
  end
3125
3188
 
3126
3189
  let(:post_one) do
3127
- Post.create(rating: 5)
3190
+ Post.create!(rating: 5)
3128
3191
  end
3129
3192
 
3130
3193
  let(:post_two) do
3131
- Post.create(rating: 10)
3194
+ Post.create!(rating: 10)
3132
3195
  end
3133
3196
 
3134
3197
  before do
@@ -3149,15 +3212,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3149
3212
  describe "#max_by" do
3150
3213
 
3151
3214
  let(:person) do
3152
- Person.create
3215
+ Person.create!
3153
3216
  end
3154
3217
 
3155
3218
  let(:post_one) do
3156
- Post.create(rating: 5)
3219
+ Post.create!(rating: 5)
3157
3220
  end
3158
3221
 
3159
3222
  let(:post_two) do
3160
- Post.create(rating: 10)
3223
+ Post.create!(rating: 10)
3161
3224
  end
3162
3225
 
3163
3226
  before do
@@ -3176,15 +3239,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3176
3239
  describe "#method_missing" do
3177
3240
 
3178
3241
  let!(:person) do
3179
- Person.create
3242
+ Person.create!
3180
3243
  end
3181
3244
 
3182
3245
  let!(:post_one) do
3183
- person.posts.create(title: "First", content: "Posting")
3246
+ person.posts.create!(title: "First", content: "Posting")
3184
3247
  end
3185
3248
 
3186
3249
  let!(:post_two) do
3187
- person.posts.create(title: "Second", content: "Testing")
3250
+ person.posts.create!(title: "Second", content: "Testing")
3188
3251
  end
3189
3252
 
3190
3253
  context "when providing a single criteria" do
@@ -3251,15 +3314,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3251
3314
  describe "#min" do
3252
3315
 
3253
3316
  let(:person) do
3254
- Person.create
3317
+ Person.create!
3255
3318
  end
3256
3319
 
3257
3320
  let(:post_one) do
3258
- Post.create(rating: 5)
3321
+ Post.create!(rating: 5)
3259
3322
  end
3260
3323
 
3261
3324
  let(:post_two) do
3262
- Post.create(rating: 10)
3325
+ Post.create!(rating: 10)
3263
3326
  end
3264
3327
 
3265
3328
  before do
@@ -3280,15 +3343,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3280
3343
  describe "#min_by" do
3281
3344
 
3282
3345
  let(:person) do
3283
- Person.create
3346
+ Person.create!
3284
3347
  end
3285
3348
 
3286
3349
  let(:post_one) do
3287
- Post.create(rating: 5)
3350
+ Post.create!(rating: 5)
3288
3351
  end
3289
3352
 
3290
3353
  let(:post_two) do
3291
- Post.create(rating: 10)
3354
+ Post.create!(rating: 10)
3292
3355
  end
3293
3356
 
3294
3357
  before do
@@ -3309,15 +3372,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3309
3372
  context "when the inverse has not been loaded" do
3310
3373
 
3311
3374
  let(:person) do
3312
- Person.create
3375
+ Person.create!
3313
3376
  end
3314
3377
 
3315
3378
  let!(:post_one) do
3316
- person.posts.create(title: "One")
3379
+ person.posts.create!(title: "One")
3317
3380
  end
3318
3381
 
3319
3382
  let!(:post_two) do
3320
- person.posts.create(title: "Two")
3383
+ person.posts.create!(title: "Two")
3321
3384
  end
3322
3385
 
3323
3386
  let(:from_db) do
@@ -3346,15 +3409,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3346
3409
  context "when the association is not polymorphic" do
3347
3410
 
3348
3411
  let(:person) do
3349
- Person.create
3412
+ Person.create!
3350
3413
  end
3351
3414
 
3352
3415
  let!(:post_one) do
3353
- person.posts.create(title: "One")
3416
+ person.posts.create!(title: "One")
3354
3417
  end
3355
3418
 
3356
3419
  let!(:post_two) do
3357
- person.posts.create(title: "Two")
3420
+ person.posts.create!(title: "Two")
3358
3421
  end
3359
3422
 
3360
3423
  before do
@@ -3392,15 +3455,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3392
3455
  context "when the association is polymorphic" do
3393
3456
 
3394
3457
  let(:movie) do
3395
- Movie.create(title: "Oldboy")
3458
+ Movie.create!(title: "Oldboy")
3396
3459
  end
3397
3460
 
3398
3461
  let!(:rating_one) do
3399
- movie.ratings.create(value: 10)
3462
+ movie.ratings.create!(value: 10)
3400
3463
  end
3401
3464
 
3402
3465
  let!(:rating_two) do
3403
- movie.ratings.create(value: 9)
3466
+ movie.ratings.create!(value: 9)
3404
3467
  end
3405
3468
 
3406
3469
  before do
@@ -3486,13 +3549,13 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3486
3549
  describe "##{method}" do
3487
3550
 
3488
3551
  let(:movie) do
3489
- Movie.create
3552
+ Movie.create!
3490
3553
  end
3491
3554
 
3492
3555
  context "when documents have been persisted" do
3493
3556
 
3494
3557
  let!(:rating) do
3495
- movie.ratings.create(value: 1)
3558
+ movie.ratings.create!(value: 1)
3496
3559
  end
3497
3560
 
3498
3561
  it "returns 1" do
@@ -3504,7 +3567,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3504
3567
 
3505
3568
  before do
3506
3569
  movie.ratings.build(value: 1)
3507
- movie.ratings.create(value: 2)
3570
+ movie.ratings.create!(value: 2)
3508
3571
  end
3509
3572
 
3510
3573
  it "returns the total number of documents" do
@@ -3519,15 +3582,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3519
3582
  context "when the association has no default scope" do
3520
3583
 
3521
3584
  let!(:person) do
3522
- Person.create
3585
+ Person.create!
3523
3586
  end
3524
3587
 
3525
3588
  let!(:post_one) do
3526
- person.posts.create(title: "first")
3589
+ person.posts.create!(title: "first")
3527
3590
  end
3528
3591
 
3529
3592
  let!(:post_two) do
3530
- Post.create(title: "second")
3593
+ Post.create!(title: "second")
3531
3594
  end
3532
3595
 
3533
3596
  let(:unscoped) do
@@ -3542,15 +3605,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3542
3605
  context "when the association has a default scope" do
3543
3606
 
3544
3607
  let!(:church) do
3545
- Church.create
3608
+ Church.create!
3546
3609
  end
3547
3610
 
3548
3611
  let!(:acolyte_one) do
3549
- church.acolytes.create(name: "first")
3612
+ church.acolytes.create!(name: "first")
3550
3613
  end
3551
3614
 
3552
3615
  let!(:acolyte_two) do
3553
- Acolyte.create(name: "second")
3616
+ Acolyte.create!(name: "second")
3554
3617
  end
3555
3618
 
3556
3619
  let(:unscoped) do
@@ -3570,19 +3633,19 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3570
3633
  context "when the association has an order defined" do
3571
3634
 
3572
3635
  let(:person) do
3573
- Person.create
3636
+ Person.create!
3574
3637
  end
3575
3638
 
3576
3639
  let(:post_one) do
3577
- OrderedPost.create(rating: 10, title: '1')
3640
+ OrderedPost.create!(rating: 10, title: '1')
3578
3641
  end
3579
3642
 
3580
3643
  let(:post_two) do
3581
- OrderedPost.create(rating: 20, title: '2')
3644
+ OrderedPost.create!(rating: 20, title: '2')
3582
3645
  end
3583
3646
 
3584
3647
  let(:post_three) do
3585
- OrderedPost.create(rating: 20, title: '3')
3648
+ OrderedPost.create!(rating: 20, title: '3')
3586
3649
  end
3587
3650
 
3588
3651
  before do
@@ -3596,7 +3659,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3596
3659
  )
3597
3660
  end
3598
3661
 
3599
- it "chaining order criterias" do
3662
+ it "chaining order criteria" do
3600
3663
  expect(person.ordered_posts.order_by(:title.desc).to_a).to eq(
3601
3664
  [post_three, post_two, post_one]
3602
3665
  )
@@ -3606,15 +3669,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3606
3669
  context "when reloading the association" do
3607
3670
 
3608
3671
  let!(:person) do
3609
- Person.create
3672
+ Person.create!
3610
3673
  end
3611
3674
 
3612
3675
  let!(:post_one) do
3613
- Post.create(title: "one")
3676
+ Post.create!(title: "one")
3614
3677
  end
3615
3678
 
3616
3679
  let!(:post_two) do
3617
- Post.create(title: "two")
3680
+ Post.create!(title: "two")
3618
3681
  end
3619
3682
 
3620
3683
  before do
@@ -3660,7 +3723,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3660
3723
  context "when the parent is using integer ids" do
3661
3724
 
3662
3725
  let(:jar) do
3663
- Jar.create do |doc|
3726
+ Jar.create! do |doc|
3664
3727
  doc._id = 1
3665
3728
  end
3666
3729
  end
@@ -3773,8 +3836,8 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3773
3836
 
3774
3837
  before do
3775
3838
  artist.albums << album
3776
- album.save
3777
- artist.save
3839
+ album.save!
3840
+ artist.save!
3778
3841
  expect(artist).not_to receive(:after_add_album)
3779
3842
  end
3780
3843
 
@@ -3938,15 +4001,15 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3938
4001
  context "when executing a criteria call on an ordered association" do
3939
4002
 
3940
4003
  let(:person) do
3941
- Person.create
4004
+ Person.create!
3942
4005
  end
3943
4006
 
3944
4007
  let!(:post_one) do
3945
- person.ordered_posts.create(rating: 1)
4008
+ person.ordered_posts.create!(rating: 1)
3946
4009
  end
3947
4010
 
3948
4011
  let!(:post_two) do
3949
- person.ordered_posts.create(rating: 5)
4012
+ person.ordered_posts.create!(rating: 5)
3950
4013
  end
3951
4014
 
3952
4015
  let(:criteria) do
@@ -3961,11 +4024,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3961
4024
  context "when accessing a scope named open" do
3962
4025
 
3963
4026
  let(:person) do
3964
- Person.create
4027
+ Person.create!
3965
4028
  end
3966
4029
 
3967
4030
  let!(:post) do
3968
- person.posts.create(title: "open")
4031
+ person.posts.create!(title: "open")
3969
4032
  end
3970
4033
 
3971
4034
  it "returns the appropriate documents" do
@@ -3976,11 +4039,11 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
3976
4039
  context "when accessing a association named parent" do
3977
4040
 
3978
4041
  let!(:parent) do
3979
- Odd.create(name: "odd parent")
4042
+ Odd.create!(name: "odd parent")
3980
4043
  end
3981
4044
 
3982
4045
  let(:child) do
3983
- Even.create(parent_id: parent.id, name: "original even child")
4046
+ Even.create!(parent_id: parent.id, name: "original even child")
3984
4047
  end
3985
4048
 
3986
4049
  it "updates the child after accessing the parent" do
@@ -4017,7 +4080,7 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
4017
4080
  end
4018
4081
 
4019
4082
  it 'saves the document correctly' do
4020
- expect(agent.save).to be(true)
4083
+ expect(agent.save!).to be(true)
4021
4084
  end
4022
4085
  end
4023
4086
 
@@ -4033,8 +4096,8 @@ describe Mongoid::Association::Referenced::HasMany::Proxy do
4033
4096
 
4034
4097
  before do
4035
4098
  agent.same_name = band
4036
- agent.save
4037
- band.save
4099
+ agent.save!
4100
+ band.save!
4038
4101
  band.reload
4039
4102
  end
4040
4103