Module: MiniTest::Assertions

Defined in:
lib/minitest-mongoid/has_key.rb,
lib/minitest-mongoid/has_field.rb,
lib/minitest-mongoid/has_validation.rb,
lib/minitest-mongoid/has_association.rb

Instance Method Summary collapse

Instance Method Details

#assert_has_association(model_class, type, field_name, options = {}, msg = nil) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/minitest-mongoid/has_association.rb', line 3

def assert_has_association(model_class, type, field_name, options = {}, msg = nil)
  msg = message(msg) {
    msg = "Expected #{model_class.name} to have association '#{type} :#{field_name}'"
    msg << " with options '#{options.inspect}'" unless options.empty?
    msg
  }

  assoc = model_class.relations[field_name.to_s]
  assert (!assoc.nil? && assoc.macro == type.to_sym), msg

  unless options.empty?
    assert options.all? { |k, v| assoc.send(k) == v }, msg
  end

  true
end

#assert_has_field(model_class, field_name, options = {}, msg = nil) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/minitest-mongoid/has_field.rb', line 3

def assert_has_field(model_class, field_name, options = {}, msg = nil)
  msg = message(msg) {
    msg = "Expected #{model_class.name} to have field :#{field_name}"
    msg << " with options '#{options.inspect}'" unless options.empty?
    msg
  }
  field = model_class.fields[field_name.to_s]

  assert field, msg
  unless options.empty?
    assert options.all? { |k,v| field.send(k) == v }, msg
  end
  true
end

#assert_has_key(model_class, key, msg = nil) ⇒ Object



3
4
5
6
7
8
9
# File 'lib/minitest-mongoid/has_key.rb', line 3

def assert_has_key(model_class, key, msg = nil)
  msg = message(msg) {
    "Expected #{model_class.name} to have key :#{key}"
  }
  assert model_class.primary_key.include?(key.to_sym), msg
  true
end

#assert_has_validation(model_class, type, field_name, options = {}, msg = nil) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/minitest-mongoid/has_validation.rb', line 3

def assert_has_validation(model_class, type, field_name, options = {}, msg = nil)
  msg = message(msg) {
    msg = "Expected #{model_class.name} to have validation '#{type} :#{field_name}'"
    msg << " with options '#{options.inspect}'" unless options.empty?
    msg
  }

  type = type.to_s.match(/validates_(.*)_of/)[1]
  validation = model_class._validators[field_name].detect { |v| v.class.name =~ /#{type.camelize}/ }
  assert validation, msg

  if validation.class.name =~ %r{Length} && options[:within]
    range = options[:within].to_a
    return assert(validation.options[:minimum] == range.first && validation.options[:maximum] == range.last), msg
  end

  unless options.empty?
    assert options.all? { |k,v| validation.options[k] == v }, msg
  end
  true
end

#refute_has_field(model_class, field_name, msg = nil) ⇒ Object



18
19
20
21
22
23
24
# File 'lib/minitest-mongoid/has_field.rb', line 18

def refute_has_field(model_class, field_name, msg = nil)
  msg = message(msg) {
    "Expected #{model_class.name} not to have field :#{field_name}"
  }
  refute model_class.fields[field_name.to_s], msg
  true
end