Sha256: 8405f0e503742b845222d67232b21260c5410a54c27959c47b534c8a7aa452c5
Contents?: true
Size: 1.92 KB
Versions: 6
Compression:
Stored size: 1.92 KB
Contents
require 'abstract_unit' # Testing the find action on composite ActiveRecords with two primary keys class TestFind < ActiveSupport::TestCase fixtures :reference_types, :reference_codes CLASSES = { :single => { :class => ReferenceType, :primary_keys => [:reference_type_id], }, :dual => { :class => ReferenceCode, :primary_keys => [:reference_type_id, :reference_code], }, :dual_strs => { :class => ReferenceCode, :primary_keys => ['reference_type_id', 'reference_code'], }, } def setup self.class.classes = CLASSES end def test_find_first testing_with do obj = @klass.find(:first) assert obj assert_equal @klass, obj.class end end def test_find testing_with do found = @klass.find(*first_id) # e.g. find(1,1) or find 1,1 assert found assert_equal @klass, found.class assert_equal found, @klass.find(found.id) assert_equal found, @klass.find(found.to_param) end end def test_find_composite_ids testing_with do found = @klass.find(first_id) # e.g. find([1,1].to_composite_ids) assert found assert_equal @klass, found.class assert_equal found, @klass.find(found.id) assert_equal found, @klass.find(found.to_param) end end def things_to_look_at testing_with do assert_equal found, @klass.find(found.id.to_s) # fails for 2+ keys end end def test_not_found assert_raise(::ActiveRecord::RecordNotFound) do ReferenceCode.send :find, '999,999' end end def test_find_last_suburb suburb = Suburb.find(:last) assert_equal([2,1], suburb.id) end def test_find_last_suburb_with_order # Rails actually changes city_id DESC to city_id ASC suburb = Suburb.find(:last, :order => 'suburbs.city_id DESC') assert_equal([1,1], suburb.id) end end
Version data entries
6 entries across 6 versions & 1 rubygems