33 lines
1.1 KiB
Ruby
33 lines
1.1 KiB
Ruby
|
require File.join(File.dirname(__FILE__), 'abstract_unit')
|
||
|
|
||
|
if ActiveRecord::Base.connection.supports_migrations?
|
||
|
class Thing < ActiveRecord::Base
|
||
|
attr_accessor :version
|
||
|
acts_as_versioned
|
||
|
end
|
||
|
|
||
|
class MigrationTest < Test::Unit::TestCase
|
||
|
self.use_transactional_fixtures = false
|
||
|
def teardown
|
||
|
ActiveRecord::Base.connection.initialize_schema_information
|
||
|
ActiveRecord::Base.connection.update "UPDATE schema_info SET version = 0"
|
||
|
|
||
|
Thing.connection.drop_table "things" rescue nil
|
||
|
Thing.connection.drop_table "thing_versions" rescue nil
|
||
|
Thing.reset_column_information
|
||
|
end
|
||
|
|
||
|
def test_versioned_migration
|
||
|
assert_raises(ActiveRecord::StatementInvalid) { Thing.create :title => 'blah blah' }
|
||
|
# take 'er up
|
||
|
ActiveRecord::Migrator.up(File.dirname(__FILE__) + '/fixtures/migrations/')
|
||
|
t = Thing.create :title => 'blah blah'
|
||
|
assert_equal 1, t.versions.size
|
||
|
|
||
|
# now lets take 'er back down
|
||
|
ActiveRecord::Migrator.down(File.dirname(__FILE__) + '/fixtures/migrations/')
|
||
|
assert_raises(ActiveRecord::StatementInvalid) { Thing.create :title => 'blah blah' }
|
||
|
end
|
||
|
end
|
||
|
end
|