module AssertMoar::Assertions
Public Instance Methods
assert_memoizes_method_result(object, method)
click to toggle source
# File lib/assert_moar/assertions.rb, line 60 def assert_memoizes_method_result(object, method) result = object.send(method) assert_same object.send(method), result end
assert_valid(object)
click to toggle source
# File lib/assert_moar/assertions.rb, line 52 def assert_valid(object) assert object.valid?, "Expected object to be valid" end
assert_validates_absence_of(object, property)
click to toggle source
# File lib/assert_moar/assertions.rb, line 22 def assert_validates_absence_of(object, property) assert has_validator?(object, property, ::ActiveModel::Validations::AbsenceValidator), "#{object} does not validate the absence of #{property}" end
assert_validates_acceptance_of(object, property)
click to toggle source
# File lib/assert_moar/assertions.rb, line 32 def assert_validates_acceptance_of(object, property) assert has_validator?(object, property, ::ActiveModel::Validations::AcceptanceValidator), "#{object} does not validate the acceptance of #{property}" end
assert_validates_presence_of(object, property)
click to toggle source
# File lib/assert_moar/assertions.rb, line 2 def assert_validates_presence_of(object, property) assert has_validator?(object, property, ::ActiveModel::Validations::PresenceValidator), "#{object} does not validate the presence of #{property}" end
assert_validates_uniqueness_of(object, property)
click to toggle source
# File lib/assert_moar/assertions.rb, line 12 def assert_validates_uniqueness_of(object, property) assert has_validator?(object, property, ::ActiveRecord::Validations::UniquenessValidator), "#{object} does not validate the presence of #{property}" end
assert_validates_with_callback(object, callback)
click to toggle source
# File lib/assert_moar/assertions.rb, line 42 def assert_validates_with_callback(object, callback) assert has_callback_validator?(object, callback), "#{object} does not validate with #{callback}" end
refute_memoizes_method_result(object, method)
click to toggle source
# File lib/assert_moar/assertions.rb, line 65 def refute_memoizes_method_result(object, method) result = object.send(method) refute_same object.send(method), result end
refute_valid(object)
click to toggle source
# File lib/assert_moar/assertions.rb, line 56 def refute_valid object refute object.valid?, "Expected object to not be valid" end
refute_validates_absence_of(object, property)
click to toggle source
# File lib/assert_moar/assertions.rb, line 27 def refute_validates_absence_of(object, property) refute has_validator?(object, property, ::ActiveModel::Validations::AbsenceValidator), "#{object} validates absence of #{property}" end
refute_validates_acceptance_of(object, property)
click to toggle source
# File lib/assert_moar/assertions.rb, line 37 def refute_validates_acceptance_of(object, property) refute has_validator?(object, property, ::ActiveModel::Validations::AcceptanceValidator), "#{object} validates the acceptance of #{property}" end
refute_validates_presence_of(object, property)
click to toggle source
# File lib/assert_moar/assertions.rb, line 7 def refute_validates_presence_of(object, property) refute has_validator?(object, property, ::ActiveModel::Validations::PresenceValidator), "#{object} validates presence of #{property}" end
refute_validates_uniqueness_of(object, property)
click to toggle source
# File lib/assert_moar/assertions.rb, line 17 def refute_validates_uniqueness_of(object, property) refute has_validator?(object, property, ::ActiveRecord::Validations::UniquenessValidator), "#{object} validates presence of #{property}" end
refute_validates_with_callback(object, callback)
click to toggle source
# File lib/assert_moar/assertions.rb, line 47 def refute_validates_with_callback(object, callback) refute has_callback_validator?(object, callback), "#{object} does not validate with #{callback}" end
Private Instance Methods
has_callback_validator?(object_or_class, callback)
click to toggle source
# File lib/assert_moar/assertions.rb, line 79 def has_callback_validator?(object_or_class, callback) klass = object_or_class.class klass._validate_callbacks.any? { |v| v.filter == callback } end
has_validator?(object_or_class, property, validator_class)
click to toggle source
# File lib/assert_moar/assertions.rb, line 71 def has_validator?(object_or_class, property, validator_class) klass = object_or_class.class property = property.to_sym validators = Array(klass._validators[property]) validators.any? { |v| v.is_a?(validator_class) } end