1
0
Fork 0
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:
Alexey Muranov 2011-12-19 16:00:24 +01:00 committed by Alexey Muranov
parent e43b2b35c7
commit 6468ff4197
7 changed files with 60 additions and 0 deletions

View file

@ -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

View file

@ -0,0 +1,7 @@
first_instance:
some_attribute: AAA
another_attribute: 000
second_instance:
some_attribute: BBB
another_attribute: 999

View file

@ -0,0 +1,7 @@
first_instance:
some_attribute: AAA
another_attribute: 000
second_instance:
some_attribute: BBB
another_attribute: 999

View file

@ -0,0 +1,7 @@
first_instance:
some_attribute: AAA
another_attribute: 000
second_instance:
some_attribute: BBB
another_attribute: 999

View file

@ -0,0 +1,3 @@
class Admin::ClassNameThatDoesNotFollowCONVENTIONS < ActiveRecord::Base
self.table_name = :randomly_named_table
end

View file

@ -0,0 +1,3 @@
class ClassNameThatDoesNotFollowCONVENTIONS < ActiveRecord::Base
self.table_name = :randomly_named_table
end

View file

@ -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