class FixturesResetPkSequenceTest

Public Instance Methods

setup() click to toggle source
# File activerecord/test/cases/fixtures_test.rb, line 403
def setup
  @instances = [Account.new(credit_limit: 50), Company.new(name: "RoR Consulting"), Course.new(name: "Test")]
  ActiveRecord::FixtureSet.reset_cache # make sure tables get reinitialized
end
test_create_fixtures_resets_sequences_when_not_cached() click to toggle source
# File activerecord/test/cases/fixtures_test.rb, line 430
def test_create_fixtures_resets_sequences_when_not_cached
  @instances.each do |instance|
    max_id = create_fixtures(instance.class.table_name).first.fixtures.inject(0) do |_max_id, (_, 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
test_resets_to_min_pk_with_default_pk_and_sequence() click to toggle source
# File activerecord/test/cases/fixtures_test.rb, line 419
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
test_resets_to_min_pk_with_specified_pk_and_sequence() click to toggle source
# File activerecord/test/cases/fixtures_test.rb, line 408
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)

    instance.save!
    assert_equal 1, instance.id, "Sequence reset for #{model.table_name} failed."
  end
end