mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
r2718@asus: jeremy | 2005-10-23 14:45:30 -0700
Ticket 2404 - fixture delete order r2719@asus: jeremy | 2005-10-23 15:01:13 -0700 Keep closer tabs on dirty, loaded, and declared fixtures. Closes #2404. r2720@asus: jeremy | 2005-10-23 16:09:19 -0700 ensure table names are strings. set dirty = dirty union loaded rather than dirty = loaded. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2714 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
@@ -2,18 +2,16 @@ require 'abstract_unit'
|
||||
require 'fixtures/topic'
|
||||
|
||||
class TestColumnAlias < Test::Unit::TestCase
|
||||
fixtures :topics
|
||||
|
||||
QUERY = if 'OCI' == ActiveRecord::Base.connection.adapter_name
|
||||
'SELECT id AS pk FROM topics WHERE ROWNUM < 2'
|
||||
else
|
||||
'SELECT id AS pk FROM topics'
|
||||
end
|
||||
|
||||
def test_column_alias
|
||||
topic = Topic.find(1)
|
||||
if ActiveRecord::ConnectionAdapters.const_defined? :OracleAdapter
|
||||
if ActiveRecord::Base.connection.instance_of?(ActiveRecord::ConnectionAdapters::OracleAdapter)
|
||||
records = topic.connection.select_all("SELECT id AS pk FROM topics WHERE ROWNUM < 2")
|
||||
assert_equal("pk", records[0].keys[0])
|
||||
end
|
||||
else
|
||||
records = topic.connection.select_all("SELECT id AS pk FROM topics")
|
||||
assert_equal("pk", records[0].keys[0])
|
||||
end
|
||||
records = Topic.connection.select_all(QUERY)
|
||||
assert_equal 'pk', records[0].keys[0]
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -69,7 +69,7 @@ end
|
||||
|
||||
|
||||
class HasAndBelongsToManyScopingTest< Test::Unit::TestCase
|
||||
fixtures :posts, :categories
|
||||
fixtures :posts, :categories, :categories_posts
|
||||
|
||||
def setup
|
||||
@welcome = Post.find(1)
|
||||
@@ -85,7 +85,6 @@ class HasAndBelongsToManyScopingTest< Test::Unit::TestCase
|
||||
assert_equal 0, @welcome.categories.find_all_by_type('SpecialCategory').size
|
||||
assert_equal 2, @welcome.categories.find_all_by_type('Category').size
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ require 'fixtures/developer'
|
||||
require 'fixtures/post'
|
||||
|
||||
class FinderTest < Test::Unit::TestCase
|
||||
fixtures :companies, :topics, :entrants, :developers, :posts
|
||||
fixtures :companies, :topics, :entrants, :developers, :developers_projects, :posts
|
||||
|
||||
def test_find
|
||||
assert_equal(topics(:first).title, Topic.find(1).title)
|
||||
|
||||
@@ -86,6 +86,7 @@ class FixturesTest < Test::Unit::TestCase
|
||||
secondRow = ActiveRecord::Base.connection.select_one("SELECT * FROM prefix_topics_suffix WHERE author_name = 'Mary'")
|
||||
assert_nil(secondRow["author_email_address"])
|
||||
ensure
|
||||
Fixtures.all_loaded_fixtures.delete(topics)
|
||||
ActiveRecord::Base.connection.drop_table :prefix_topics_suffix rescue nil
|
||||
end
|
||||
|
||||
@@ -259,7 +260,7 @@ class MultipleFixturesTest < Test::Unit::TestCase
|
||||
fixtures :developers, :accounts
|
||||
|
||||
def test_fixture_table_names
|
||||
assert_equal([:topics, :developers, :accounts], fixture_table_names)
|
||||
assert_equal %w(topics developers accounts), fixture_table_names
|
||||
end
|
||||
end
|
||||
|
||||
@@ -269,7 +270,7 @@ class OverlappingFixturesTest < Test::Unit::TestCase
|
||||
fixtures :developers, :accounts
|
||||
|
||||
def test_fixture_table_names
|
||||
assert_equal([:topics, :developers, :accounts], fixture_table_names)
|
||||
assert_equal %w(topics developers accounts), fixture_table_names
|
||||
end
|
||||
end
|
||||
|
||||
@@ -289,3 +290,42 @@ class ForeignKeyFixturesTest < Test::Unit::TestCase
|
||||
assert true
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
class FixtureCleanup1Test < Test::Unit::TestCase
|
||||
fixtures :topics
|
||||
|
||||
def test_isolation
|
||||
assert_equal 0, Developer.count
|
||||
assert_equal 2, Topic.count
|
||||
end
|
||||
end
|
||||
|
||||
class FixtureCleanup2Test < Test::Unit::TestCase
|
||||
fixtures :developers
|
||||
|
||||
def test_isolation
|
||||
assert_equal 0, Topic.count
|
||||
assert_equal 10, Developer.count
|
||||
end
|
||||
end
|
||||
|
||||
class FixtureCleanup3Test < FixtureCleanup2Test
|
||||
self.use_transactional_fixtures = false
|
||||
|
||||
def test_dirty_fixture_table_names
|
||||
assert_equal %w(developers), dirty_fixture_table_names
|
||||
assert_equal %w(developers), loaded_fixture_table_names
|
||||
assert_equal %w(developers), fixture_table_names
|
||||
end
|
||||
end
|
||||
|
||||
class FixtureCleanup4Test < FixtureCleanup2Test
|
||||
self.use_transactional_fixtures = true
|
||||
|
||||
def test_dirty_fixture_table_names
|
||||
assert_equal [], dirty_fixture_table_names
|
||||
assert_equal %w(developers), loaded_fixture_table_names
|
||||
assert_equal %w(developers), fixture_table_names
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user