Module: EacRailsUtils::Models::TestUtils

Defined in:
lib/eac_rails_utils/models/test_utils.rb

Instance Method Summary collapse

Instance Method Details

#all_combinations(attrs) ⇒ Object

Ex.: attrs = 1, b: 2 resulta em [nil, b: nil, 1, b: nil, nil, b: 2, 1, b: 2].



43
44
45
46
47
48
49
# File 'lib/eac_rails_utils/models/test_utils.rb', line 43

def all_combinations(attrs)
  combs = [{}]
  attrs.each do |attr_name, value|
    combs = all_combinations_new_combination(attr_name, value, combs)
  end
  combs
end

#all_combinations_new_combination(attr_name, value, combs) ⇒ Object



51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/eac_rails_utils/models/test_utils.rb', line 51

def all_combinations_new_combination(attr_name, value, combs)
  new_comb = []
  assert_not value.nil?, "#{attr_name}=#{value}"
  [nil, value].each do |vv|
    combs.each do |c|
      cc = c.dup
      cc[attr_name] = vv
      new_comb << cc
    end
  end
  new_comb
end

#assert_column_changes(ppp, expected_valid_result, changes) ⇒ Object

Verifica, campo por campo, se invalida o registro.



31
32
33
34
35
36
37
38
39
# File 'lib/eac_rails_utils/models/test_utils.rb', line 31

def assert_column_changes(ppp, expected_valid_result, changes)
  changes.each do |k, v|
    ppp.send("#{k}=", v)
    assert_equal expected_valid_result, ppp.valid?,
                 "\"#{k}\" change should be " + (expected_valid_result ? 'valid' : 'invalid')
    assert_not ppp.errors[k].empty? unless expected_valid_result
    ppp.restore_attributes
  end
end

#assert_record_errors(record, fields_without_error, fields_with_error) ⇒ Object

Verifica falhas em campos específicos de um record



20
21
22
23
24
25
26
27
28
# File 'lib/eac_rails_utils/models/test_utils.rb', line 20

def assert_record_errors(record, fields_without_error, fields_with_error)
  fields_without_error.each do |c|
    assert record.errors[c].empty?,
           "Column: #{c} should not have errors (#{record.errors[c]})"
  end
  fields_with_error. each do |c|
    assert_not record.errors[c].empty?, "Column: #{c} should have errors"
  end
end

#valid_invalid_column_values_test(record, column, valid_values, invalid_values) ⇒ Object

Add more helper methods to be used by all tests here…



7
8
9
10
11
12
13
14
15
16
17
# File 'lib/eac_rails_utils/models/test_utils.rb', line 7

def valid_invalid_column_values_test(record, column, valid_values, invalid_values)
  valid_values.each do |v|
    record.send("#{column}=", v)
    assert record.valid?,
           "#{record.errors.messages}, #{column} = #{v.inspect} should be valid"
  end
  invalid_values.each do |v|
    record.send("#{column}=", v)
    assert_not record.valid?, "#{column} = #{v.inspect} should be invalid"
  end
end