From ada11d6313bd1f74c6a229caca36ca063b38da4e Mon Sep 17 00:00:00 2001 From: Nicholas Seckar Date: Mon, 27 Feb 2006 20:29:28 +0000 Subject: Add set_fixture_class to allow the use of table name accessors with models which use set_default_name. Closes #3935 git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3690 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/test/abstract_unit.rb | 2 +- .../test/fixtures/db_definitions/sqlite.sql | 5 ++++ activerecord/test/fixtures/funny_jokes.yml | 14 +++++++++++ activerecord/test/fixtures/joke.rb | 6 +++++ activerecord/test/fixtures_test.rb | 28 +++++++++++++++++----- 5 files changed, 48 insertions(+), 7 deletions(-) create mode 100644 activerecord/test/fixtures/funny_jokes.yml create mode 100644 activerecord/test/fixtures/joke.rb (limited to 'activerecord/test') diff --git a/activerecord/test/abstract_unit.rb b/activerecord/test/abstract_unit.rb index 6348394685..498f19b32f 100755 --- a/activerecord/test/abstract_unit.rb +++ b/activerecord/test/abstract_unit.rb @@ -16,7 +16,7 @@ class Test::Unit::TestCase #:nodoc: self.use_transactional_fixtures = (ENV['AR_NO_TX_FIXTURES'] != "yes") def create_fixtures(*table_names, &block) - Fixtures.create_fixtures(File.dirname(__FILE__) + "/fixtures/", table_names, &block) + Fixtures.create_fixtures(File.dirname(__FILE__) + "/fixtures/", table_names, {}, &block) end def assert_date_from_db(expected, actual, message = nil) diff --git a/activerecord/test/fixtures/db_definitions/sqlite.sql b/activerecord/test/fixtures/db_definitions/sqlite.sql index 685c2abc8b..5a7fec3d7e 100644 --- a/activerecord/test/fixtures/db_definitions/sqlite.sql +++ b/activerecord/test/fixtures/db_definitions/sqlite.sql @@ -4,6 +4,11 @@ CREATE TABLE 'accounts' ( 'credit_limit' INTEGER DEFAULT NULL ); +CREATE TABLE 'funny_jokes' ( + 'id' INTEGER PRIMARY KEY NOT NULL, + 'name' TEXT DEFAULT NULL +); + CREATE TABLE 'companies' ( 'id' INTEGER PRIMARY KEY NOT NULL, 'type' VARCHAR(255) DEFAULT NULL, diff --git a/activerecord/test/fixtures/funny_jokes.yml b/activerecord/test/fixtures/funny_jokes.yml new file mode 100644 index 0000000000..834481bc60 --- /dev/null +++ b/activerecord/test/fixtures/funny_jokes.yml @@ -0,0 +1,14 @@ +a_joke: + id: 1 + name: Knock knock + +another_joke: + id: 2 + name: The Aristocrats +a_joke: + id: 1 + name: Knock knock + +another_joke: + id: 2 + name: The Aristocrats \ No newline at end of file diff --git a/activerecord/test/fixtures/joke.rb b/activerecord/test/fixtures/joke.rb new file mode 100644 index 0000000000..8006a43bd7 --- /dev/null +++ b/activerecord/test/fixtures/joke.rb @@ -0,0 +1,6 @@ +class Joke < ActiveRecord::Base + set_table_name 'funny_jokes' +end +class Joke < ActiveRecord::Base + set_table_name 'funny_jokes' +end \ No newline at end of file diff --git a/activerecord/test/fixtures_test.rb b/activerecord/test/fixtures_test.rb index 29f7b886a9..72cb977c87 100755 --- a/activerecord/test/fixtures_test.rb +++ b/activerecord/test/fixtures_test.rb @@ -4,6 +4,7 @@ require 'fixtures/developer' require 'fixtures/company' require 'fixtures/task' require 'fixtures/reply' +require 'fixtures/joke' class FixturesTest < Test::Unit::TestCase self.use_instantiated_fixtures = true @@ -110,7 +111,7 @@ class FixturesTest < Test::Unit::TestCase def test_deprecated_yaml_extension assert_raise(Fixture::FormatError) { - Fixtures.new(nil, 'bad_extension', File.join(File.dirname(__FILE__), 'fixtures')) + Fixtures.new(nil, 'bad_extension', 'BadExtension', File.join(File.dirname(__FILE__), 'fixtures')) } end @@ -141,26 +142,26 @@ class FixturesTest < Test::Unit::TestCase end def test_empty_yaml_fixture - assert_not_nil Fixtures.new( Account.connection, "accounts", File.dirname(__FILE__) + "/fixtures/naked/yml/accounts") + assert_not_nil Fixtures.new( Account.connection, "accounts", 'Account', File.dirname(__FILE__) + "/fixtures/naked/yml/accounts") end def test_empty_yaml_fixture_with_a_comment_in_it - assert_not_nil Fixtures.new( Account.connection, "companies", File.dirname(__FILE__) + "/fixtures/naked/yml/companies") + assert_not_nil Fixtures.new( Account.connection, "companies", 'Company', File.dirname(__FILE__) + "/fixtures/naked/yml/companies") end def test_dirty_dirty_yaml_file assert_raises(Fixture::FormatError) do - Fixtures.new( Account.connection, "courses", File.dirname(__FILE__) + "/fixtures/naked/yml/courses") + Fixtures.new( Account.connection, "courses", 'Course', File.dirname(__FILE__) + "/fixtures/naked/yml/courses") end end def test_empty_csv_fixtures - assert_not_nil Fixtures.new( Account.connection, "accounts", File.dirname(__FILE__) + "/fixtures/naked/csv/accounts") + assert_not_nil Fixtures.new( Account.connection, "accounts", 'Account', File.dirname(__FILE__) + "/fixtures/naked/csv/accounts") end def test_omap_fixtures assert_nothing_raised do - fixtures = Fixtures.new(Account.connection, 'categories', File.dirname(__FILE__) + '/fixtures/categories_ordered') + fixtures = Fixtures.new(Account.connection, 'categories', 'Category', File.dirname(__FILE__) + '/fixtures/categories_ordered') i = 0 fixtures.each do |name, fixture| @@ -326,3 +327,18 @@ class ForeignKeyFixturesTest < Test::Unit::TestCase assert true end end + +class SetTableNameFixturesTest < Test::Unit::TestCase + set_fixture_class :funny_jokes => 'Joke' + fixtures :funny_jokes + + def test_table_method + assert_kind_of Joke, funny_jokes(:a_joke) + end +end + + + + + + -- cgit v1.2.3