Module: EacRailsUtils::Models::TestUtils
- Defined in:
- lib/eac_rails_utils/models/test_utils.rb
Instance Method Summary collapse
-
#all_combinations(attrs) ⇒ Object
Ex.: attrs = 1, b: 2 resulta em [nil, b: nil, 1, b: nil, nil, b: 2, 1, b: 2].
- #all_combinations_new_combination(attr_name, value, combs) ⇒ Object
-
#assert_column_changes(ppp, expected_valid_result, changes) ⇒ Object
Verifica, campo por campo, se invalida o registro.
-
#assert_record_errors(record, fields_without_error, fields_with_error) ⇒ Object
Verifica falhas em campos específicos de um record.
-
#valid_invalid_column_values_test(record, column, valid_values, invalid_values) ⇒ Object
Add more helper methods to be used by all tests here…
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.}, #{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 |