diff options
author | Michael Koziarski <michael@koziarski.com> | 2007-11-20 21:53:22 +0000 |
---|---|---|
committer | Michael Koziarski <michael@koziarski.com> | 2007-11-20 21:53:22 +0000 |
commit | c95f066bf5b5121ff86db090eff3436e63db9230 (patch) | |
tree | 582d35eeaff9f9a6d3bb3f8f3bc584defe40933d /activerecord/test | |
parent | 0c12d6c6dc66cb7873969fc7f982ad9244a4ea00 (diff) | |
download | rails-c95f066bf5b5121ff86db090eff3436e63db9230.tar.gz rails-c95f066bf5b5121ff86db090eff3436e63db9230.tar.bz2 rails-c95f066bf5b5121ff86db090eff3436e63db9230.zip |
Add 'foxy' support for fixtures of polymorphic associations. Closes #10183 [jbarnette, David Lowenfels]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8170 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test')
-rw-r--r-- | activerecord/test/fixtures/db_definitions/schema.rb | 2 | ||||
-rw-r--r-- | activerecord/test/fixtures/parrot.rb | 1 | ||||
-rw-r--r-- | activerecord/test/fixtures/pirate.rb | 1 | ||||
-rw-r--r-- | activerecord/test/fixtures/treasure.rb | 1 | ||||
-rw-r--r-- | activerecord/test/fixtures/treasures.yml | 2 | ||||
-rwxr-xr-x | activerecord/test/fixtures_test.rb | 5 |
6 files changed, 12 insertions, 0 deletions
diff --git a/activerecord/test/fixtures/db_definitions/schema.rb b/activerecord/test/fixtures/db_definitions/schema.rb index 5bde5126d5..12dbcb8423 100644 --- a/activerecord/test/fixtures/db_definitions/schema.rb +++ b/activerecord/test/fixtures/db_definitions/schema.rb @@ -327,6 +327,8 @@ ActiveRecord::Schema.define do create_table :treasures, :force => true do |t| t.column :name, :string + t.column :looter_id, :integer + t.column :looter_type, :string end create_table :parrots_treasures, :id => false, :force => true do |t| diff --git a/activerecord/test/fixtures/parrot.rb b/activerecord/test/fixtures/parrot.rb index 340c73b907..10850669e7 100644 --- a/activerecord/test/fixtures/parrot.rb +++ b/activerecord/test/fixtures/parrot.rb @@ -1,4 +1,5 @@ class Parrot < ActiveRecord::Base has_and_belongs_to_many :pirates has_and_belongs_to_many :treasures + has_many :loots, :as => :looter end diff --git a/activerecord/test/fixtures/pirate.rb b/activerecord/test/fixtures/pirate.rb index d22d66bac9..f7193dfbe0 100644 --- a/activerecord/test/fixtures/pirate.rb +++ b/activerecord/test/fixtures/pirate.rb @@ -1,4 +1,5 @@ class Pirate < ActiveRecord::Base belongs_to :parrot has_and_belongs_to_many :parrots + has_many :loots, :as => :looter end diff --git a/activerecord/test/fixtures/treasure.rb b/activerecord/test/fixtures/treasure.rb index cbb3ec3c08..7a429e2a2f 100644 --- a/activerecord/test/fixtures/treasure.rb +++ b/activerecord/test/fixtures/treasure.rb @@ -1,3 +1,4 @@ class Treasure < ActiveRecord::Base has_and_belongs_to_many :parrots + belongs_to :looter, :polymorphic => true end diff --git a/activerecord/test/fixtures/treasures.yml b/activerecord/test/fixtures/treasures.yml index c6fe30d0e3..9db15798fd 100644 --- a/activerecord/test/fixtures/treasures.yml +++ b/activerecord/test/fixtures/treasures.yml @@ -3,6 +3,8 @@ diamond: sapphire: name: $LABEL + looter: redbeard (Pirate) ruby: name: $LABEL + looter: louis (Parrot) diff --git a/activerecord/test/fixtures_test.rb b/activerecord/test/fixtures_test.rb index 40790a607d..6f11a337b1 100755 --- a/activerecord/test/fixtures_test.rb +++ b/activerecord/test/fixtures_test.rb @@ -528,6 +528,11 @@ class FoxyFixturesTest < Test::Unit::TestCase def test_supports_label_interpolation assert_equal("frederick", parrots(:frederick).name) end + + def test_supports_polymorphic_belongs_to + assert_equal(pirates(:redbeard), treasures(:sapphire).looter) + assert_equal(parrots(:louis), treasures(:ruby).looter) + end end class ActiveSupportSubclassWithFixturesTest < ActiveSupport::TestCase |