mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Test fixtures with custom model and table names
Test using fixtures with random names and model names, that is not following naming conventions but using set_fixture_class instead. It is expected that the table name be defined in the model, but this is not explicitly tested here. This will need to be fixed.
This commit is contained in:
parent
e43b2b35c7
commit
6468ff4197
7 changed files with 60 additions and 0 deletions
|
@ -1,6 +1,7 @@
|
|||
require 'cases/helper'
|
||||
require 'models/admin'
|
||||
require 'models/admin/account'
|
||||
require 'models/admin/randomly_named_c1'
|
||||
require 'models/admin/user'
|
||||
require 'models/binary'
|
||||
require 'models/book'
|
||||
|
@ -14,6 +15,7 @@ require 'models/matey'
|
|||
require 'models/parrot'
|
||||
require 'models/pirate'
|
||||
require 'models/post'
|
||||
require 'models/randomly_named_c1'
|
||||
require 'models/reply'
|
||||
require 'models/ship'
|
||||
require 'models/task'
|
||||
|
@ -745,3 +747,29 @@ class FixtureLoadingTest < ActiveRecord::TestCase
|
|||
ActiveRecord::TestCase.try_to_load_dependency(:works_out_fine)
|
||||
end
|
||||
end
|
||||
|
||||
class CustomNameForFixtureOrModelTest < ActiveRecord::TestCase
|
||||
ActiveRecord::Fixtures.reset_cache
|
||||
|
||||
set_fixture_class :randomly_named_a9 =>
|
||||
ClassNameThatDoesNotFollowCONVENTIONS,
|
||||
:'admin/randomly_named_a9' =>
|
||||
Admin::ClassNameThatDoesNotFollowCONVENTIONS,
|
||||
'admin/randomly_named_b0' =>
|
||||
Admin::ClassNameThatDoesNotFollowCONVENTIONS
|
||||
|
||||
fixtures :randomly_named_a9, 'admin/randomly_named_a9',
|
||||
:'admin/randomly_named_b0'
|
||||
|
||||
def test_named_accessor_for_randomly_named_fixture_and_class
|
||||
assert_kind_of ClassNameThatDoesNotFollowCONVENTIONS,
|
||||
randomly_named_a9(:first_instance)
|
||||
end
|
||||
|
||||
def test_named_accessor_for_randomly_named_namespaced_fixture_and_class
|
||||
assert_kind_of Admin::ClassNameThatDoesNotFollowCONVENTIONS,
|
||||
admin_randomly_named_a9(:first_instance)
|
||||
assert_kind_of Admin::ClassNameThatDoesNotFollowCONVENTIONS,
|
||||
admin_randomly_named_b0(:second_instance)
|
||||
end
|
||||
end
|
||||
|
|
7
activerecord/test/fixtures/admin/randomly_named_a9.yml
vendored
Normal file
7
activerecord/test/fixtures/admin/randomly_named_a9.yml
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
first_instance:
|
||||
some_attribute: AAA
|
||||
another_attribute: 000
|
||||
|
||||
second_instance:
|
||||
some_attribute: BBB
|
||||
another_attribute: 999
|
7
activerecord/test/fixtures/admin/randomly_named_b0.yml
vendored
Normal file
7
activerecord/test/fixtures/admin/randomly_named_b0.yml
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
first_instance:
|
||||
some_attribute: AAA
|
||||
another_attribute: 000
|
||||
|
||||
second_instance:
|
||||
some_attribute: BBB
|
||||
another_attribute: 999
|
7
activerecord/test/fixtures/randomly_named_a9.yml
vendored
Normal file
7
activerecord/test/fixtures/randomly_named_a9.yml
vendored
Normal file
|
@ -0,0 +1,7 @@
|
|||
first_instance:
|
||||
some_attribute: AAA
|
||||
another_attribute: 000
|
||||
|
||||
second_instance:
|
||||
some_attribute: BBB
|
||||
another_attribute: 999
|
3
activerecord/test/models/admin/randomly_named_c1.rb
Normal file
3
activerecord/test/models/admin/randomly_named_c1.rb
Normal file
|
@ -0,0 +1,3 @@
|
|||
class Admin::ClassNameThatDoesNotFollowCONVENTIONS < ActiveRecord::Base
|
||||
self.table_name = :randomly_named_table
|
||||
end
|
3
activerecord/test/models/randomly_named_c1.rb
Normal file
3
activerecord/test/models/randomly_named_c1.rb
Normal file
|
@ -0,0 +1,3 @@
|
|||
class ClassNameThatDoesNotFollowCONVENTIONS < ActiveRecord::Base
|
||||
self.table_name = :randomly_named_table
|
||||
end
|
|
@ -505,6 +505,11 @@ ActiveRecord::Schema.define do
|
|||
t.string :type
|
||||
end
|
||||
|
||||
create_table :randomly_named_table, :force => true do |t|
|
||||
t.string :some_attribute
|
||||
t.integer :another_attribute
|
||||
end
|
||||
|
||||
create_table :ratings, :force => true do |t|
|
||||
t.integer :comment_id
|
||||
t.integer :value
|
||||
|
|
Loading…
Reference in a new issue