mongoid 6.4.8 → 7.5.4
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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +30 -30
- data/LICENSE +1 -0
- data/README.md +34 -20
- data/Rakefile +75 -6
- data/lib/config/locales/en.yml +149 -66
- data/lib/mongoid/association/accessors.rb +402 -0
- data/lib/mongoid/association/bindable.rb +179 -0
- data/lib/mongoid/association/builders.rb +84 -0
- data/lib/mongoid/association/constrainable.rb +43 -0
- data/lib/mongoid/association/depending.rb +128 -0
- data/lib/mongoid/association/eager_loadable.rb +35 -0
- data/lib/mongoid/association/embedded/batchable.rb +375 -0
- data/lib/mongoid/association/embedded/cyclic.rb +102 -0
- data/lib/mongoid/association/embedded/embedded_in/binding.rb +52 -0
- data/lib/mongoid/association/embedded/embedded_in/buildable.rb +38 -0
- data/lib/mongoid/association/embedded/embedded_in/proxy.rb +111 -0
- data/lib/mongoid/association/embedded/embedded_in.rb +134 -0
- data/lib/mongoid/association/embedded/embeds_many/binding.rb +41 -0
- data/lib/mongoid/association/embedded/embeds_many/buildable.rb +45 -0
- data/lib/mongoid/association/embedded/embeds_many/proxy.rb +549 -0
- data/lib/mongoid/association/embedded/embeds_many.rb +183 -0
- data/lib/mongoid/association/embedded/embeds_one/binding.rb +43 -0
- data/lib/mongoid/association/embedded/embeds_one/buildable.rb +39 -0
- data/lib/mongoid/association/embedded/embeds_one/proxy.rb +145 -0
- data/lib/mongoid/association/embedded/embeds_one.rb +150 -0
- data/lib/mongoid/association/embedded.rb +6 -0
- data/lib/mongoid/association/macros.rb +227 -0
- data/lib/mongoid/association/many.rb +198 -0
- data/lib/mongoid/association/marshalable.rb +31 -0
- data/lib/mongoid/association/nested/many.rb +191 -0
- data/lib/mongoid/association/nested/nested_buildable.rb +66 -0
- data/lib/mongoid/association/nested/one.rb +116 -0
- data/lib/mongoid/association/nested.rb +15 -0
- data/lib/mongoid/association/one.rb +53 -0
- data/lib/mongoid/association/options.rb +122 -0
- data/lib/mongoid/association/proxy.rb +189 -0
- data/lib/mongoid/association/referenced/auto_save.rb +73 -0
- data/lib/mongoid/association/referenced/belongs_to/binding.rb +82 -0
- data/lib/mongoid/association/referenced/belongs_to/buildable.rb +48 -0
- data/lib/mongoid/association/referenced/belongs_to/eager.rb +73 -0
- data/lib/mongoid/association/referenced/belongs_to/proxy.rb +125 -0
- data/lib/mongoid/association/referenced/belongs_to.rb +226 -0
- data/lib/mongoid/association/referenced/counter_cache.rb +152 -0
- data/lib/mongoid/association/referenced/eager.rb +163 -0
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/binding.rb +72 -0
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/buildable.rb +40 -0
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/eager.rb +53 -0
- data/lib/mongoid/association/referenced/has_and_belongs_to_many/proxy.rb +292 -0
- data/lib/mongoid/association/referenced/has_and_belongs_to_many.rb +270 -0
- data/lib/mongoid/association/referenced/has_many/binding.rb +36 -0
- data/lib/mongoid/association/referenced/has_many/buildable.rb +38 -0
- data/lib/mongoid/association/referenced/has_many/eager.rb +44 -0
- data/lib/mongoid/association/referenced/has_many/enumerable.rb +502 -0
- data/lib/mongoid/association/referenced/has_many/proxy.rb +545 -0
- data/lib/mongoid/association/referenced/has_many.rb +251 -0
- data/lib/mongoid/association/referenced/has_one/binding.rb +42 -0
- data/lib/mongoid/association/referenced/has_one/buildable.rb +74 -0
- data/lib/mongoid/association/referenced/has_one/eager.rb +36 -0
- data/lib/mongoid/association/referenced/has_one/nested_builder.rb +113 -0
- data/lib/mongoid/association/referenced/has_one/proxy.rb +111 -0
- data/lib/mongoid/association/referenced/has_one.rb +184 -0
- data/lib/mongoid/association/referenced/syncable.rb +155 -0
- data/lib/mongoid/association/referenced.rb +9 -0
- data/lib/mongoid/association/reflections.rb +69 -0
- data/lib/mongoid/association/relatable.rb +455 -0
- data/lib/mongoid/association.rb +135 -0
- data/lib/mongoid/atomic/modifiers.rb +27 -51
- data/lib/mongoid/atomic/paths/embedded/many.rb +24 -8
- data/lib/mongoid/atomic/paths/embedded/one.rb +5 -8
- data/lib/mongoid/atomic/paths/embedded.rb +3 -4
- data/lib/mongoid/atomic/paths/root.rb +4 -7
- data/lib/mongoid/atomic/paths.rb +2 -1
- data/lib/mongoid/atomic.rb +43 -48
- data/lib/mongoid/attributes/dynamic.rb +19 -33
- data/lib/mongoid/attributes/nested.rb +29 -21
- data/lib/mongoid/attributes/processing.rb +11 -26
- data/lib/mongoid/attributes/projector.rb +119 -0
- data/lib/mongoid/attributes/readonly.rb +5 -10
- data/lib/mongoid/attributes.rb +94 -91
- data/lib/mongoid/cacheable.rb +7 -10
- data/lib/mongoid/changeable.rb +7 -61
- data/lib/mongoid/clients/factory.rb +42 -17
- data/lib/mongoid/clients/options.rb +17 -18
- data/lib/mongoid/clients/sessions.rb +22 -10
- data/lib/mongoid/clients/storage_options.rb +7 -12
- data/lib/mongoid/clients/validators/storage.rb +2 -9
- data/lib/mongoid/clients/validators.rb +2 -1
- data/lib/mongoid/clients.rb +3 -10
- data/lib/mongoid/composable.rb +9 -13
- data/lib/mongoid/config/environment.rb +51 -13
- data/lib/mongoid/config/options.rb +20 -23
- data/lib/mongoid/config/validators/client.rb +2 -17
- data/lib/mongoid/config/validators/option.rb +2 -3
- data/lib/mongoid/config/validators.rb +2 -1
- data/lib/mongoid/config.rb +123 -40
- data/lib/mongoid/contextual/aggregable/memory.rb +17 -12
- data/lib/mongoid/contextual/aggregable/mongo.rb +25 -26
- data/lib/mongoid/contextual/aggregable/none.rb +65 -0
- data/lib/mongoid/contextual/aggregable.rb +17 -0
- data/lib/mongoid/contextual/atomic.rb +29 -31
- data/lib/mongoid/contextual/command.rb +2 -5
- data/lib/mongoid/contextual/geo_near.rb +7 -38
- data/lib/mongoid/contextual/map_reduce.rb +5 -33
- data/lib/mongoid/contextual/memory.rb +167 -70
- data/lib/mongoid/contextual/mongo.rb +295 -106
- data/lib/mongoid/contextual/none.rb +88 -28
- data/lib/mongoid/contextual/queryable.rb +2 -3
- data/lib/mongoid/contextual.rb +7 -9
- data/lib/mongoid/copyable.rb +20 -14
- data/lib/mongoid/criteria/findable.rb +12 -15
- data/lib/mongoid/criteria/includable.rb +21 -28
- data/lib/mongoid/criteria/inspectable.rb +2 -3
- data/lib/mongoid/criteria/marshalable.rb +2 -5
- data/lib/mongoid/criteria/modifiable.rb +10 -22
- data/lib/mongoid/criteria/options.rb +4 -5
- data/lib/mongoid/criteria/permission.rb +2 -1
- data/lib/mongoid/criteria/queryable/aggregable.rb +2 -13
- data/lib/mongoid/criteria/queryable/expandable.rb +68 -0
- data/lib/mongoid/criteria/queryable/extensions/array.rb +5 -26
- data/lib/mongoid/criteria/queryable/extensions/big_decimal.rb +3 -4
- data/lib/mongoid/criteria/queryable/extensions/boolean.rb +3 -4
- data/lib/mongoid/criteria/queryable/extensions/date.rb +3 -8
- data/lib/mongoid/criteria/queryable/extensions/date_time.rb +5 -11
- data/lib/mongoid/criteria/queryable/extensions/hash.rb +4 -25
- data/lib/mongoid/criteria/queryable/extensions/nil_class.rb +3 -14
- data/lib/mongoid/criteria/queryable/extensions/numeric.rb +4 -13
- data/lib/mongoid/criteria/queryable/extensions/object.rb +4 -29
- data/lib/mongoid/criteria/queryable/extensions/range.rb +41 -17
- data/lib/mongoid/criteria/queryable/extensions/regexp.rb +9 -16
- data/lib/mongoid/criteria/queryable/extensions/set.rb +3 -4
- data/lib/mongoid/criteria/queryable/extensions/string.rb +4 -19
- data/lib/mongoid/criteria/queryable/extensions/symbol.rb +3 -10
- data/lib/mongoid/criteria/queryable/extensions/time.rb +4 -9
- data/lib/mongoid/criteria/queryable/extensions/time_with_zone.rb +13 -6
- data/lib/mongoid/criteria/queryable/extensions.rb +1 -4
- data/lib/mongoid/criteria/queryable/key.rb +101 -27
- data/lib/mongoid/criteria/queryable/macroable.rb +3 -4
- data/lib/mongoid/criteria/queryable/mergeable.rb +205 -44
- data/lib/mongoid/criteria/queryable/optional.rb +5 -48
- data/lib/mongoid/criteria/queryable/options.rb +2 -19
- data/lib/mongoid/criteria/queryable/pipeline.rb +14 -19
- data/lib/mongoid/criteria/queryable/selectable.rb +436 -166
- data/lib/mongoid/criteria/queryable/selector.rb +45 -55
- data/lib/mongoid/criteria/queryable/smash.rb +2 -11
- data/lib/mongoid/criteria/queryable/storable.rb +237 -0
- data/lib/mongoid/criteria/queryable.rb +7 -9
- data/lib/mongoid/criteria/scopable.rb +27 -19
- data/lib/mongoid/criteria.rb +90 -75
- data/lib/mongoid/document.rb +43 -74
- data/lib/mongoid/equality.rb +29 -12
- data/lib/mongoid/errors/ambiguous_relationship.rb +4 -5
- data/lib/mongoid/errors/callback.rb +2 -3
- data/lib/mongoid/errors/criteria_argument_required.rb +18 -0
- data/lib/mongoid/errors/delete_restriction.rb +10 -13
- data/lib/mongoid/errors/document_not_destroyed.rb +4 -7
- data/lib/mongoid/errors/document_not_found.rb +25 -15
- data/lib/mongoid/errors/eager_load.rb +6 -5
- data/lib/mongoid/errors/empty_config_file.rb +25 -0
- data/lib/mongoid/errors/in_memory_collation_not_supported.rb +2 -3
- data/lib/mongoid/errors/invalid_collection.rb +2 -1
- data/lib/mongoid/errors/invalid_config_file.rb +25 -0
- data/lib/mongoid/errors/invalid_config_option.rb +2 -3
- data/lib/mongoid/errors/invalid_dependent_strategy.rb +31 -0
- data/lib/mongoid/errors/invalid_discriminator_key_target.rb +24 -0
- data/lib/mongoid/errors/invalid_elem_match_operator.rb +32 -0
- data/lib/mongoid/errors/invalid_estimated_count_criteria.rb +25 -0
- data/lib/mongoid/errors/invalid_expression_operator.rb +27 -0
- data/lib/mongoid/errors/invalid_field.rb +2 -5
- data/lib/mongoid/errors/invalid_field_operator.rb +32 -0
- data/lib/mongoid/errors/invalid_field_option.rb +2 -3
- data/lib/mongoid/errors/invalid_find.rb +2 -3
- data/lib/mongoid/errors/invalid_includes.rb +2 -3
- data/lib/mongoid/errors/invalid_index.rb +2 -3
- data/lib/mongoid/errors/invalid_options.rb +4 -5
- data/lib/mongoid/errors/invalid_path.rb +2 -3
- data/lib/mongoid/errors/invalid_persistence_option.rb +2 -5
- data/lib/mongoid/errors/invalid_query.rb +40 -0
- data/lib/mongoid/errors/invalid_relation.rb +4 -9
- data/lib/mongoid/errors/invalid_relation_option.rb +28 -0
- data/lib/mongoid/errors/invalid_scope.rb +2 -3
- data/lib/mongoid/errors/invalid_session_use.rb +3 -6
- data/lib/mongoid/errors/invalid_set_polymorphic_relation.rb +6 -5
- data/lib/mongoid/errors/invalid_storage_options.rb +2 -3
- data/lib/mongoid/errors/invalid_storage_parent.rb +2 -3
- data/lib/mongoid/errors/invalid_time.rb +2 -3
- data/lib/mongoid/errors/invalid_value.rb +2 -1
- data/lib/mongoid/errors/inverse_not_found.rb +3 -4
- data/lib/mongoid/errors/mixed_client_configuration.rb +2 -3
- data/lib/mongoid/errors/mixed_relations.rb +2 -3
- data/lib/mongoid/errors/mongoid_error.rb +3 -10
- data/lib/mongoid/errors/nested_attributes_metadata_not_found.rb +3 -4
- data/lib/mongoid/errors/no_client_config.rb +4 -5
- data/lib/mongoid/errors/no_client_database.rb +2 -3
- data/lib/mongoid/errors/no_client_hosts.rb +2 -3
- data/lib/mongoid/errors/no_clients_config.rb +2 -3
- data/lib/mongoid/errors/no_default_client.rb +3 -4
- data/lib/mongoid/errors/no_environment.rb +2 -3
- data/lib/mongoid/errors/no_map_reduce_output.rb +2 -3
- data/lib/mongoid/errors/no_metadata.rb +2 -3
- data/lib/mongoid/errors/no_parent.rb +2 -3
- data/lib/mongoid/errors/readonly_attribute.rb +2 -3
- data/lib/mongoid/errors/readonly_document.rb +3 -6
- data/lib/mongoid/errors/scope_overwrite.rb +2 -1
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +2 -0
- data/lib/mongoid/errors/unknown_attribute.rb +2 -3
- data/lib/mongoid/errors/unknown_model.rb +24 -0
- data/lib/mongoid/errors/unsaved_document.rb +3 -2
- data/lib/mongoid/errors/unsupported_javascript.rb +2 -3
- data/lib/mongoid/errors/validations.rb +2 -1
- data/lib/mongoid/errors.rb +15 -1
- data/lib/mongoid/evolvable.rb +4 -5
- data/lib/mongoid/extensions/array.rb +33 -42
- data/lib/mongoid/extensions/big_decimal.rb +2 -11
- data/lib/mongoid/extensions/boolean.rb +3 -5
- data/lib/mongoid/extensions/date.rb +13 -12
- data/lib/mongoid/extensions/date_time.rb +4 -12
- data/lib/mongoid/extensions/decimal128.rb +2 -5
- data/lib/mongoid/extensions/false_class.rb +4 -7
- data/lib/mongoid/extensions/float.rb +5 -10
- data/lib/mongoid/extensions/hash.rb +56 -38
- data/lib/mongoid/extensions/integer.rb +5 -12
- data/lib/mongoid/extensions/module.rb +2 -3
- data/lib/mongoid/extensions/nil_class.rb +2 -5
- data/lib/mongoid/extensions/object.rb +21 -48
- data/lib/mongoid/extensions/object_id.rb +2 -7
- data/lib/mongoid/extensions/range.rb +3 -11
- data/lib/mongoid/extensions/regexp.rb +3 -4
- data/lib/mongoid/extensions/set.rb +2 -7
- data/lib/mongoid/extensions/string.rb +21 -41
- data/lib/mongoid/extensions/symbol.rb +2 -7
- data/lib/mongoid/extensions/time.rb +12 -9
- data/lib/mongoid/extensions/time_with_zone.rb +25 -7
- data/lib/mongoid/extensions/true_class.rb +4 -7
- data/lib/mongoid/extensions.rb +18 -7
- data/lib/mongoid/factory.rb +59 -10
- data/lib/mongoid/fields/foreign_key.rb +8 -27
- data/lib/mongoid/fields/localized.rb +2 -11
- data/lib/mongoid/fields/standard.rb +8 -50
- data/lib/mongoid/fields/validators/macro.rb +37 -19
- data/lib/mongoid/fields/validators.rb +2 -1
- data/lib/mongoid/fields.rb +245 -70
- data/lib/mongoid/findable.rb +78 -27
- data/lib/mongoid/indexable/specification.rb +3 -16
- data/lib/mongoid/indexable/validators/options.rb +2 -7
- data/lib/mongoid/indexable.rb +10 -22
- data/lib/mongoid/inspectable.rb +4 -11
- data/lib/mongoid/interceptable.rb +18 -35
- data/lib/mongoid/loggable.rb +13 -16
- data/lib/mongoid/matchable.rb +3 -153
- data/lib/mongoid/matcher/all.rb +22 -0
- data/lib/mongoid/matcher/and.rb +21 -0
- data/lib/mongoid/matcher/bits.rb +41 -0
- data/lib/mongoid/matcher/bits_all_clear.rb +20 -0
- data/lib/mongoid/matcher/bits_all_set.rb +20 -0
- data/lib/mongoid/matcher/bits_any_clear.rb +20 -0
- data/lib/mongoid/matcher/bits_any_set.rb +20 -0
- data/lib/mongoid/matcher/elem_match.rb +36 -0
- data/lib/mongoid/matcher/elem_match_expression.rb +20 -0
- data/lib/mongoid/matcher/eq.rb +11 -0
- data/lib/mongoid/matcher/eq_impl.rb +67 -0
- data/lib/mongoid/matcher/eq_impl_with_regexp.rb +26 -0
- data/lib/mongoid/matcher/exists.rb +15 -0
- data/lib/mongoid/matcher/expression.rb +35 -0
- data/lib/mongoid/matcher/expression_operator.rb +19 -0
- data/lib/mongoid/matcher/field_expression.rb +62 -0
- data/lib/mongoid/matcher/field_operator.rb +54 -0
- data/lib/mongoid/matcher/gt.rb +17 -0
- data/lib/mongoid/matcher/gte.rb +17 -0
- data/lib/mongoid/matcher/in.rb +25 -0
- data/lib/mongoid/matcher/lt.rb +17 -0
- data/lib/mongoid/matcher/lte.rb +17 -0
- data/lib/mongoid/matcher/mod.rb +17 -0
- data/lib/mongoid/matcher/ne.rb +16 -0
- data/lib/mongoid/matcher/nin.rb +11 -0
- data/lib/mongoid/matcher/nor.rb +25 -0
- data/lib/mongoid/matcher/not.rb +29 -0
- data/lib/mongoid/matcher/or.rb +21 -0
- data/lib/mongoid/matcher/regex.rb +41 -0
- data/lib/mongoid/matcher/size.rb +26 -0
- data/lib/mongoid/matcher/type.rb +99 -0
- data/lib/mongoid/matcher.rb +110 -0
- data/lib/mongoid/persistable/creatable.rb +4 -21
- data/lib/mongoid/persistable/deletable.rb +11 -26
- data/lib/mongoid/persistable/destroyable.rb +11 -10
- data/lib/mongoid/persistable/incrementable.rb +7 -8
- data/lib/mongoid/persistable/logical.rb +5 -7
- data/lib/mongoid/persistable/poppable.rb +3 -6
- data/lib/mongoid/persistable/pullable.rb +3 -8
- data/lib/mongoid/persistable/pushable.rb +14 -10
- data/lib/mongoid/persistable/renamable.rb +10 -8
- data/lib/mongoid/persistable/savable.rb +3 -8
- data/lib/mongoid/persistable/settable.rb +60 -18
- data/lib/mongoid/persistable/unsettable.rb +8 -8
- data/lib/mongoid/persistable/updatable.rb +32 -20
- data/lib/mongoid/persistable/upsertable.rb +4 -9
- data/lib/mongoid/persistable.rb +136 -42
- data/lib/mongoid/persistence_context.rb +101 -48
- data/lib/mongoid/positional.rb +3 -6
- data/lib/mongoid/query_cache.rb +117 -130
- data/lib/mongoid/railtie.rb +3 -16
- data/lib/mongoid/railties/controller_runtime.rb +3 -1
- data/lib/mongoid/railties/database.rake +9 -0
- data/lib/mongoid/reloadable.rb +14 -19
- data/lib/mongoid/scopable.rb +19 -44
- data/lib/mongoid/selectable.rb +8 -17
- data/lib/mongoid/serializable.rb +28 -33
- data/lib/mongoid/shardable.rb +108 -21
- data/lib/mongoid/stateful.rb +3 -10
- data/lib/mongoid/stringified_symbol.rb +52 -0
- data/lib/mongoid/tasks/database.rake +12 -5
- data/lib/mongoid/tasks/database.rb +85 -5
- data/lib/mongoid/threaded/lifecycle.rb +2 -21
- data/lib/mongoid/threaded.rb +2 -55
- data/lib/mongoid/timestamps/created/short.rb +2 -1
- data/lib/mongoid/timestamps/created.rb +3 -2
- data/lib/mongoid/timestamps/short.rb +2 -1
- data/lib/mongoid/timestamps/timeless.rb +6 -9
- data/lib/mongoid/timestamps/updated/short.rb +2 -1
- data/lib/mongoid/timestamps/updated.rb +3 -4
- data/lib/mongoid/timestamps.rb +3 -2
- data/lib/mongoid/touchable.rb +132 -0
- data/lib/mongoid/traversable.rb +183 -60
- data/lib/mongoid/validatable/associated.rb +5 -6
- data/lib/mongoid/validatable/format.rb +2 -1
- data/lib/mongoid/validatable/length.rb +2 -1
- data/lib/mongoid/validatable/localizable.rb +2 -3
- data/lib/mongoid/validatable/macros.rb +3 -8
- data/lib/mongoid/validatable/presence.rb +10 -15
- data/lib/mongoid/validatable/queryable.rb +2 -3
- data/lib/mongoid/validatable/uniqueness.rb +25 -38
- data/lib/mongoid/validatable.rb +16 -35
- data/lib/mongoid/version.rb +3 -2
- data/lib/mongoid/warnings.rb +29 -0
- data/lib/mongoid.rb +34 -15
- data/lib/rails/generators/mongoid/config/config_generator.rb +10 -2
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +53 -29
- data/lib/rails/generators/mongoid/model/model_generator.rb +3 -2
- data/lib/rails/generators/mongoid/model/templates/model.rb.tt +1 -1
- data/lib/rails/generators/mongoid_generator.rb +2 -1
- data/lib/rails/mongoid.rb +4 -5
- data/spec/README.md +33 -0
- data/spec/config/mongoid.yml +14 -3
- data/spec/config/mongoid_with_schema_map_uuid.yml +27 -0
- data/spec/integration/app_spec.rb +349 -0
- data/spec/integration/associations/belongs_to_spec.rb +15 -0
- data/spec/integration/associations/embedded_dirty_spec.rb +57 -0
- data/spec/integration/associations/embedded_spec.rb +268 -0
- data/spec/integration/associations/embeds_many_spec.rb +206 -0
- data/spec/integration/associations/embeds_one_spec.rb +23 -0
- data/spec/integration/associations/foreign_key_spec.rb +98 -0
- data/spec/integration/associations/foreign_key_spec_models.rb +64 -0
- data/spec/integration/associations/has_many_spec.rb +128 -0
- data/spec/integration/associations/has_one_spec.rb +176 -0
- data/spec/integration/associations/nested_attributes_assignment_spec.rb +115 -0
- data/spec/integration/associations/reverse_population_spec.rb +34 -0
- data/spec/integration/associations/reverse_population_spec_models.rb +36 -0
- data/spec/integration/associations/scope_option_spec.rb +101 -0
- data/spec/integration/atomic/modifiers_spec.rb +116 -0
- data/spec/integration/bson_regexp_raw_spec.rb +19 -0
- data/spec/integration/callbacks_models.rb +61 -0
- data/spec/integration/callbacks_spec.rb +228 -0
- data/spec/integration/contextual/empty_spec.rb +141 -0
- data/spec/integration/criteria/alias_query_spec.rb +161 -0
- data/spec/integration/criteria/date_field_spec.rb +40 -0
- data/spec/integration/criteria/default_scope_spec.rb +72 -0
- data/spec/integration/criteria/logical_spec.rb +124 -0
- data/spec/integration/criteria/range_spec.rb +265 -0
- data/spec/integration/criteria/time_with_zone_spec.rb +142 -0
- data/spec/integration/discriminator_key_spec.rb +353 -0
- data/spec/integration/discriminator_value_spec.rb +206 -0
- data/spec/integration/document_spec.rb +30 -1
- data/spec/integration/i18n_fallbacks_spec.rb +103 -0
- data/spec/integration/matcher_examples_spec.rb +758 -0
- data/spec/integration/matcher_operator_data/all.yml +140 -0
- data/spec/integration/matcher_operator_data/and.yml +93 -0
- data/spec/integration/matcher_operator_data/bits_all_clear.yml +159 -0
- data/spec/integration/matcher_operator_data/bits_all_set.yml +159 -0
- data/spec/integration/matcher_operator_data/bits_any_clear.yml +159 -0
- data/spec/integration/matcher_operator_data/bits_any_set.yml +159 -0
- data/spec/integration/matcher_operator_data/comment.yml +22 -0
- data/spec/integration/matcher_operator_data/elem_match.yml +409 -0
- data/spec/integration/matcher_operator_data/elem_match_expr.yml +213 -0
- data/spec/integration/matcher_operator_data/eq.yml +191 -0
- data/spec/integration/matcher_operator_data/exists.yml +213 -0
- data/spec/integration/matcher_operator_data/generic_op.yml +17 -0
- data/spec/integration/matcher_operator_data/gt.yml +132 -0
- data/spec/integration/matcher_operator_data/gt_types.yml +63 -0
- data/spec/integration/matcher_operator_data/gte.yml +132 -0
- data/spec/integration/matcher_operator_data/gte_types.yml +15 -0
- data/spec/integration/matcher_operator_data/implicit.yml +331 -0
- data/spec/integration/matcher_operator_data/implicit_traversal.yml +112 -0
- data/spec/integration/matcher_operator_data/in.yml +210 -0
- data/spec/integration/matcher_operator_data/invalid_op.yml +59 -0
- data/spec/integration/matcher_operator_data/invalid_syntax.yml +39 -0
- data/spec/integration/matcher_operator_data/lt.yml +132 -0
- data/spec/integration/matcher_operator_data/lt_types.yml +15 -0
- data/spec/integration/matcher_operator_data/lte.yml +132 -0
- data/spec/integration/matcher_operator_data/lte_types.yml +15 -0
- data/spec/integration/matcher_operator_data/mod.yml +55 -0
- data/spec/integration/matcher_operator_data/multiple.yml +29 -0
- data/spec/integration/matcher_operator_data/ne.yml +150 -0
- data/spec/integration/matcher_operator_data/ne_types.yml +15 -0
- data/spec/integration/matcher_operator_data/nin.yml +114 -0
- data/spec/integration/matcher_operator_data/nor.yml +126 -0
- data/spec/integration/matcher_operator_data/not.yml +196 -0
- data/spec/integration/matcher_operator_data/or.yml +137 -0
- data/spec/integration/matcher_operator_data/regex.yml +174 -0
- data/spec/integration/matcher_operator_data/regex_options.yml +72 -0
- data/spec/integration/matcher_operator_data/size.yml +174 -0
- data/spec/integration/matcher_operator_data/type.yml +70 -0
- data/spec/integration/matcher_operator_data/type_array.yml +16 -0
- data/spec/integration/matcher_operator_data/type_binary.yml +18 -0
- data/spec/integration/matcher_operator_data/type_boolean.yml +39 -0
- data/spec/integration/matcher_operator_data/type_code.yml +26 -0
- data/spec/integration/matcher_operator_data/type_code_with_scope.yml +26 -0
- data/spec/integration/matcher_operator_data/type_date.yml +39 -0
- data/spec/integration/matcher_operator_data/type_db_pointer.yml +19 -0
- data/spec/integration/matcher_operator_data/type_decimal.yml +40 -0
- data/spec/integration/matcher_operator_data/type_double.yml +15 -0
- data/spec/integration/matcher_operator_data/type_int32.yml +33 -0
- data/spec/integration/matcher_operator_data/type_int64.yml +33 -0
- data/spec/integration/matcher_operator_data/type_max_key.yml +17 -0
- data/spec/integration/matcher_operator_data/type_min_key.yml +17 -0
- data/spec/integration/matcher_operator_data/type_null.yml +23 -0
- data/spec/integration/matcher_operator_data/type_object.yml +23 -0
- data/spec/integration/matcher_operator_data/type_object_id.yml +25 -0
- data/spec/integration/matcher_operator_data/type_regex.yml +44 -0
- data/spec/integration/matcher_operator_data/type_string.yml +15 -0
- data/spec/integration/matcher_operator_data/type_symbol.yml +32 -0
- data/spec/integration/matcher_operator_data/type_timestamp.yml +25 -0
- data/spec/integration/matcher_operator_data/type_undefined.yml +17 -0
- data/spec/integration/matcher_operator_spec.rb +124 -0
- data/spec/integration/matcher_spec.rb +283 -0
- data/spec/integration/server_query_spec.rb +141 -0
- data/spec/integration/shardable_spec.rb +148 -0
- data/spec/integration/stringified_symbol_field_spec.rb +203 -0
- data/spec/lite_spec_helper.rb +83 -0
- data/spec/mongoid/association/accessors_spec.rb +1067 -0
- data/spec/mongoid/association/auto_save_spec.rb +403 -0
- data/spec/mongoid/association/builders_spec.rb +255 -0
- data/spec/mongoid/association/constrainable_spec.rb +117 -0
- data/spec/mongoid/association/counter_cache_spec.rb +452 -0
- data/spec/mongoid/association/depending_spec.rb +959 -0
- data/spec/mongoid/association/eager_spec.rb +281 -0
- data/spec/mongoid/association/embedded/cyclic_spec.rb +180 -0
- data/spec/mongoid/association/embedded/dirty_spec.rb +67 -0
- data/spec/mongoid/association/embedded/embedded_in/binding_spec.rb +173 -0
- data/spec/mongoid/association/embedded/embedded_in/buildable_spec.rb +36 -0
- data/spec/mongoid/association/embedded/embedded_in/proxy_spec.rb +559 -0
- data/spec/mongoid/association/embedded/embedded_in_spec.rb +903 -0
- data/spec/mongoid/association/embedded/embeds_many/binding_spec.rb +56 -0
- data/spec/mongoid/association/embedded/embeds_many/buildable_spec.rb +106 -0
- data/spec/mongoid/association/embedded/embeds_many/proxy_spec.rb +4673 -0
- data/spec/mongoid/association/embedded/embeds_many_models.rb +190 -0
- data/spec/mongoid/association/embedded/embeds_many_query_spec.rb +51 -0
- data/spec/mongoid/association/embedded/embeds_many_spec.rb +864 -0
- data/spec/mongoid/association/embedded/embeds_one/binding_spec.rb +79 -0
- data/spec/mongoid/association/embedded/embeds_one/buildable_spec.rb +81 -0
- data/spec/mongoid/association/embedded/embeds_one/proxy_spec.rb +1025 -0
- data/spec/mongoid/association/embedded/embeds_one_dnl_models.rb +8 -0
- data/spec/mongoid/association/embedded/embeds_one_models.rb +54 -0
- data/spec/mongoid/association/embedded/embeds_one_query_spec.rb +28 -0
- data/spec/mongoid/association/embedded/embeds_one_spec.rb +956 -0
- data/spec/mongoid/association/macros_spec.rb +1116 -0
- data/spec/mongoid/association/nested/many_spec.rb +232 -0
- data/spec/mongoid/association/nested/one_spec.rb +253 -0
- data/spec/mongoid/association/options_spec.rb +1323 -0
- data/spec/mongoid/association/polymorphic_spec.rb +162 -0
- data/spec/mongoid/association/referenced/belongs_to/binding_spec.rb +243 -0
- data/spec/mongoid/association/referenced/belongs_to/buildable_spec.rb +238 -0
- data/spec/mongoid/association/referenced/belongs_to/eager_spec.rb +412 -0
- data/spec/mongoid/association/referenced/belongs_to/proxy_spec.rb +1373 -0
- data/spec/mongoid/association/referenced/belongs_to_query_spec.rb +57 -0
- data/spec/mongoid/association/referenced/belongs_to_spec.rb +2046 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/binding_spec.rb +180 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/buildable_spec.rb +148 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/eager_spec.rb +196 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_persistence_spec.rb +76 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many/proxy_spec.rb +3803 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_models.rb +67 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_query_spec.rb +39 -0
- data/spec/mongoid/association/referenced/has_and_belongs_to_many_spec.rb +1071 -0
- data/spec/mongoid/association/referenced/has_many/binding_spec.rb +155 -0
- data/spec/mongoid/association/referenced/has_many/buildable_spec.rb +142 -0
- data/spec/mongoid/association/referenced/has_many/eager_spec.rb +290 -0
- data/spec/mongoid/association/referenced/has_many/enumerable_spec.rb +2286 -0
- data/spec/mongoid/association/referenced/has_many/proxy_query_spec.rb +23 -0
- data/spec/mongoid/association/referenced/has_many/proxy_spec.rb +4112 -0
- data/spec/mongoid/association/referenced/has_many_models.rb +95 -0
- data/spec/mongoid/association/referenced/has_many_query_spec.rb +37 -0
- data/spec/mongoid/association/referenced/has_many_spec.rb +1248 -0
- data/spec/mongoid/association/referenced/has_one/binding_spec.rb +133 -0
- data/spec/mongoid/association/referenced/has_one/buildable_spec.rb +159 -0
- data/spec/mongoid/association/referenced/has_one/eager_spec.rb +193 -0
- data/spec/mongoid/association/referenced/has_one/proxy_spec.rb +1142 -0
- data/spec/mongoid/association/referenced/has_one_models.rb +97 -0
- data/spec/mongoid/association/referenced/has_one_query_spec.rb +37 -0
- data/spec/mongoid/association/referenced/has_one_spec.rb +1383 -0
- data/spec/mongoid/association/reflections_spec.rb +92 -0
- data/spec/mongoid/association/syncable_spec.rb +499 -0
- data/spec/mongoid/association_spec.rb +191 -0
- data/spec/mongoid/atomic/modifiers_spec.rb +51 -2
- data/spec/mongoid/atomic/paths/embedded/many_spec.rb +2 -0
- data/spec/mongoid/atomic/paths/embedded/one_spec.rb +2 -0
- data/spec/mongoid/atomic/paths/root_spec.rb +2 -0
- data/spec/mongoid/atomic/paths_spec.rb +107 -12
- data/spec/mongoid/atomic_spec.rb +57 -10
- data/spec/mongoid/attributes/dynamic_spec.rb +152 -0
- data/spec/mongoid/attributes/nested_spec.rb +98 -78
- data/spec/mongoid/attributes/projector_data/embedded.yml +105 -0
- data/spec/mongoid/attributes/projector_data/fields.yml +93 -0
- data/spec/mongoid/attributes/projector_spec.rb +44 -0
- data/spec/mongoid/attributes/readonly_spec.rb +84 -127
- data/spec/mongoid/attributes_spec.rb +461 -34
- data/spec/mongoid/cacheable_spec.rb +6 -4
- data/spec/mongoid/changeable_spec.rb +60 -35
- data/spec/mongoid/clients/factory_spec.rb +98 -9
- data/spec/mongoid/clients/options_spec.rb +93 -60
- data/spec/mongoid/clients/sessions_spec.rb +34 -33
- data/spec/mongoid/clients/transactions_spec.rb +415 -0
- data/spec/mongoid/clients_spec.rb +108 -16
- data/spec/mongoid/composable_spec.rb +2 -0
- data/spec/mongoid/config/environment_spec.rb +126 -8
- data/spec/mongoid/config/options_spec.rb +22 -3
- data/spec/mongoid/config_spec.rb +357 -2
- data/spec/mongoid/contextual/aggregable/memory_spec.rb +53 -11
- data/spec/mongoid/contextual/aggregable/mongo_spec.rb +122 -20
- data/spec/mongoid/contextual/aggregable/none_spec.rb +60 -0
- data/spec/mongoid/contextual/atomic_spec.rb +242 -81
- data/spec/mongoid/contextual/geo_near_spec.rb +30 -19
- data/spec/mongoid/contextual/map_reduce_spec.rb +24 -7
- data/spec/mongoid/contextual/memory_spec.rb +870 -88
- data/spec/mongoid/contextual/mongo_spec.rb +1339 -184
- data/spec/mongoid/contextual/none_spec.rb +45 -71
- data/spec/mongoid/copyable_spec.rb +294 -29
- data/spec/mongoid/copyable_spec_models.rb +47 -0
- data/spec/mongoid/criteria/findable_spec.rb +77 -20
- data/spec/mongoid/criteria/inspectable_spec.rb +2 -0
- data/spec/mongoid/criteria/marshalable_spec.rb +2 -0
- data/spec/mongoid/criteria/modifiable_spec.rb +215 -40
- data/spec/mongoid/criteria/options_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/aggregable_spec.rb +3 -1
- data/spec/mongoid/criteria/queryable/expandable_spec.rb +61 -0
- data/spec/mongoid/criteria/queryable/extensions/array_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/big_decimal_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/bignum_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/boolean_spec.rb +3 -1
- data/spec/mongoid/criteria/queryable/extensions/date_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/date_time_spec.rb +35 -17
- data/spec/mongoid/criteria/queryable/extensions/fixnum_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/float_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/hash_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/integer_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/nil_class_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/numeric_spec.rb +53 -0
- data/spec/mongoid/criteria/queryable/extensions/object_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/range_spec.rb +239 -178
- data/spec/mongoid/criteria/queryable/extensions/regexp_raw_spec.rb +3 -1
- data/spec/mongoid/criteria/queryable/extensions/regexp_spec.rb +9 -7
- data/spec/mongoid/criteria/queryable/extensions/set_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/string_spec.rb +46 -1
- data/spec/mongoid/criteria/queryable/extensions/symbol_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/extensions/time_spec.rb +42 -23
- data/spec/mongoid/criteria/queryable/extensions/time_with_zone_spec.rb +30 -1
- data/spec/mongoid/criteria/queryable/key_spec.rb +50 -6
- data/spec/mongoid/criteria/queryable/mergeable_spec.rb +145 -12
- data/spec/mongoid/criteria/queryable/optional_spec.rb +3 -1
- data/spec/mongoid/criteria/queryable/options_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/pipeline_spec.rb +14 -0
- data/spec/mongoid/criteria/queryable/queryable_spec.rb +3 -1
- data/spec/mongoid/criteria/queryable/selectable_logical_spec.rb +2069 -0
- data/spec/mongoid/criteria/queryable/selectable_shared_examples.rb +38 -0
- data/spec/mongoid/criteria/queryable/selectable_spec.rb +1155 -2927
- data/spec/mongoid/criteria/queryable/selectable_where_spec.rb +589 -0
- data/spec/mongoid/criteria/queryable/selector_spec.rb +114 -2
- data/spec/mongoid/criteria/queryable/smash_spec.rb +2 -0
- data/spec/mongoid/criteria/queryable/storable_spec.rb +298 -0
- data/spec/mongoid/criteria/scopable_spec.rb +129 -0
- data/spec/mongoid/criteria_projection_spec.rb +410 -0
- data/spec/mongoid/criteria_spec.rb +826 -478
- data/spec/mongoid/document_fields_spec.rb +113 -0
- data/spec/mongoid/document_persistence_context_spec.rb +32 -0
- data/spec/mongoid/document_query_spec.rb +89 -0
- data/spec/mongoid/document_spec.rb +131 -31
- data/spec/mongoid/equality_spec.rb +144 -41
- data/spec/mongoid/errors/ambiguous_relationship_spec.rb +5 -3
- data/spec/mongoid/errors/callback_spec.rb +2 -0
- data/spec/mongoid/errors/delete_restriction_spec.rb +4 -2
- data/spec/mongoid/errors/document_not_destroyed_spec.rb +2 -0
- data/spec/mongoid/errors/document_not_found_spec.rb +51 -0
- data/spec/mongoid/errors/eager_load_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_collection_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_config_file_spec.rb +31 -0
- data/spec/mongoid/errors/invalid_config_option_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_field_option_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_field_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_find_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_includes_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_index_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_options_spec.rb +4 -2
- data/spec/mongoid/errors/invalid_path_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_relation_spec.rb +4 -2
- data/spec/mongoid/errors/invalid_scope_spec.rb +3 -1
- data/spec/mongoid/errors/invalid_set_polymorphic_relation_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_storage_options_spec.rb +2 -0
- data/spec/mongoid/errors/invalid_time_spec.rb +2 -0
- data/spec/mongoid/errors/inverse_not_found_spec.rb +3 -1
- data/spec/mongoid/errors/mixed_client_configuration_spec.rb +2 -0
- data/spec/mongoid/errors/mixed_relations_spec.rb +2 -0
- data/spec/mongoid/errors/mongoid_error_spec.rb +22 -8
- data/spec/mongoid/errors/nested_attributes_metadata_not_found_spec.rb +5 -3
- data/spec/mongoid/errors/no_client_config_spec.rb +4 -2
- data/spec/mongoid/errors/no_client_database_spec.rb +5 -3
- data/spec/mongoid/errors/no_client_hosts_spec.rb +5 -3
- data/spec/mongoid/errors/no_clients_config_spec.rb +2 -0
- data/spec/mongoid/errors/no_environment_spec.rb +2 -0
- data/spec/mongoid/errors/no_map_reduce_output_spec.rb +2 -0
- data/spec/mongoid/errors/no_metadata_spec.rb +4 -2
- data/spec/mongoid/errors/no_parent_spec.rb +3 -1
- data/spec/mongoid/errors/readonly_attribute_spec.rb +2 -0
- data/spec/mongoid/errors/readonly_document_spec.rb +2 -0
- data/spec/mongoid/errors/scope_overwrite_spec.rb +2 -0
- data/spec/mongoid/errors/too_many_nested_attribute_records_spec.rb +2 -0
- data/spec/mongoid/errors/unknown_attribute_spec.rb +4 -2
- data/spec/mongoid/errors/unsaved_document_spec.rb +3 -1
- data/spec/mongoid/errors/unsupported_javascript_spec.rb +2 -0
- data/spec/mongoid/errors/validations_spec.rb +2 -0
- data/spec/mongoid/extensions/array_spec.rb +36 -58
- data/spec/mongoid/extensions/big_decimal_spec.rb +2 -0
- data/spec/mongoid/extensions/binary_spec.rb +2 -0
- data/spec/mongoid/extensions/boolean_spec.rb +2 -0
- data/spec/mongoid/extensions/date_class_mongoize_spec.rb +335 -0
- data/spec/mongoid/extensions/date_spec.rb +8 -160
- data/spec/mongoid/extensions/date_time_spec.rb +17 -60
- data/spec/mongoid/extensions/decimal128_spec.rb +2 -0
- data/spec/mongoid/extensions/false_class_spec.rb +3 -1
- data/spec/mongoid/extensions/float_spec.rb +17 -3
- data/spec/mongoid/extensions/hash_spec.rb +123 -1
- data/spec/mongoid/extensions/integer_spec.rb +14 -2
- data/spec/mongoid/extensions/module_spec.rb +2 -0
- data/spec/mongoid/extensions/nil_class_spec.rb +2 -0
- data/spec/mongoid/extensions/object_id_spec.rb +2 -0
- data/spec/mongoid/extensions/object_spec.rb +20 -35
- data/spec/mongoid/extensions/range_spec.rb +9 -0
- data/spec/mongoid/extensions/regexp_spec.rb +2 -0
- data/spec/mongoid/extensions/set_spec.rb +2 -0
- data/spec/mongoid/extensions/string_spec.rb +60 -27
- data/spec/mongoid/extensions/stringified_symbol_spec.rb +84 -0
- data/spec/mongoid/extensions/symbol_spec.rb +2 -0
- data/spec/mongoid/extensions/time_spec.rb +29 -0
- data/spec/mongoid/extensions/time_with_zone_spec.rb +33 -0
- data/spec/mongoid/extensions/true_class_spec.rb +3 -1
- data/spec/mongoid/extensions_spec.rb +16 -2
- data/spec/mongoid/factory_spec.rb +301 -23
- data/spec/mongoid/fields/foreign_key_spec.rb +26 -32
- data/spec/mongoid/fields/localized_spec.rb +6 -4
- data/spec/mongoid/fields/standard_spec.rb +2 -0
- data/spec/mongoid/fields_spec.rb +419 -37
- data/spec/mongoid/findable_spec.rb +83 -19
- data/spec/mongoid/indexable/specification_spec.rb +2 -0
- data/spec/mongoid/indexable_spec.rb +54 -14
- data/spec/mongoid/inspectable_spec.rb +39 -2
- data/spec/mongoid/interceptable_spec.rb +189 -96
- data/spec/mongoid/interceptable_spec_models.rb +76 -0
- data/spec/mongoid/loggable_spec.rb +2 -0
- data/spec/mongoid/matcher/extract_attribute_data/numeric_keys.yml +104 -0
- data/spec/mongoid/matcher/extract_attribute_data/traversal.yml +239 -0
- data/spec/mongoid/matcher/extract_attribute_spec.rb +40 -0
- data/spec/mongoid/persistable/creatable_spec.rb +112 -27
- data/spec/mongoid/persistable/deletable_spec.rb +273 -11
- data/spec/mongoid/persistable/destroyable_spec.rb +201 -11
- data/spec/mongoid/persistable/incrementable_spec.rb +23 -7
- data/spec/mongoid/persistable/logical_spec.rb +19 -3
- data/spec/mongoid/persistable/poppable_spec.rb +19 -3
- data/spec/mongoid/persistable/pullable_spec.rb +36 -6
- data/spec/mongoid/persistable/pushable_spec.rb +91 -7
- data/spec/mongoid/persistable/renamable_spec.rb +18 -2
- data/spec/mongoid/persistable/savable_spec.rb +189 -26
- data/spec/mongoid/persistable/settable_spec.rb +149 -18
- data/spec/mongoid/persistable/unsettable_spec.rb +19 -3
- data/spec/mongoid/persistable/updatable_spec.rb +45 -23
- data/spec/mongoid/persistable/upsertable_spec.rb +4 -2
- data/spec/mongoid/persistable_spec.rb +106 -15
- data/spec/mongoid/persistence_context_spec.rb +29 -2
- data/spec/mongoid/positional_spec.rb +2 -0
- data/spec/mongoid/query_cache_middleware_spec.rb +68 -0
- data/spec/mongoid/query_cache_spec.rb +529 -85
- data/spec/mongoid/relations/proxy_spec.rb +126 -124
- data/spec/mongoid/reloadable_spec.rb +298 -20
- data/spec/mongoid/scopable_spec.rb +102 -37
- data/spec/mongoid/selectable_spec.rb +8 -6
- data/spec/mongoid/serializable_spec.rb +160 -29
- data/spec/mongoid/shardable_models.rb +75 -0
- data/spec/mongoid/shardable_spec.rb +251 -26
- data/spec/mongoid/stateful_spec.rb +3 -1
- data/spec/mongoid/tasks/database_rake_spec.rb +15 -13
- data/spec/mongoid/tasks/database_spec.rb +3 -1
- data/spec/mongoid/threaded_spec.rb +4 -2
- data/spec/mongoid/timestamps/created/short_spec.rb +3 -1
- data/spec/mongoid/timestamps/created_spec.rb +3 -1
- data/spec/mongoid/timestamps/timeless_spec.rb +4 -2
- data/spec/mongoid/timestamps/updated/short_spec.rb +5 -3
- data/spec/mongoid/timestamps/updated_spec.rb +5 -3
- data/spec/mongoid/timestamps_spec.rb +8 -6
- data/spec/mongoid/touchable_spec.rb +588 -0
- data/spec/mongoid/touchable_spec_models.rb +53 -0
- data/spec/mongoid/traversable_spec.rb +1167 -1
- data/spec/mongoid/validatable/associated_spec.rb +3 -1
- data/spec/mongoid/validatable/format_spec.rb +2 -0
- data/spec/mongoid/validatable/length_spec.rb +2 -0
- data/spec/mongoid/validatable/numericality_spec.rb +2 -0
- data/spec/mongoid/validatable/presence_spec.rb +33 -26
- data/spec/mongoid/validatable/uniqueness_spec.rb +102 -73
- data/spec/mongoid/validatable_spec.rb +5 -3
- data/spec/mongoid_spec.rb +9 -1
- data/spec/rails/controller_extension/controller_runtime_spec.rb +3 -1
- data/spec/rails/mongoid_spec.rb +4 -2
- data/spec/shared/LICENSE +20 -0
- data/spec/shared/bin/get-mongodb-download-url +17 -0
- data/spec/shared/bin/s3-copy +45 -0
- data/spec/shared/bin/s3-upload +69 -0
- data/spec/shared/lib/mrss/child_process_helper.rb +80 -0
- data/spec/shared/lib/mrss/cluster_config.rb +231 -0
- data/spec/shared/lib/mrss/constraints.rb +378 -0
- data/spec/shared/lib/mrss/docker_runner.rb +291 -0
- data/spec/shared/lib/mrss/eg_config_utils.rb +51 -0
- data/spec/shared/lib/mrss/event_subscriber.rb +210 -0
- data/spec/shared/lib/mrss/lite_constraints.rb +238 -0
- data/spec/shared/lib/mrss/server_version_registry.rb +120 -0
- data/spec/shared/lib/mrss/session_registry.rb +69 -0
- data/spec/shared/lib/mrss/session_registry_legacy.rb +60 -0
- data/spec/shared/lib/mrss/spec_organizer.rb +179 -0
- data/spec/shared/lib/mrss/utils.rb +15 -0
- data/spec/shared/share/Dockerfile.erb +325 -0
- data/spec/shared/share/haproxy-1.conf +16 -0
- data/spec/shared/share/haproxy-2.conf +17 -0
- data/spec/shared/shlib/config.sh +27 -0
- data/spec/shared/shlib/distro.sh +74 -0
- data/spec/shared/shlib/server.sh +392 -0
- data/spec/shared/shlib/set_env.sh +169 -0
- data/spec/spec_helper.rb +70 -83
- data/spec/support/authorization.rb +2 -0
- data/spec/support/client_registry.rb +9 -0
- data/spec/support/constraints.rb +27 -75
- data/spec/support/expectations.rb +21 -3
- data/spec/support/helpers.rb +11 -0
- data/spec/support/macros.rb +31 -0
- data/spec/support/models/account.rb +38 -0
- data/spec/support/models/acolyte.rb +19 -0
- data/spec/support/models/actor.rb +20 -0
- data/spec/support/models/actress.rb +4 -0
- data/spec/support/models/address.rb +85 -0
- data/spec/support/models/address_component.rb +7 -0
- data/spec/support/models/address_number.rb +8 -0
- data/spec/support/models/agency.rb +7 -0
- data/spec/support/models/agent.rb +18 -0
- data/spec/support/models/album.rb +20 -0
- data/spec/support/models/alert.rb +9 -0
- data/spec/support/models/animal.rb +28 -0
- data/spec/support/models/answer.rb +8 -0
- data/spec/support/models/appointment.rb +9 -0
- data/spec/support/models/armrest.rb +9 -0
- data/spec/support/models/article.rb +14 -0
- data/spec/support/models/artist.rb +91 -0
- data/spec/support/models/artwork.rb +6 -0
- data/spec/support/models/audible_sound.rb +3 -0
- data/spec/support/models/audio.rb +7 -0
- data/spec/support/models/augmentation.rb +13 -0
- data/spec/support/models/author.rb +8 -0
- data/spec/support/models/baby.rb +6 -0
- data/spec/support/models/band.rb +37 -0
- data/spec/support/models/bar.rb +12 -0
- data/spec/support/models/basic.rb +8 -0
- data/spec/support/models/bed.rb +3 -0
- data/spec/support/models/big_palette.rb +4 -0
- data/spec/support/models/birthday.rb +15 -0
- data/spec/support/models/bolt.rb +7 -0
- data/spec/support/models/bomb.rb +6 -0
- data/spec/support/models/book.rb +18 -0
- data/spec/support/models/breed.rb +6 -0
- data/spec/support/models/browser.rb +8 -0
- data/spec/support/models/building.rb +8 -0
- data/spec/support/models/building_address.rb +9 -0
- data/spec/support/models/bus.rb +9 -0
- data/spec/support/models/business.rb +7 -0
- data/spec/support/models/callback_test.rb +11 -0
- data/spec/support/models/canvas.rb +27 -0
- data/spec/support/models/car.rb +3 -0
- data/spec/support/models/cat.rb +10 -0
- data/spec/support/models/category.rb +10 -0
- data/spec/support/models/child.rb +6 -0
- data/spec/support/models/child_doc.rb +24 -0
- data/spec/support/models/church.rb +8 -0
- data/spec/support/models/circle.rb +5 -0
- data/spec/support/models/circuit.rb +6 -0
- data/spec/support/models/circus.rb +9 -0
- data/spec/support/models/code.rb +15 -0
- data/spec/support/models/coding/pull_request.rb +11 -0
- data/spec/support/models/coding.rb +3 -0
- data/spec/support/models/comment.rb +18 -0
- data/spec/support/models/company.rb +7 -0
- data/spec/support/models/consumption_period.rb +9 -0
- data/spec/support/models/contextable_item.rb +7 -0
- data/spec/support/models/contractor.rb +7 -0
- data/spec/support/models/cookie.rb +8 -0
- data/spec/support/models/country_code.rb +12 -0
- data/spec/support/models/courier_job.rb +6 -0
- data/spec/support/models/crate.rb +12 -0
- data/spec/support/models/customer.rb +10 -0
- data/spec/support/models/customer_address.rb +11 -0
- data/spec/support/models/deed.rb +7 -0
- data/spec/support/models/definition.rb +11 -0
- data/spec/support/models/delegating_patient.rb +15 -0
- data/spec/support/models/description.rb +13 -0
- data/spec/support/models/dictionary.rb +18 -0
- data/spec/support/models/division.rb +12 -0
- data/spec/support/models/doctor.rb +14 -0
- data/spec/support/models/dog.rb +9 -0
- data/spec/support/models/dokument.rb +8 -0
- data/spec/support/models/draft.rb +11 -0
- data/spec/support/models/dragon.rb +6 -0
- data/spec/support/models/driver.rb +9 -0
- data/spec/support/models/drug.rb +8 -0
- data/spec/support/models/dungeon.rb +6 -0
- data/spec/support/models/edit.rb +7 -0
- data/spec/support/models/email.rb +8 -0
- data/spec/support/models/employer.rb +7 -0
- data/spec/support/models/entry.rb +8 -0
- data/spec/support/models/eraser.rb +3 -0
- data/spec/support/models/even.rb +9 -0
- data/spec/support/models/event.rb +24 -0
- data/spec/support/models/exhibition.rb +6 -0
- data/spec/support/models/exhibitor.rb +8 -0
- data/spec/support/models/explosion.rb +6 -0
- data/spec/support/models/eye.rb +11 -0
- data/spec/support/models/eye_bowl.rb +11 -0
- data/spec/support/models/face.rb +10 -0
- data/spec/support/models/favorite.rb +8 -0
- data/spec/support/models/filesystem.rb +7 -0
- data/spec/support/models/fire_hydrant.rb +8 -0
- data/spec/support/models/firefox.rb +6 -0
- data/spec/support/models/fish.rb +9 -0
- data/spec/support/models/folder.rb +9 -0
- data/spec/support/models/folder_item.rb +11 -0
- data/spec/support/models/fruits.rb +36 -0
- data/spec/support/models/game.rb +21 -0
- data/spec/support/models/ghost.rb +9 -0
- data/spec/support/models/guitar.rb +4 -0
- data/spec/support/models/hole.rb +12 -0
- data/spec/support/models/home.rb +6 -0
- data/spec/support/models/house.rb +8 -0
- data/spec/support/models/html_writer.rb +5 -0
- data/spec/support/models/id_key.rb +8 -0
- data/spec/support/models/idnodef.rb +7 -0
- data/spec/support/models/image.rb +24 -0
- data/spec/support/models/implant.rb +18 -0
- data/spec/support/models/instrument.rb +8 -0
- data/spec/support/models/item.rb +10 -0
- data/spec/support/models/jar.rb +9 -0
- data/spec/support/models/kaleidoscope.rb +8 -0
- data/spec/support/models/kangaroo.rb +6 -0
- data/spec/support/models/label.rb +50 -0
- data/spec/support/models/language.rb +7 -0
- data/spec/support/models/lat_lng.rb +17 -0
- data/spec/support/models/league.rb +13 -0
- data/spec/support/models/learner.rb +4 -0
- data/spec/support/models/line_item.rb +8 -0
- data/spec/support/models/location.rb +10 -0
- data/spec/support/models/login.rb +10 -0
- data/spec/support/models/manufacturer.rb +9 -0
- data/spec/support/models/meat.rb +6 -0
- data/spec/support/models/membership.rb +7 -0
- data/spec/support/models/message.rb +13 -0
- data/spec/support/models/minim.rb +6 -0
- data/spec/support/models/mixed_drink.rb +6 -0
- data/spec/support/models/mop.rb +24 -0
- data/spec/support/models/movie.rb +15 -0
- data/spec/support/models/my_hash.rb +4 -0
- data/spec/support/models/name.rb +26 -0
- data/spec/support/models/name_only.rb +8 -0
- data/spec/support/models/node.rb +7 -0
- data/spec/support/models/note.rb +19 -0
- data/spec/support/models/nut.rb +7 -0
- data/spec/support/models/odd.rb +9 -0
- data/spec/support/models/order.rb +12 -0
- data/spec/support/models/ordered_post.rb +13 -0
- data/spec/support/models/ordered_preference.rb +8 -0
- data/spec/support/models/oscar.rb +16 -0
- data/spec/support/models/other_owner_object.rb +4 -0
- data/spec/support/models/override.rb +18 -0
- data/spec/support/models/ownable.rb +8 -0
- data/spec/support/models/owner.rb +10 -0
- data/spec/support/models/pack.rb +5 -0
- data/spec/support/models/page.rb +18 -0
- data/spec/support/models/page_question.rb +6 -0
- data/spec/support/models/palette.rb +9 -0
- data/spec/support/models/parent.rb +7 -0
- data/spec/support/models/parent_doc.rb +8 -0
- data/spec/support/models/passport.rb +13 -0
- data/spec/support/models/patient.rb +11 -0
- data/spec/support/models/pdf_writer.rb +5 -0
- data/spec/support/models/pencil.rb +3 -0
- data/spec/support/models/person.rb +230 -0
- data/spec/support/models/pet.rb +25 -0
- data/spec/support/models/pet_owner.rb +8 -0
- data/spec/support/models/phone.rb +13 -0
- data/spec/support/models/piano.rb +4 -0
- data/spec/support/models/pizza.rb +9 -0
- data/spec/support/models/player.rb +37 -0
- data/spec/support/models/post.rb +52 -0
- data/spec/support/models/post_genre.rb +8 -0
- data/spec/support/models/powerup.rb +13 -0
- data/spec/support/models/preference.rb +11 -0
- data/spec/support/models/princess.rb +12 -0
- data/spec/support/models/product.rb +19 -0
- data/spec/support/models/profile.rb +17 -0
- data/spec/support/models/pronunciation.rb +7 -0
- data/spec/support/models/pub.rb +8 -0
- data/spec/support/models/publication/encyclopedia.rb +11 -0
- data/spec/support/models/publication/review.rb +13 -0
- data/spec/support/models/publication.rb +4 -0
- data/spec/support/models/purchase.rb +6 -0
- data/spec/support/models/purchased_item.rb +10 -0
- data/spec/support/models/question.rb +10 -0
- data/spec/support/models/quiz.rb +9 -0
- data/spec/support/models/rating.rb +10 -0
- data/spec/support/models/record.rb +54 -0
- data/spec/support/models/registry.rb +6 -0
- data/spec/support/models/role.rb +9 -0
- data/spec/support/models/root_category.rb +6 -0
- data/spec/support/models/sandwich.rb +11 -0
- data/spec/support/models/scheduler.rb +9 -0
- data/spec/support/models/scribe.rb +7 -0
- data/spec/support/models/sealer.rb +7 -0
- data/spec/support/models/seat.rb +24 -0
- data/spec/support/models/seo.rb +9 -0
- data/spec/support/models/series.rb +7 -0
- data/spec/support/models/server.rb +15 -0
- data/spec/support/models/service.rb +24 -0
- data/spec/support/models/shape.rb +14 -0
- data/spec/support/models/shelf.rb +7 -0
- data/spec/support/models/shipment_address.rb +5 -0
- data/spec/support/models/shipping_container.rb +7 -0
- data/spec/support/models/shipping_pack.rb +5 -0
- data/spec/support/models/shirt.rb +11 -0
- data/spec/support/models/shop.rb +8 -0
- data/spec/support/models/short_agent.rb +6 -0
- data/spec/support/models/short_quiz.rb +7 -0
- data/spec/support/models/simple.rb +7 -0
- data/spec/support/models/slave.rb +8 -0
- data/spec/support/models/song.rb +10 -0
- data/spec/support/models/sound.rb +7 -0
- data/spec/support/models/spacer.rb +7 -0
- data/spec/support/models/square.rb +6 -0
- data/spec/support/models/staff.rb +9 -0
- data/spec/support/models/store_as_dup_test1.rb +7 -0
- data/spec/support/models/store_as_dup_test2.rb +7 -0
- data/spec/support/models/store_as_dup_test3.rb +7 -0
- data/spec/support/models/store_as_dup_test4.rb +7 -0
- data/spec/support/models/strategy.rb +5 -0
- data/spec/support/models/sub_item.rb +5 -0
- data/spec/support/models/subscription.rb +7 -0
- data/spec/support/models/survey.rb +7 -0
- data/spec/support/models/symptom.rb +8 -0
- data/spec/support/models/system_role.rb +7 -0
- data/spec/support/models/tag.rb +10 -0
- data/spec/support/models/target.rb +7 -0
- data/spec/support/models/template.rb +7 -0
- data/spec/support/models/thing.rb +11 -0
- data/spec/support/models/threadlocker.rb +7 -0
- data/spec/support/models/title.rb +5 -0
- data/spec/support/models/tool.rb +10 -0
- data/spec/support/models/topping.rb +7 -0
- data/spec/support/models/toy.rb +9 -0
- data/spec/support/models/track.rb +40 -0
- data/spec/support/models/translation.rb +7 -0
- data/spec/support/models/tree.rb +11 -0
- data/spec/support/models/truck.rb +7 -0
- data/spec/support/models/updatable.rb +7 -0
- data/spec/support/models/user.rb +23 -0
- data/spec/support/models/user_account.rb +12 -0
- data/spec/support/models/validation_callback.rb +12 -0
- data/spec/support/models/vehicle.rb +18 -0
- data/spec/support/models/version.rb +7 -0
- data/spec/support/models/vertex.rb +8 -0
- data/spec/support/models/vet_visit.rb +7 -0
- data/spec/support/models/video.rb +15 -0
- data/spec/support/models/video_game.rb +3 -0
- data/spec/support/models/washer.rb +7 -0
- data/spec/support/models/weapon.rb +13 -0
- data/spec/support/models/wiki_page.rb +17 -0
- data/spec/support/models/word.rb +17 -0
- data/spec/support/models/word_origin.rb +13 -0
- data/spec/support/models/writer.rb +13 -0
- data/spec/support/schema_maps/schema_map_aws.json +17 -0
- data/spec/support/schema_maps/schema_map_aws_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_azure.json +17 -0
- data/spec/support/schema_maps/schema_map_azure_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_gcp.json +17 -0
- data/spec/support/schema_maps/schema_map_gcp_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_kmip.json +17 -0
- data/spec/support/schema_maps/schema_map_kmip_key_alt_names.json +12 -0
- data/spec/support/schema_maps/schema_map_local.json +18 -0
- data/spec/support/schema_maps/schema_map_local_key_alt_names.json +12 -0
- data/spec/support/shared/time.rb +53 -0
- data/spec/support/spec_config.rb +28 -6
- data.tar.gz.sig +0 -0
- metadata +1304 -843
- metadata.gz.sig +3 -5
- data/lib/mongoid/criteria/queryable/forwardable.rb +0 -65
- data/lib/mongoid/matchable/all.rb +0 -27
- data/lib/mongoid/matchable/and.rb +0 -30
- data/lib/mongoid/matchable/default.rb +0 -72
- data/lib/mongoid/matchable/elem_match.rb +0 -28
- data/lib/mongoid/matchable/exists.rb +0 -23
- data/lib/mongoid/matchable/gt.rb +0 -23
- data/lib/mongoid/matchable/gte.rb +0 -23
- data/lib/mongoid/matchable/in.rb +0 -24
- data/lib/mongoid/matchable/lt.rb +0 -23
- data/lib/mongoid/matchable/lte.rb +0 -23
- data/lib/mongoid/matchable/ne.rb +0 -21
- data/lib/mongoid/matchable/nin.rb +0 -22
- data/lib/mongoid/matchable/nor.rb +0 -37
- data/lib/mongoid/matchable/or.rb +0 -33
- data/lib/mongoid/matchable/regexp.rb +0 -27
- data/lib/mongoid/matchable/size.rb +0 -21
- data/lib/mongoid/relations/accessors.rb +0 -267
- data/lib/mongoid/relations/auto_save.rb +0 -94
- data/lib/mongoid/relations/binding.rb +0 -218
- data/lib/mongoid/relations/bindings/embedded/in.rb +0 -59
- data/lib/mongoid/relations/bindings/embedded/many.rb +0 -43
- data/lib/mongoid/relations/bindings/embedded/one.rb +0 -45
- data/lib/mongoid/relations/bindings/referenced/in.rb +0 -65
- data/lib/mongoid/relations/bindings/referenced/many.rb +0 -38
- data/lib/mongoid/relations/bindings/referenced/many_to_many.rb +0 -70
- data/lib/mongoid/relations/bindings/referenced/one.rb +0 -44
- data/lib/mongoid/relations/bindings.rb +0 -9
- data/lib/mongoid/relations/builder.rb +0 -57
- data/lib/mongoid/relations/builders/embedded/in.rb +0 -29
- data/lib/mongoid/relations/builders/embedded/many.rb +0 -36
- data/lib/mongoid/relations/builders/embedded/one.rb +0 -30
- data/lib/mongoid/relations/builders/nested_attributes/many.rb +0 -199
- data/lib/mongoid/relations/builders/nested_attributes/one.rb +0 -126
- data/lib/mongoid/relations/builders/referenced/in.rb +0 -26
- data/lib/mongoid/relations/builders/referenced/many.rb +0 -26
- data/lib/mongoid/relations/builders/referenced/many_to_many.rb +0 -39
- data/lib/mongoid/relations/builders/referenced/one.rb +0 -26
- data/lib/mongoid/relations/builders.rb +0 -106
- data/lib/mongoid/relations/cascading/delete.rb +0 -44
- data/lib/mongoid/relations/cascading/destroy.rb +0 -43
- data/lib/mongoid/relations/cascading/nullify.rb +0 -35
- data/lib/mongoid/relations/cascading/restrict.rb +0 -39
- data/lib/mongoid/relations/cascading.rb +0 -56
- data/lib/mongoid/relations/constraint.rb +0 -55
- data/lib/mongoid/relations/conversions.rb +0 -34
- data/lib/mongoid/relations/counter_cache.rb +0 -160
- data/lib/mongoid/relations/cyclic.rb +0 -107
- data/lib/mongoid/relations/eager/base.rb +0 -153
- data/lib/mongoid/relations/eager/belongs_to.rb +0 -31
- data/lib/mongoid/relations/eager/has_and_belongs_to_many.rb +0 -47
- data/lib/mongoid/relations/eager/has_many.rb +0 -38
- data/lib/mongoid/relations/eager/has_one.rb +0 -30
- data/lib/mongoid/relations/eager.rb +0 -36
- data/lib/mongoid/relations/embedded/batchable.rb +0 -384
- data/lib/mongoid/relations/embedded/in.rb +0 -241
- data/lib/mongoid/relations/embedded/many.rb +0 -683
- data/lib/mongoid/relations/embedded/one.rb +0 -235
- data/lib/mongoid/relations/macros.rb +0 -367
- data/lib/mongoid/relations/many.rb +0 -242
- data/lib/mongoid/relations/marshalable.rb +0 -32
- data/lib/mongoid/relations/metadata.rb +0 -1179
- data/lib/mongoid/relations/nested_builder.rb +0 -74
- data/lib/mongoid/relations/one.rb +0 -60
- data/lib/mongoid/relations/options.rb +0 -49
- data/lib/mongoid/relations/polymorphic.rb +0 -39
- data/lib/mongoid/relations/proxy.rb +0 -215
- data/lib/mongoid/relations/referenced/in.rb +0 -304
- data/lib/mongoid/relations/referenced/many.rb +0 -812
- data/lib/mongoid/relations/referenced/many_to_many.rb +0 -479
- data/lib/mongoid/relations/referenced/one.rb +0 -290
- data/lib/mongoid/relations/reflections.rb +0 -64
- data/lib/mongoid/relations/synchronization.rb +0 -169
- data/lib/mongoid/relations/targets/enumerable.rb +0 -493
- data/lib/mongoid/relations/targets.rb +0 -2
- data/lib/mongoid/relations/touchable.rb +0 -97
- data/lib/mongoid/relations.rb +0 -148
- data/lib/support/ruby_version.rb +0 -26
- data/spec/app/models/account.rb +0 -36
- data/spec/app/models/acolyte.rb +0 -17
- data/spec/app/models/actor.rb +0 -18
- data/spec/app/models/actress.rb +0 -2
- data/spec/app/models/address.rb +0 -79
- data/spec/app/models/address_component.rb +0 -5
- data/spec/app/models/address_number.rb +0 -6
- data/spec/app/models/agency.rb +0 -5
- data/spec/app/models/agent.rb +0 -16
- data/spec/app/models/album.rb +0 -18
- data/spec/app/models/alert.rb +0 -7
- data/spec/app/models/animal.rb +0 -25
- data/spec/app/models/answer.rb +0 -6
- data/spec/app/models/appointment.rb +0 -7
- data/spec/app/models/article.rb +0 -12
- data/spec/app/models/artist.rb +0 -87
- data/spec/app/models/artwork.rb +0 -4
- data/spec/app/models/audio.rb +0 -5
- data/spec/app/models/augmentation.rb +0 -11
- data/spec/app/models/author.rb +0 -6
- data/spec/app/models/baby.rb +0 -4
- data/spec/app/models/band.rb +0 -31
- data/spec/app/models/bar.rb +0 -10
- data/spec/app/models/basic.rb +0 -6
- data/spec/app/models/bed.rb +0 -1
- data/spec/app/models/big_palette.rb +0 -2
- data/spec/app/models/birthday.rb +0 -13
- data/spec/app/models/bomb.rb +0 -4
- data/spec/app/models/book.rb +0 -16
- data/spec/app/models/breed.rb +0 -4
- data/spec/app/models/browser.rb +0 -6
- data/spec/app/models/building.rb +0 -6
- data/spec/app/models/building_address.rb +0 -7
- data/spec/app/models/bus.rb +0 -7
- data/spec/app/models/business.rb +0 -5
- data/spec/app/models/callback_test.rb +0 -9
- data/spec/app/models/canvas.rb +0 -25
- data/spec/app/models/car.rb +0 -1
- data/spec/app/models/cat.rb +0 -8
- data/spec/app/models/category.rb +0 -8
- data/spec/app/models/child.rb +0 -4
- data/spec/app/models/child_doc.rb +0 -22
- data/spec/app/models/church.rb +0 -6
- data/spec/app/models/circle.rb +0 -3
- data/spec/app/models/circuit.rb +0 -4
- data/spec/app/models/circus.rb +0 -7
- data/spec/app/models/code.rb +0 -11
- data/spec/app/models/comment.rb +0 -16
- data/spec/app/models/company.rb +0 -5
- data/spec/app/models/consumption_period.rb +0 -7
- data/spec/app/models/contextable_item.rb +0 -5
- data/spec/app/models/contractor.rb +0 -5
- data/spec/app/models/cookie.rb +0 -6
- data/spec/app/models/country_code.rb +0 -8
- data/spec/app/models/courier_job.rb +0 -4
- data/spec/app/models/definition.rb +0 -9
- data/spec/app/models/delegating_patient.rb +0 -16
- data/spec/app/models/description.rb +0 -11
- data/spec/app/models/dictionary.rb +0 -10
- data/spec/app/models/division.rb +0 -10
- data/spec/app/models/doctor.rb +0 -12
- data/spec/app/models/dog.rb +0 -7
- data/spec/app/models/dokument.rb +0 -6
- data/spec/app/models/draft.rb +0 -9
- data/spec/app/models/dragon.rb +0 -4
- data/spec/app/models/driver.rb +0 -7
- data/spec/app/models/drug.rb +0 -6
- data/spec/app/models/dungeon.rb +0 -4
- data/spec/app/models/edit.rb +0 -5
- data/spec/app/models/email.rb +0 -6
- data/spec/app/models/employer.rb +0 -5
- data/spec/app/models/entry.rb +0 -6
- data/spec/app/models/eraser.rb +0 -1
- data/spec/app/models/even.rb +0 -7
- data/spec/app/models/event.rb +0 -22
- data/spec/app/models/exhibition.rb +0 -4
- data/spec/app/models/exhibitor.rb +0 -6
- data/spec/app/models/explosion.rb +0 -4
- data/spec/app/models/eye.rb +0 -9
- data/spec/app/models/eye_bowl.rb +0 -9
- data/spec/app/models/face.rb +0 -8
- data/spec/app/models/favorite.rb +0 -6
- data/spec/app/models/filesystem.rb +0 -5
- data/spec/app/models/fire_hydrant.rb +0 -6
- data/spec/app/models/firefox.rb +0 -4
- data/spec/app/models/fish.rb +0 -7
- data/spec/app/models/folder.rb +0 -7
- data/spec/app/models/folder_item.rb +0 -9
- data/spec/app/models/fruits.rb +0 -34
- data/spec/app/models/game.rb +0 -19
- data/spec/app/models/ghost.rb +0 -7
- data/spec/app/models/home.rb +0 -4
- data/spec/app/models/house.rb +0 -6
- data/spec/app/models/html_writer.rb +0 -3
- data/spec/app/models/id_key.rb +0 -6
- data/spec/app/models/image.rb +0 -22
- data/spec/app/models/implant.rb +0 -16
- data/spec/app/models/item.rb +0 -8
- data/spec/app/models/jar.rb +0 -7
- data/spec/app/models/kaleidoscope.rb +0 -6
- data/spec/app/models/kangaroo.rb +0 -4
- data/spec/app/models/label.rb +0 -47
- data/spec/app/models/language.rb +0 -5
- data/spec/app/models/lat_lng.rb +0 -15
- data/spec/app/models/league.rb +0 -11
- data/spec/app/models/learner.rb +0 -2
- data/spec/app/models/line_item.rb +0 -6
- data/spec/app/models/location.rb +0 -8
- data/spec/app/models/login.rb +0 -8
- data/spec/app/models/manufacturer.rb +0 -7
- data/spec/app/models/meat.rb +0 -4
- data/spec/app/models/membership.rb +0 -4
- data/spec/app/models/message.rb +0 -11
- data/spec/app/models/mixed_drink.rb +0 -4
- data/spec/app/models/movie.rb +0 -13
- data/spec/app/models/my_hash.rb +0 -2
- data/spec/app/models/name.rb +0 -24
- data/spec/app/models/node.rb +0 -5
- data/spec/app/models/note.rb +0 -17
- data/spec/app/models/odd.rb +0 -7
- data/spec/app/models/ordered_post.rb +0 -11
- data/spec/app/models/ordered_preference.rb +0 -6
- data/spec/app/models/oscar.rb +0 -14
- data/spec/app/models/override.rb +0 -16
- data/spec/app/models/ownable.rb +0 -6
- data/spec/app/models/owner.rb +0 -6
- data/spec/app/models/pack.rb +0 -3
- data/spec/app/models/page.rb +0 -16
- data/spec/app/models/page_question.rb +0 -4
- data/spec/app/models/palette.rb +0 -7
- data/spec/app/models/parent.rb +0 -5
- data/spec/app/models/parent_doc.rb +0 -6
- data/spec/app/models/passport.rb +0 -5
- data/spec/app/models/patient.rb +0 -9
- data/spec/app/models/pdf_writer.rb +0 -3
- data/spec/app/models/pencil.rb +0 -1
- data/spec/app/models/person.rb +0 -207
- data/spec/app/models/pet.rb +0 -23
- data/spec/app/models/pet_owner.rb +0 -6
- data/spec/app/models/phone.rb +0 -9
- data/spec/app/models/pizza.rb +0 -7
- data/spec/app/models/player.rb +0 -35
- data/spec/app/models/post.rb +0 -50
- data/spec/app/models/post_genre.rb +0 -6
- data/spec/app/models/powerup.rb +0 -11
- data/spec/app/models/preference.rb +0 -9
- data/spec/app/models/princess.rb +0 -10
- data/spec/app/models/product.rb +0 -17
- data/spec/app/models/profile.rb +0 -5
- data/spec/app/models/pronunciation.rb +0 -5
- data/spec/app/models/pub.rb +0 -6
- data/spec/app/models/purchase.rb +0 -4
- data/spec/app/models/question.rb +0 -8
- data/spec/app/models/quiz.rb +0 -7
- data/spec/app/models/rating.rb +0 -8
- data/spec/app/models/record.rb +0 -52
- data/spec/app/models/registry.rb +0 -4
- data/spec/app/models/role.rb +0 -7
- data/spec/app/models/root_category.rb +0 -4
- data/spec/app/models/sandwich.rb +0 -9
- data/spec/app/models/scheduler.rb +0 -7
- data/spec/app/models/seo.rb +0 -7
- data/spec/app/models/series.rb +0 -4
- data/spec/app/models/server.rb +0 -13
- data/spec/app/models/service.rb +0 -22
- data/spec/app/models/shape.rb +0 -12
- data/spec/app/models/shelf.rb +0 -5
- data/spec/app/models/shipment_address.rb +0 -2
- data/spec/app/models/shipping_container.rb +0 -5
- data/spec/app/models/shipping_pack.rb +0 -3
- data/spec/app/models/shop.rb +0 -6
- data/spec/app/models/short_agent.rb +0 -4
- data/spec/app/models/short_quiz.rb +0 -5
- data/spec/app/models/simple.rb +0 -5
- data/spec/app/models/slave.rb +0 -6
- data/spec/app/models/song.rb +0 -8
- data/spec/app/models/sound.rb +0 -5
- data/spec/app/models/square.rb +0 -4
- data/spec/app/models/staff.rb +0 -7
- data/spec/app/models/store_as_dup_test1.rb +0 -5
- data/spec/app/models/store_as_dup_test2.rb +0 -5
- data/spec/app/models/strategy.rb +0 -3
- data/spec/app/models/sub_item.rb +0 -3
- data/spec/app/models/subscription.rb +0 -5
- data/spec/app/models/survey.rb +0 -5
- data/spec/app/models/symptom.rb +0 -6
- data/spec/app/models/tag.rb +0 -8
- data/spec/app/models/target.rb +0 -5
- data/spec/app/models/template.rb +0 -5
- data/spec/app/models/thing.rb +0 -9
- data/spec/app/models/title.rb +0 -3
- data/spec/app/models/tool.rb +0 -8
- data/spec/app/models/topping.rb +0 -5
- data/spec/app/models/track.rb +0 -38
- data/spec/app/models/translation.rb +0 -5
- data/spec/app/models/tree.rb +0 -9
- data/spec/app/models/truck.rb +0 -3
- data/spec/app/models/user.rb +0 -21
- data/spec/app/models/user_account.rb +0 -10
- data/spec/app/models/validation_callback.rb +0 -10
- data/spec/app/models/vehicle.rb +0 -11
- data/spec/app/models/version.rb +0 -5
- data/spec/app/models/vet_visit.rb +0 -5
- data/spec/app/models/video.rb +0 -13
- data/spec/app/models/video_game.rb +0 -1
- data/spec/app/models/weapon.rb +0 -11
- data/spec/app/models/wiki_page.rb +0 -14
- data/spec/app/models/word.rb +0 -15
- data/spec/app/models/word_origin.rb +0 -11
- data/spec/app/models/writer.rb +0 -11
- data/spec/mongoid/criteria/queryable/forwardable_spec.rb +0 -87
- data/spec/mongoid/fields/internal/foreign_keys/array_spec.rb +0 -184
- data/spec/mongoid/fields/internal/foreign_keys/object_spec.rb +0 -201
- data/spec/mongoid/matchable/all_spec.rb +0 -31
- data/spec/mongoid/matchable/and_spec.rb +0 -187
- data/spec/mongoid/matchable/default_spec.rb +0 -130
- data/spec/mongoid/matchable/elem_match_spec.rb +0 -86
- data/spec/mongoid/matchable/exists_spec.rb +0 -57
- data/spec/mongoid/matchable/gt_spec.rb +0 -86
- data/spec/mongoid/matchable/gte_spec.rb +0 -84
- data/spec/mongoid/matchable/in_spec.rb +0 -49
- data/spec/mongoid/matchable/lt_spec.rb +0 -85
- data/spec/mongoid/matchable/lte_spec.rb +0 -85
- data/spec/mongoid/matchable/ne_spec.rb +0 -46
- data/spec/mongoid/matchable/nin_spec.rb +0 -48
- data/spec/mongoid/matchable/nor_spec.rb +0 -209
- data/spec/mongoid/matchable/or_spec.rb +0 -131
- data/spec/mongoid/matchable/regexp_spec.rb +0 -59
- data/spec/mongoid/matchable/size_spec.rb +0 -25
- data/spec/mongoid/matchable_spec.rb +0 -853
- data/spec/mongoid/relations/accessors_spec.rb +0 -821
- data/spec/mongoid/relations/auto_save_spec.rb +0 -314
- data/spec/mongoid/relations/bindings/embedded/in_spec.rb +0 -171
- data/spec/mongoid/relations/bindings/embedded/many_spec.rb +0 -54
- data/spec/mongoid/relations/bindings/embedded/one_spec.rb +0 -77
- data/spec/mongoid/relations/bindings/referenced/in_spec.rb +0 -241
- data/spec/mongoid/relations/bindings/referenced/many_spec.rb +0 -153
- data/spec/mongoid/relations/bindings/referenced/many_to_many_spec.rb +0 -178
- data/spec/mongoid/relations/bindings/referenced/one_spec.rb +0 -131
- data/spec/mongoid/relations/builders/embedded/in_spec.rb +0 -34
- data/spec/mongoid/relations/builders/embedded/many_spec.rb +0 -132
- data/spec/mongoid/relations/builders/embedded/one_spec.rb +0 -99
- data/spec/mongoid/relations/builders/nested_attributes/many_spec.rb +0 -233
- data/spec/mongoid/relations/builders/nested_attributes/one_spec.rb +0 -250
- data/spec/mongoid/relations/builders/referenced/in_spec.rb +0 -230
- data/spec/mongoid/relations/builders/referenced/many_spec.rb +0 -137
- data/spec/mongoid/relations/builders/referenced/many_to_many_spec.rb +0 -178
- data/spec/mongoid/relations/builders/referenced/one_spec.rb +0 -111
- data/spec/mongoid/relations/builders_spec.rb +0 -253
- data/spec/mongoid/relations/cascading/delete_spec.rb +0 -101
- data/spec/mongoid/relations/cascading/destroy_spec.rb +0 -47
- data/spec/mongoid/relations/cascading/nullify_spec.rb +0 -32
- data/spec/mongoid/relations/cascading/restrict_spec.rb +0 -68
- data/spec/mongoid/relations/cascading_spec.rb +0 -355
- data/spec/mongoid/relations/constraint_spec.rb +0 -75
- data/spec/mongoid/relations/conversions_spec.rb +0 -128
- data/spec/mongoid/relations/counter_cache_spec.rb +0 -450
- data/spec/mongoid/relations/cyclic_spec.rb +0 -178
- data/spec/mongoid/relations/eager/belongs_to_spec.rb +0 -163
- data/spec/mongoid/relations/eager/has_and_belongs_to_many_spec.rb +0 -133
- data/spec/mongoid/relations/eager/has_many_spec.rb +0 -244
- data/spec/mongoid/relations/eager/has_one_spec.rb +0 -163
- data/spec/mongoid/relations/eager_spec.rb +0 -279
- data/spec/mongoid/relations/embedded/dirty_spec.rb +0 -65
- data/spec/mongoid/relations/embedded/in_spec.rb +0 -579
- data/spec/mongoid/relations/embedded/many_spec.rb +0 -4412
- data/spec/mongoid/relations/embedded/one_spec.rb +0 -1068
- data/spec/mongoid/relations/macros_spec.rb +0 -1039
- data/spec/mongoid/relations/metadata_spec.rb +0 -1985
- data/spec/mongoid/relations/options_spec.rb +0 -35
- data/spec/mongoid/relations/polymorphic_spec.rb +0 -128
- data/spec/mongoid/relations/referenced/in_spec.rb +0 -1366
- data/spec/mongoid/relations/referenced/many_spec.rb +0 -3816
- data/spec/mongoid/relations/referenced/many_to_many_spec.rb +0 -3577
- data/spec/mongoid/relations/referenced/one_spec.rb +0 -1240
- data/spec/mongoid/relations/reflections_spec.rb +0 -101
- data/spec/mongoid/relations/synchronization_spec.rb +0 -495
- data/spec/mongoid/relations/targets/enumerable_spec.rb +0 -1825
- data/spec/mongoid/relations/touchable_spec.rb +0 -402
- data/spec/mongoid/relations_spec.rb +0 -189
- data/spec/support/cluster_config.rb +0 -158
- data/spec/support/session_registry.rb +0 -50
- /data/spec/{app → support}/models/array_field.rb +0 -0
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require "spec_helper"
|
|
2
4
|
|
|
3
5
|
describe Mongoid::Validatable::UniquenessValidator do
|
|
@@ -20,7 +22,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
20
22
|
|
|
21
23
|
before do
|
|
22
24
|
Dictionary.with(collection: "dicts") do |klass|
|
|
23
|
-
klass.create(name: "websters")
|
|
25
|
+
klass.create!(name: "websters")
|
|
24
26
|
end
|
|
25
27
|
end
|
|
26
28
|
|
|
@@ -78,7 +80,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
78
80
|
context "when the attribute id is unique" do
|
|
79
81
|
|
|
80
82
|
let(:dictionary) do
|
|
81
|
-
Dictionary.create
|
|
83
|
+
Dictionary.create!
|
|
82
84
|
end
|
|
83
85
|
|
|
84
86
|
let(:word) do
|
|
@@ -170,7 +172,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
170
172
|
context "when a document with no value exists in the database" do
|
|
171
173
|
|
|
172
174
|
before do
|
|
173
|
-
Dictionary.create
|
|
175
|
+
Dictionary.create!
|
|
174
176
|
end
|
|
175
177
|
|
|
176
178
|
let(:dictionary) do
|
|
@@ -188,7 +190,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
188
190
|
context "when single localization" do
|
|
189
191
|
|
|
190
192
|
before do
|
|
191
|
-
Dictionary.create(description: "english")
|
|
193
|
+
Dictionary.create!(description: "english")
|
|
192
194
|
end
|
|
193
195
|
|
|
194
196
|
let(:dictionary) do
|
|
@@ -224,7 +226,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
224
226
|
context "when single localization" do
|
|
225
227
|
|
|
226
228
|
before do
|
|
227
|
-
Dictionary.create(description: "english")
|
|
229
|
+
Dictionary.create!(description: "english")
|
|
228
230
|
end
|
|
229
231
|
|
|
230
232
|
let(:dictionary) do
|
|
@@ -280,7 +282,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
280
282
|
context "when there are no special characters" do
|
|
281
283
|
|
|
282
284
|
before do
|
|
283
|
-
Dictionary.create(description: "english")
|
|
285
|
+
Dictionary.create!(description: "english")
|
|
284
286
|
end
|
|
285
287
|
|
|
286
288
|
let(:dictionary) do
|
|
@@ -295,7 +297,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
295
297
|
context "when special characters exist" do
|
|
296
298
|
|
|
297
299
|
before do
|
|
298
|
-
Dictionary.create(description: "english")
|
|
300
|
+
Dictionary.create!(description: "english")
|
|
299
301
|
end
|
|
300
302
|
|
|
301
303
|
let(:dictionary) do
|
|
@@ -315,7 +317,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
315
317
|
context "when signle localization" do
|
|
316
318
|
|
|
317
319
|
before do
|
|
318
|
-
Dictionary.create(description: "english")
|
|
320
|
+
Dictionary.create!(description: "english")
|
|
319
321
|
end
|
|
320
322
|
|
|
321
323
|
let(:dictionary) do
|
|
@@ -357,7 +359,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
357
359
|
context "when the document is the match in the database" do
|
|
358
360
|
|
|
359
361
|
let!(:dictionary) do
|
|
360
|
-
Dictionary.create(description: "english")
|
|
362
|
+
Dictionary.create!(description: "english")
|
|
361
363
|
end
|
|
362
364
|
|
|
363
365
|
it "returns true" do
|
|
@@ -417,7 +419,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
417
419
|
context "when the attribute is unique" do
|
|
418
420
|
|
|
419
421
|
let!(:oxford) do
|
|
420
|
-
Dictionary.create(name: "Oxford")
|
|
422
|
+
Dictionary.create!(name: "Oxford")
|
|
421
423
|
end
|
|
422
424
|
|
|
423
425
|
let(:dictionary) do
|
|
@@ -445,7 +447,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
445
447
|
context "when the document is not the match" do
|
|
446
448
|
|
|
447
449
|
before do
|
|
448
|
-
Dictionary.create(name: "Oxford")
|
|
450
|
+
Dictionary.create!(name: "Oxford")
|
|
449
451
|
end
|
|
450
452
|
|
|
451
453
|
let!(:dictionary) do
|
|
@@ -467,7 +469,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
467
469
|
context "when the field has changed" do
|
|
468
470
|
|
|
469
471
|
let!(:dictionary) do
|
|
470
|
-
Dictionary.create(name: "Oxford")
|
|
472
|
+
Dictionary.create!(name: "Oxford")
|
|
471
473
|
end
|
|
472
474
|
|
|
473
475
|
it "returns true" do
|
|
@@ -519,7 +521,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
519
521
|
context "when the attribute is not unique" do
|
|
520
522
|
|
|
521
523
|
before do
|
|
522
|
-
Dictionary.create(name: "Oxford")
|
|
524
|
+
Dictionary.create!(name: "Oxford")
|
|
523
525
|
end
|
|
524
526
|
|
|
525
527
|
let(:dictionary) do
|
|
@@ -546,7 +548,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
546
548
|
context "when the attribute is unique" do
|
|
547
549
|
|
|
548
550
|
before do
|
|
549
|
-
Dictionary.create(name: "Oxford", language: "English")
|
|
551
|
+
Dictionary.create!(name: "Oxford", language: "English")
|
|
550
552
|
end
|
|
551
553
|
|
|
552
554
|
let(:dictionary) do
|
|
@@ -561,7 +563,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
561
563
|
context "when the attribute is unique in the scope" do
|
|
562
564
|
|
|
563
565
|
before do
|
|
564
|
-
Dictionary.create(name: "Oxford", language: "English")
|
|
566
|
+
Dictionary.create!(name: "Oxford", language: "English")
|
|
565
567
|
end
|
|
566
568
|
|
|
567
569
|
let(:dictionary) do
|
|
@@ -576,7 +578,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
576
578
|
context "when the attribute is not unique with no scope" do
|
|
577
579
|
|
|
578
580
|
before do
|
|
579
|
-
Dictionary.create(name: "Oxford", language: "English")
|
|
581
|
+
Dictionary.create!(name: "Oxford", language: "English")
|
|
580
582
|
end
|
|
581
583
|
|
|
582
584
|
let(:dictionary) do
|
|
@@ -591,7 +593,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
591
593
|
context "when the attribute is not unique in another scope" do
|
|
592
594
|
|
|
593
595
|
before do
|
|
594
|
-
Dictionary.create(name: "Oxford", language: "English")
|
|
596
|
+
Dictionary.create!(name: "Oxford", language: "English")
|
|
595
597
|
end
|
|
596
598
|
|
|
597
599
|
let(:dictionary) do
|
|
@@ -608,7 +610,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
608
610
|
context "when the document is not the match" do
|
|
609
611
|
|
|
610
612
|
before do
|
|
611
|
-
Dictionary.create(name: "Oxford", language: "English")
|
|
613
|
+
Dictionary.create!(name: "Oxford", language: "English")
|
|
612
614
|
end
|
|
613
615
|
|
|
614
616
|
let(:dictionary) do
|
|
@@ -628,7 +630,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
628
630
|
context "when the document is the match in the database" do
|
|
629
631
|
|
|
630
632
|
let!(:dictionary) do
|
|
631
|
-
Dictionary.create(name: "Oxford", language: "English")
|
|
633
|
+
Dictionary.create!(name: "Oxford", language: "English")
|
|
632
634
|
end
|
|
633
635
|
|
|
634
636
|
it "returns true" do
|
|
@@ -651,7 +653,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
651
653
|
context "when the attribute is unique" do
|
|
652
654
|
|
|
653
655
|
before do
|
|
654
|
-
Dictionary.create(name: "Oxford", publisher: "Amazon")
|
|
656
|
+
Dictionary.create!(name: "Oxford", publisher: "Amazon")
|
|
655
657
|
end
|
|
656
658
|
|
|
657
659
|
let(:dictionary) do
|
|
@@ -666,7 +668,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
666
668
|
context "when the attribute is unique in the scope" do
|
|
667
669
|
|
|
668
670
|
before do
|
|
669
|
-
Dictionary.create(name: "Oxford", publisher: "Amazon")
|
|
671
|
+
Dictionary.create!(name: "Oxford", publisher: "Amazon")
|
|
670
672
|
end
|
|
671
673
|
|
|
672
674
|
let(:dictionary) do
|
|
@@ -706,7 +708,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
706
708
|
context "when the attribute is not unique with no scope" do
|
|
707
709
|
|
|
708
710
|
before do
|
|
709
|
-
Dictionary.create(name: "Oxford", publisher: "Amazon")
|
|
711
|
+
Dictionary.create!(name: "Oxford", publisher: "Amazon")
|
|
710
712
|
end
|
|
711
713
|
|
|
712
714
|
let(:dictionary) do
|
|
@@ -721,7 +723,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
721
723
|
context "when the attribute is not unique in another scope" do
|
|
722
724
|
|
|
723
725
|
before do
|
|
724
|
-
Dictionary.create(name: "Oxford", publisher: "Amazon")
|
|
726
|
+
Dictionary.create!(name: "Oxford", publisher: "Amazon")
|
|
725
727
|
end
|
|
726
728
|
|
|
727
729
|
let(:dictionary) do
|
|
@@ -738,7 +740,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
738
740
|
context "when the document is not the match" do
|
|
739
741
|
|
|
740
742
|
before do
|
|
741
|
-
Dictionary.create(name: "Oxford", publisher: "Amazon")
|
|
743
|
+
Dictionary.create!(name: "Oxford", publisher: "Amazon")
|
|
742
744
|
end
|
|
743
745
|
|
|
744
746
|
let(:dictionary) do
|
|
@@ -758,7 +760,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
758
760
|
context "when the document is the match in the database" do
|
|
759
761
|
|
|
760
762
|
let!(:dictionary) do
|
|
761
|
-
Dictionary.create(name: "Oxford", publisher: "Amazon")
|
|
763
|
+
Dictionary.create!(name: "Oxford", publisher: "Amazon")
|
|
762
764
|
end
|
|
763
765
|
|
|
764
766
|
it "returns true" do
|
|
@@ -769,7 +771,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
769
771
|
context "when one of the scopes is a time" do
|
|
770
772
|
|
|
771
773
|
before do
|
|
772
|
-
Dictionary.create(
|
|
774
|
+
Dictionary.create!(
|
|
773
775
|
name: "Oxford",
|
|
774
776
|
publisher: "Amazon",
|
|
775
777
|
published: 10.days.ago.to_time
|
|
@@ -796,20 +798,47 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
796
798
|
end
|
|
797
799
|
end
|
|
798
800
|
|
|
799
|
-
context "when a range
|
|
801
|
+
context "when a range condition is provided" do
|
|
800
802
|
|
|
801
803
|
before do
|
|
802
|
-
Dictionary.validates_uniqueness_of(:name,
|
|
803
|
-
|
|
804
|
-
Dictionary.create(name: "French-English", year: 1960)
|
|
804
|
+
Dictionary.validates_uniqueness_of(:name,
|
|
805
|
+
conditions: -> { Dictionary.where(:year.gte => 1900, :year.lt => 2000) })
|
|
805
806
|
end
|
|
806
807
|
|
|
807
808
|
after do
|
|
808
809
|
Dictionary.reset_callbacks(:validate)
|
|
809
810
|
end
|
|
810
811
|
|
|
811
|
-
|
|
812
|
-
|
|
812
|
+
context 'when multiple documents would match the condition' do
|
|
813
|
+
it "prevents creation of new document" do
|
|
814
|
+
Dictionary.create!(name: "French-English", year: 1950)
|
|
815
|
+
|
|
816
|
+
expect do
|
|
817
|
+
Dictionary.create!(name: "French-English", year: 1960)
|
|
818
|
+
end.to raise_error(Mongoid::Errors::Validations, /Name is already taken/)
|
|
819
|
+
|
|
820
|
+
expect(Dictionary.all.size).to eq(1)
|
|
821
|
+
end
|
|
822
|
+
end
|
|
823
|
+
|
|
824
|
+
context 'when only new document would match the condition' do
|
|
825
|
+
it 'creates the new document' do
|
|
826
|
+
Dictionary.create!(name: "French-English", year: 950)
|
|
827
|
+
expect do
|
|
828
|
+
Dictionary.create!(name: "French-English", year: 1950)
|
|
829
|
+
end.not_to raise_error
|
|
830
|
+
end
|
|
831
|
+
end
|
|
832
|
+
|
|
833
|
+
context 'when only existing document matches the condition' do
|
|
834
|
+
it 'creates the new document' do
|
|
835
|
+
pending 'https://jira.mongodb.org/browse/MONGOID-4815'
|
|
836
|
+
|
|
837
|
+
Dictionary.create!(name: "French-English", year: 1950)
|
|
838
|
+
expect do
|
|
839
|
+
Dictionary.create!(name: "French-English", year: 950)
|
|
840
|
+
end.not_to raise_error
|
|
841
|
+
end
|
|
813
842
|
end
|
|
814
843
|
end
|
|
815
844
|
|
|
@@ -826,7 +855,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
826
855
|
context "when the attribute is unique" do
|
|
827
856
|
|
|
828
857
|
before do
|
|
829
|
-
Dictionary.create(name: "Oxford", publisher: "Amazon")
|
|
858
|
+
Dictionary.create!(name: "Oxford", publisher: "Amazon")
|
|
830
859
|
end
|
|
831
860
|
|
|
832
861
|
let(:dictionary) do
|
|
@@ -841,7 +870,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
841
870
|
context "when the attribute is unique in the scope" do
|
|
842
871
|
|
|
843
872
|
before do
|
|
844
|
-
Dictionary.create(
|
|
873
|
+
Dictionary.create!(
|
|
845
874
|
name: "Oxford",
|
|
846
875
|
publisher: "Amazon",
|
|
847
876
|
year: 2011
|
|
@@ -864,7 +893,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
864
893
|
context "when the attribute is not unique with no scope" do
|
|
865
894
|
|
|
866
895
|
before do
|
|
867
|
-
Dictionary.create(name: "Oxford", publisher: "Amazon")
|
|
896
|
+
Dictionary.create!(name: "Oxford", publisher: "Amazon")
|
|
868
897
|
end
|
|
869
898
|
|
|
870
899
|
let(:dictionary) do
|
|
@@ -879,7 +908,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
879
908
|
context "when the attribute is not unique in another scope" do
|
|
880
909
|
|
|
881
910
|
before do
|
|
882
|
-
Dictionary.create(
|
|
911
|
+
Dictionary.create!(
|
|
883
912
|
name: "Oxford",
|
|
884
913
|
publisher: "Amazon",
|
|
885
914
|
year: 1995
|
|
@@ -904,7 +933,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
904
933
|
context "when the document is not the match" do
|
|
905
934
|
|
|
906
935
|
before do
|
|
907
|
-
Dictionary.create(
|
|
936
|
+
Dictionary.create!(
|
|
908
937
|
name: "Oxford",
|
|
909
938
|
publisher: "Amazon",
|
|
910
939
|
year: 1960
|
|
@@ -932,7 +961,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
932
961
|
context "when the document is the match in the database" do
|
|
933
962
|
|
|
934
963
|
let!(:dictionary) do
|
|
935
|
-
Dictionary.create(
|
|
964
|
+
Dictionary.create!(
|
|
936
965
|
name: "Oxford",
|
|
937
966
|
publisher: "Amazon",
|
|
938
967
|
year: 1960
|
|
@@ -959,7 +988,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
959
988
|
context "when the attribute is unique" do
|
|
960
989
|
|
|
961
990
|
before do
|
|
962
|
-
Dictionary.create(name: "Oxford")
|
|
991
|
+
Dictionary.create!(name: "Oxford")
|
|
963
992
|
end
|
|
964
993
|
|
|
965
994
|
let(:dictionary) do
|
|
@@ -976,7 +1005,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
976
1005
|
context "when the document is not the match" do
|
|
977
1006
|
|
|
978
1007
|
before do
|
|
979
|
-
Dictionary.create(name: "Oxford")
|
|
1008
|
+
Dictionary.create!(name: "Oxford")
|
|
980
1009
|
end
|
|
981
1010
|
|
|
982
1011
|
let(:dictionary) do
|
|
@@ -996,7 +1025,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
996
1025
|
context "when the document is the match in the database" do
|
|
997
1026
|
|
|
998
1027
|
let!(:dictionary) do
|
|
999
|
-
Dictionary.create(name: "Oxford")
|
|
1028
|
+
Dictionary.create!(name: "Oxford")
|
|
1000
1029
|
end
|
|
1001
1030
|
|
|
1002
1031
|
it "returns true" do
|
|
@@ -1021,7 +1050,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1021
1050
|
context "when there are no special characters" do
|
|
1022
1051
|
|
|
1023
1052
|
before do
|
|
1024
|
-
Dictionary.create(name: "Oxford")
|
|
1053
|
+
Dictionary.create!(name: "Oxford")
|
|
1025
1054
|
end
|
|
1026
1055
|
|
|
1027
1056
|
let(:dictionary) do
|
|
@@ -1036,7 +1065,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1036
1065
|
context "when special characters exist" do
|
|
1037
1066
|
|
|
1038
1067
|
before do
|
|
1039
|
-
Dictionary.create(name: "Oxford")
|
|
1068
|
+
Dictionary.create!(name: "Oxford")
|
|
1040
1069
|
end
|
|
1041
1070
|
|
|
1042
1071
|
let(:dictionary) do
|
|
@@ -1054,7 +1083,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1054
1083
|
context "when the document is not the match" do
|
|
1055
1084
|
|
|
1056
1085
|
before do
|
|
1057
|
-
Dictionary.create(name: "Oxford")
|
|
1086
|
+
Dictionary.create!(name: "Oxford")
|
|
1058
1087
|
end
|
|
1059
1088
|
|
|
1060
1089
|
let(:dictionary) do
|
|
@@ -1074,7 +1103,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1074
1103
|
context "when the document is the match in the database" do
|
|
1075
1104
|
|
|
1076
1105
|
let!(:dictionary) do
|
|
1077
|
-
Dictionary.create(name: "Oxford")
|
|
1106
|
+
Dictionary.create!(name: "Oxford")
|
|
1078
1107
|
end
|
|
1079
1108
|
|
|
1080
1109
|
it "returns true" do
|
|
@@ -1104,7 +1133,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1104
1133
|
context "when the attribute is nil" do
|
|
1105
1134
|
|
|
1106
1135
|
before do
|
|
1107
|
-
Dictionary.create
|
|
1136
|
+
Dictionary.create!
|
|
1108
1137
|
end
|
|
1109
1138
|
|
|
1110
1139
|
let(:dictionary) do
|
|
@@ -1130,7 +1159,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1130
1159
|
context "when the attribute is blank" do
|
|
1131
1160
|
|
|
1132
1161
|
before do
|
|
1133
|
-
Dictionary.create(name: "")
|
|
1162
|
+
Dictionary.create!(name: "")
|
|
1134
1163
|
end
|
|
1135
1164
|
|
|
1136
1165
|
let(:dictionary) do
|
|
@@ -1159,7 +1188,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1159
1188
|
context "when the attribute is unique" do
|
|
1160
1189
|
|
|
1161
1190
|
before do
|
|
1162
|
-
Login.create(username: "Oxford")
|
|
1191
|
+
Login.create!(username: "Oxford")
|
|
1163
1192
|
end
|
|
1164
1193
|
|
|
1165
1194
|
let(:login) do
|
|
@@ -1176,7 +1205,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1176
1205
|
context "when the document is not the match" do
|
|
1177
1206
|
|
|
1178
1207
|
before do
|
|
1179
|
-
Login.create(username: "Oxford")
|
|
1208
|
+
Login.create!(username: "Oxford")
|
|
1180
1209
|
end
|
|
1181
1210
|
|
|
1182
1211
|
let(:login) do
|
|
@@ -1196,7 +1225,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1196
1225
|
context "when the document is the match in the database" do
|
|
1197
1226
|
|
|
1198
1227
|
let!(:login) do
|
|
1199
|
-
Login.create(username: "Oxford")
|
|
1228
|
+
Login.create!(username: "Oxford")
|
|
1200
1229
|
end
|
|
1201
1230
|
|
|
1202
1231
|
it "returns true" do
|
|
@@ -1219,7 +1248,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1219
1248
|
context "when the attribute is unique" do
|
|
1220
1249
|
|
|
1221
1250
|
before do
|
|
1222
|
-
Login.create(username: "Oxford", application_id: 1)
|
|
1251
|
+
Login.create!(username: "Oxford", application_id: 1)
|
|
1223
1252
|
end
|
|
1224
1253
|
|
|
1225
1254
|
let(:login) do
|
|
@@ -1234,7 +1263,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1234
1263
|
context "when the attribute is unique in the scope" do
|
|
1235
1264
|
|
|
1236
1265
|
before do
|
|
1237
|
-
Login.create(username: "Oxford", application_id: 1)
|
|
1266
|
+
Login.create!(username: "Oxford", application_id: 1)
|
|
1238
1267
|
end
|
|
1239
1268
|
|
|
1240
1269
|
let(:login) do
|
|
@@ -1249,7 +1278,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1249
1278
|
context "when the attribute is not unique with no scope" do
|
|
1250
1279
|
|
|
1251
1280
|
before do
|
|
1252
|
-
Login.create(username: "Oxford", application_id: 1)
|
|
1281
|
+
Login.create!(username: "Oxford", application_id: 1)
|
|
1253
1282
|
end
|
|
1254
1283
|
|
|
1255
1284
|
let(:login) do
|
|
@@ -1264,7 +1293,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1264
1293
|
context "when the attribute is not unique in another scope" do
|
|
1265
1294
|
|
|
1266
1295
|
before do
|
|
1267
|
-
Login.create(username: "Oxford", application_id: 1)
|
|
1296
|
+
Login.create!(username: "Oxford", application_id: 1)
|
|
1268
1297
|
end
|
|
1269
1298
|
|
|
1270
1299
|
let(:login) do
|
|
@@ -1281,7 +1310,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1281
1310
|
context "when the document is not the match" do
|
|
1282
1311
|
|
|
1283
1312
|
before do
|
|
1284
|
-
Login.create(username: "Oxford", application_id: 1)
|
|
1313
|
+
Login.create!(username: "Oxford", application_id: 1)
|
|
1285
1314
|
end
|
|
1286
1315
|
|
|
1287
1316
|
let(:login) do
|
|
@@ -1301,7 +1330,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1301
1330
|
context "when the document is the match in the database" do
|
|
1302
1331
|
|
|
1303
1332
|
let!(:login) do
|
|
1304
|
-
Login.create(username: "Oxford", application_id: 1)
|
|
1333
|
+
Login.create!(username: "Oxford", application_id: 1)
|
|
1305
1334
|
end
|
|
1306
1335
|
|
|
1307
1336
|
it "returns true" do
|
|
@@ -1324,7 +1353,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1324
1353
|
context "when the attribute is unique" do
|
|
1325
1354
|
|
|
1326
1355
|
before do
|
|
1327
|
-
Login.create(username: "Oxford")
|
|
1356
|
+
Login.create!(username: "Oxford")
|
|
1328
1357
|
end
|
|
1329
1358
|
|
|
1330
1359
|
let(:login) do
|
|
@@ -1341,7 +1370,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1341
1370
|
context "when the document is not the match" do
|
|
1342
1371
|
|
|
1343
1372
|
before do
|
|
1344
|
-
Login.create(username: "Oxford")
|
|
1373
|
+
Login.create!(username: "Oxford")
|
|
1345
1374
|
end
|
|
1346
1375
|
|
|
1347
1376
|
let(:login) do
|
|
@@ -1361,7 +1390,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1361
1390
|
context "when the document is the match in the database" do
|
|
1362
1391
|
|
|
1363
1392
|
let!(:login) do
|
|
1364
|
-
Login.create(username: "Oxford")
|
|
1393
|
+
Login.create!(username: "Oxford")
|
|
1365
1394
|
end
|
|
1366
1395
|
|
|
1367
1396
|
it "returns true" do
|
|
@@ -1386,7 +1415,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1386
1415
|
context "when there are no special characters" do
|
|
1387
1416
|
|
|
1388
1417
|
before do
|
|
1389
|
-
Login.create(username: "Oxford")
|
|
1418
|
+
Login.create!(username: "Oxford")
|
|
1390
1419
|
end
|
|
1391
1420
|
|
|
1392
1421
|
let(:login) do
|
|
@@ -1401,7 +1430,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1401
1430
|
context "when special characters exist" do
|
|
1402
1431
|
|
|
1403
1432
|
before do
|
|
1404
|
-
Login.create(username: "Oxford")
|
|
1433
|
+
Login.create!(username: "Oxford")
|
|
1405
1434
|
end
|
|
1406
1435
|
|
|
1407
1436
|
let(:login) do
|
|
@@ -1419,7 +1448,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1419
1448
|
context "when the document is not the match" do
|
|
1420
1449
|
|
|
1421
1450
|
before do
|
|
1422
|
-
Login.create(username: "Oxford")
|
|
1451
|
+
Login.create!(username: "Oxford")
|
|
1423
1452
|
end
|
|
1424
1453
|
|
|
1425
1454
|
let(:login) do
|
|
@@ -1439,7 +1468,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1439
1468
|
context "when the document is the match in the database" do
|
|
1440
1469
|
|
|
1441
1470
|
let!(:login) do
|
|
1442
|
-
Login.create(username: "Oxford")
|
|
1471
|
+
Login.create!(username: "Oxford")
|
|
1443
1472
|
end
|
|
1444
1473
|
|
|
1445
1474
|
it "returns true" do
|
|
@@ -1462,7 +1491,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1462
1491
|
context "when the attribute is nil" do
|
|
1463
1492
|
|
|
1464
1493
|
before do
|
|
1465
|
-
Login.create
|
|
1494
|
+
Login.create!
|
|
1466
1495
|
end
|
|
1467
1496
|
|
|
1468
1497
|
let(:login) do
|
|
@@ -1488,7 +1517,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1488
1517
|
context "when the attribute is blank" do
|
|
1489
1518
|
|
|
1490
1519
|
before do
|
|
1491
|
-
Login.create(username: "")
|
|
1520
|
+
Login.create!(username: "")
|
|
1492
1521
|
end
|
|
1493
1522
|
|
|
1494
1523
|
let(:login) do
|
|
@@ -1515,7 +1544,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1515
1544
|
context "when the attribute is unique" do
|
|
1516
1545
|
|
|
1517
1546
|
before do
|
|
1518
|
-
Bar.create(lat_lng: LatLng.new(52.30, 13.25))
|
|
1547
|
+
Bar.create!(lat_lng: LatLng.new(52.30, 13.25))
|
|
1519
1548
|
end
|
|
1520
1549
|
|
|
1521
1550
|
let(:unique_bar) do
|
|
@@ -1531,7 +1560,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1531
1560
|
context "when the attribute is not unique" do
|
|
1532
1561
|
|
|
1533
1562
|
before do
|
|
1534
|
-
Bar.create(lat_lng: LatLng.new(52.30, 13.25))
|
|
1563
|
+
Bar.create!(lat_lng: LatLng.new(52.30, 13.25))
|
|
1535
1564
|
end
|
|
1536
1565
|
|
|
1537
1566
|
let(:non_unique_bar) do
|
|
@@ -1558,7 +1587,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1558
1587
|
context "when the attribute is unique" do
|
|
1559
1588
|
|
|
1560
1589
|
before do
|
|
1561
|
-
Band.create(name: 'Foo', active: false)
|
|
1590
|
+
Band.create!(name: 'Foo', active: false)
|
|
1562
1591
|
end
|
|
1563
1592
|
|
|
1564
1593
|
let(:unique_band) do
|
|
@@ -1574,7 +1603,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1574
1603
|
context "when the attribute is not unique" do
|
|
1575
1604
|
|
|
1576
1605
|
before do
|
|
1577
|
-
Band.create(name: 'Foo')
|
|
1606
|
+
Band.create!(name: 'Foo')
|
|
1578
1607
|
end
|
|
1579
1608
|
|
|
1580
1609
|
let(:non_unique_band) do
|
|
@@ -1592,17 +1621,17 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
1592
1621
|
context "when the document is embedded" do
|
|
1593
1622
|
|
|
1594
1623
|
let(:word) do
|
|
1595
|
-
Word.create(name: "Schadenfreude")
|
|
1624
|
+
Word.create!(name: "Schadenfreude")
|
|
1596
1625
|
end
|
|
1597
1626
|
|
|
1598
1627
|
context "when in an embeds_many" do
|
|
1599
1628
|
|
|
1600
1629
|
let!(:def_one) do
|
|
1601
|
-
word.definitions.create(description: "1")
|
|
1630
|
+
word.definitions.create!(description: "1")
|
|
1602
1631
|
end
|
|
1603
1632
|
|
|
1604
1633
|
let!(:def_two) do
|
|
1605
|
-
word.definitions.create(description: "2")
|
|
1634
|
+
word.definitions.create!(description: "2")
|
|
1606
1635
|
end
|
|
1607
1636
|
|
|
1608
1637
|
context "when a document is being destroyed" do
|
|
@@ -2429,7 +2458,7 @@ describe Mongoid::Validatable::UniquenessValidator do
|
|
|
2429
2458
|
end
|
|
2430
2459
|
|
|
2431
2460
|
let!(:person) do
|
|
2432
|
-
Person.create(ssn: "132-11-1111", username: "aaasdaffff")
|
|
2461
|
+
Person.create!(ssn: "132-11-1111", username: "aaasdaffff")
|
|
2433
2462
|
end
|
|
2434
2463
|
|
|
2435
2464
|
after do
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require "spec_helper"
|
|
2
4
|
|
|
3
5
|
describe Mongoid::Validatable do
|
|
@@ -34,7 +36,7 @@ describe Mongoid::Validatable do
|
|
|
34
36
|
end
|
|
35
37
|
|
|
36
38
|
let(:documents) do
|
|
37
|
-
Mongoid::
|
|
39
|
+
Mongoid::Association::Referenced::HasMany::Enumerable.new([ address ])
|
|
38
40
|
end
|
|
39
41
|
|
|
40
42
|
before do
|
|
@@ -100,7 +102,7 @@ describe Mongoid::Validatable do
|
|
|
100
102
|
|
|
101
103
|
before do
|
|
102
104
|
account.name = "Testing"
|
|
103
|
-
account.save
|
|
105
|
+
account.save!
|
|
104
106
|
account.name = "Testing a really long name."
|
|
105
107
|
end
|
|
106
108
|
|
|
@@ -118,7 +120,7 @@ describe Mongoid::Validatable do
|
|
|
118
120
|
|
|
119
121
|
before do
|
|
120
122
|
pizza.build_topping(name: "cheese")
|
|
121
|
-
pizza.save
|
|
123
|
+
pizza.save!
|
|
122
124
|
end
|
|
123
125
|
|
|
124
126
|
let(:from_db) do
|
data/spec/mongoid_spec.rb
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require "spec_helper"
|
|
2
4
|
|
|
3
5
|
describe Mongoid do
|
|
@@ -49,8 +51,14 @@ describe Mongoid do
|
|
|
49
51
|
end
|
|
50
52
|
|
|
51
53
|
it "disconnects from all active clients" do
|
|
54
|
+
method_name = if Gem::Version.new(Mongo::VERSION) >= Gem::Version.new('2.19.0')
|
|
55
|
+
:close
|
|
56
|
+
else
|
|
57
|
+
:disconnect!
|
|
58
|
+
end
|
|
59
|
+
|
|
52
60
|
clients.each do |client|
|
|
53
|
-
expect(client.cluster).to receive(
|
|
61
|
+
expect(client.cluster).to receive(method_name).and_call_original
|
|
54
62
|
end
|
|
55
63
|
Mongoid.disconnect_clients
|
|
56
64
|
end
|