annotate vendor/plugins/engines/test/unit/migration_test.rb @ 904:0a8317a50fa0 redmine-1.1

Close obsolete branch redmine-1.1
author Chris Cannam
date Fri, 14 Jan 2011 12:53:21 +0000
parents 513646585e45
children
rev   line source
Chris@0 1 require File.dirname(__FILE__) + '/../test_helper'
Chris@0 2 require 'rails_generator'
Chris@0 3 require 'rails_generator/scripts/generate'
Chris@0 4
Chris@0 5 class MigrationsTest < Test::Unit::TestCase
Chris@0 6
Chris@0 7 @@migration_dir = "#{RAILS_ROOT}/db/migrate"
Chris@0 8
Chris@0 9 def setup
Chris@0 10 ActiveRecord::Migration.verbose = false
Chris@0 11 Engines.plugins[:test_migration].migrate(0)
Chris@0 12 end
Chris@0 13
Chris@0 14 def teardown
Chris@0 15 FileUtils.rm_r(@@migration_dir) if File.exist?(@@migration_dir)
Chris@0 16 end
Chris@0 17
Chris@0 18 def test_engine_migrations_can_run_down
Chris@0 19 assert !table_exists?('tests'), ActiveRecord::Base.connection.tables.inspect
Chris@0 20 assert !table_exists?('others'), ActiveRecord::Base.connection.tables.inspect
Chris@0 21 assert !table_exists?('extras'), ActiveRecord::Base.connection.tables.inspect
Chris@0 22 end
Chris@0 23
Chris@0 24 def test_engine_migrations_can_run_up
Chris@0 25 Engines.plugins[:test_migration].migrate(3)
Chris@0 26 assert table_exists?('tests')
Chris@0 27 assert table_exists?('others')
Chris@0 28 assert table_exists?('extras')
Chris@0 29 end
Chris@0 30
Chris@0 31 def test_engine_migrations_can_upgrade_incrementally
Chris@0 32 Engines.plugins[:test_migration].migrate(1)
Chris@0 33 assert table_exists?('tests')
Chris@0 34 assert !table_exists?('others')
Chris@0 35 assert !table_exists?('extras')
Chris@0 36 assert_equal 1, Engines::Plugin::Migrator.current_version(Engines.plugins[:test_migration])
Chris@0 37
Chris@0 38
Chris@0 39 Engines.plugins[:test_migration].migrate(2)
Chris@0 40 assert table_exists?('others')
Chris@0 41 assert_equal 2, Engines::Plugin::Migrator.current_version(Engines.plugins[:test_migration])
Chris@0 42
Chris@0 43
Chris@0 44 Engines.plugins[:test_migration].migrate(3)
Chris@0 45 assert table_exists?('extras')
Chris@0 46 assert_equal 3, Engines::Plugin::Migrator.current_version(Engines.plugins[:test_migration])
Chris@0 47 end
Chris@0 48
Chris@0 49 def test_generator_creates_plugin_migration_file
Chris@0 50 Rails::Generator::Scripts::Generate.new.run(['plugin_migration', 'test_migration'], :quiet => true)
Chris@0 51 assert migration_file, "migration file is missing"
Chris@0 52 end
Chris@0 53
Chris@0 54 private
Chris@0 55
Chris@0 56 def table_exists?(table)
Chris@0 57 ActiveRecord::Base.connection.tables.include?(table)
Chris@0 58 end
Chris@0 59
Chris@0 60 def migration_file
Chris@0 61 Dir["#{@@migration_dir}/*test_migration_to_version_3.rb"][0]
Chris@0 62 end
Chris@0 63 end