Class: Zena::Unit::TestCase
- Inherits:
-
ActiveSupport::TestCase
- Object
- ActiveSupport::TestCase
- Zena::Unit::TestCase
- Includes:
- Authlogic::TestCase, Acts::Secure, Zena::Use::Fixtures, Zena::Use::TestHelper
- Defined in:
- lib/zena/unit/test_case.rb
Constant Summary
Constants included from Zena::Use::Fixtures
Zena::Use::Fixtures::FILE_FIXTURES_PATH, Zena::Use::Fixtures::FIXTURE_PATH
Class Method Summary collapse
Instance Method Summary collapse
-
#main_date ⇒ Object
Specific helpers to validate model relations and queries with SQLiss.
- #setup ⇒ Object
-
#validate_query(query, expected_list) ⇒ Object
Test a query (useful with complex custom queries).
Methods included from Acts::Secure
#secure_scope, #secure_write_scope, #visitor=
Methods included from Acts::Secure::SecureResult
#construct_id_map, #secure_result
Methods included from Zena::Use::TestHelper
#err, #execute_after_commit!, #file_path, #login, #preserving_files, #set_date, #uploaded_archive, #uploaded_fixture, #uploaded_jpg, #uploaded_pdf, #uploaded_png, #uploaded_text, #uploaded_zip, #with_caching, #without_files
Methods included from Zena::Use::Fixtures
dest_filepath, included, #load_fixtures, load_fixtures, reset_data_folder, reset_public_folder, #test_site
Class Method Details
.helper_attr(*args) ⇒ Object
16 17 18 |
# File 'lib/zena/unit/test_case.rb', line 16 def self.helper_attr(*args) # Ignore since we include helpers in the TestCase itself end |
Instance Method Details
#main_date ⇒ Object
Specific helpers to validate model relations and queries with SQLiss
21 22 23 24 |
# File 'lib/zena/unit/test_case.rb', line 21 def main_date raise "The test uses 'validate_query' without defining @main_date" unless @main_date return @main_date.strftime("'%Y-%m-%d'") end |
#setup ⇒ Object
11 12 13 14 |
# File 'lib/zena/unit/test_case.rb', line 11 def setup #log anonymously by default login(:anon) end |
#validate_query(query, expected_list) ⇒ Object
Test a query (useful with complex custom queries). Usage:
validate_query "emp_comp_dates where log_at is not null", [
{ :title => 'Creativity',
:priority => '5',
:log_at => '2010-06-01',
:event_at => '2011-06-01',
},
{ :title => 'Leadership',
:priority => '5',
:log_at => '2003-01-01',
:event_at => nil, # forever
},
]
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/zena/unit/test_case.rb', line 41 def validate_query(query, expected_list) list = subject.find(:all, query.gsub('<', '<').gsub('>', '>'), :errors => true) if expected_list.nil? || expected_list.empty? assert_equal nil, list elsif expected_list.first.kind_of?(String) assert_equal expected_list, list.map(&:title) elsif list.nil? assert_equal expected_list, list elsif list.kind_of?(::QueryBuilder::Error) assert_equal expected_list, list.to_s else proto = expected_list.first.keys sz = [expected_list.size, list.size].max (0..(sz-1)).to_a.each do |i| record = list[i] expected = expected_list[i] if not record assert_equal expected[:title], nil elsif not expected assert_equal nil, map_to_proto(proto, record) else if expected[:title] != record.title assert_equal expected[:title], map_to_proto(proto, record) else expected.keys.each do |key| value = format_date(record[key] || record.send(key)) assert_equal expected[key], value, "(#{record.title} #{key} expected to be #{expected[key].inspect} but was #{value.inspect}" end end end end end end |