aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/fixtures_test.rb
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2005-11-12 11:59:54 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2005-11-12 11:59:54 +0000
commit7c8f3edc99560d15ae715bdbe99a32bc538e9396 (patch)
tree1282cff553dd5bff62d20efadacfc12ca91806b9 /activerecord/test/fixtures_test.rb
parent7321a41e1b108f4194ba9dfef63391e9c15a0839 (diff)
downloadrails-7c8f3edc99560d15ae715bdbe99a32bc538e9396.tar.gz
rails-7c8f3edc99560d15ae715bdbe99a32bc538e9396.tar.bz2
rails-7c8f3edc99560d15ae715bdbe99a32bc538e9396.zip
r4325@asus: jeremy | 2005-11-12 03:57:46 -0800
PostgreSQL: correctly discover custom primary key sequences. PostgreSQL: smarter sequence name defaults, stricter last_insert_id, warn on pk without sequence. Base.reset_sequence_name analogous to reset_table_name (mostly useful for testing). Base.define_attr_method allows nil values. References #2594. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@2985 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/test/fixtures_test.rb')
-rwxr-xr-xactiverecord/test/fixtures_test.rb48
1 files changed, 33 insertions, 15 deletions
diff --git a/activerecord/test/fixtures_test.rb b/activerecord/test/fixtures_test.rb
index 888d743078..41fc666945 100755
--- a/activerecord/test/fixtures_test.rb
+++ b/activerecord/test/fixtures_test.rb
@@ -173,27 +173,45 @@ end
if Account.connection.respond_to?(:reset_pk_sequence!)
class FixturesResetPkSequenceTest < Test::Unit::TestCase
fixtures :accounts
+ fixtures :companies
- def test_resets_to_min_pk
- Account.delete_all
- Account.connection.reset_pk_sequence!(Account.table_name)
+ def setup
+ @instances = [Account.new(:credit_limit => 50), Company.new(:name => 'RoR Consulting')]
+ end
+
+ def test_resets_to_min_pk_with_specified_pk_and_sequence
+ @instances.each do |instance|
+ model = instance.class
+ model.delete_all
+ model.connection.reset_pk_sequence!(model.table_name, model.primary_key, model.sequence_name)
- one = Account.new(:credit_limit => 50)
- one.save!
- assert_equal 1, one.id
+ instance.save!
+ assert_equal 1, instance.id, "Sequence reset for #{model.table_name} failed."
+ end
end
- def test_create_fixtures_resets_sequences
- # create_fixtures performs reset_pk_sequence!
- max_id = create_fixtures('accounts').inject(0) do |max_id, (name, fixture)|
- fixture_id = fixture['id'].to_i
- fixture_id > max_id ? fixture_id : max_id
+ def test_resets_to_min_pk_with_default_pk_and_sequence
+ @instances.each do |instance|
+ model = instance.class
+ model.delete_all
+ model.connection.reset_pk_sequence!(model.table_name)
+
+ instance.save!
+ assert_equal 1, instance.id, "Sequence reset for #{model.table_name} failed."
end
+ end
- # Clone the last fixture to check that it gets the next greatest id.
- another = Account.new(:credit_limit => 1200)
- another.save!
- assert_equal max_id + 1, another.id
+ def test_create_fixtures_resets_sequences
+ @instances.each do |instance|
+ max_id = create_fixtures(instance.class.table_name).inject(0) do |max_id, (name, fixture)|
+ fixture_id = fixture['id'].to_i
+ fixture_id > max_id ? fixture_id : max_id
+ end
+
+ # Clone the last fixture to check that it gets the next greatest id.
+ instance.save!
+ assert_equal max_id + 1, instance.id, "Sequence reset for #{instance.class.table_name} failed."
+ end
end
end
end