require File.expand_path("#{File.dirname(__FILE__)}/../test_helper") class MigratorTest < Test::Unit::TestCase def setup ActiveRecord::Migration.verbose = true initialize_schema_information end def test_schema_info_table_name_should_not_have_prefix_or_suffix assert_equal 'plugin_schema_info', PluginAWeek::PluginMigrations::Migrator.schema_info_table_name end def test_schema_info_table_name_should_have_prefix_if_prefix_exists ActiveRecord::Base.table_name_prefix = 'prefix_' assert_equal 'prefix_plugin_schema_info', PluginAWeek::PluginMigrations::Migrator.schema_info_table_name end def test_schema_info_table_name_should_have_suffix_if_suffix_exists ActiveRecord::Base.table_name_suffix = '_suffix' assert_equal 'plugin_schema_info_suffix', PluginAWeek::PluginMigrations::Migrator.schema_info_table_name end def test_schema_info_table_name_should_have_prefix_and_suffix_if_both_exist ActiveRecord::Base.table_name_prefix = 'prefix_' ActiveRecord::Base.table_name_suffix = '_suffix' assert_equal 'prefix_plugin_schema_info_suffix', PluginAWeek::PluginMigrations::Migrator.schema_info_table_name end def test_current_plugin_version_should_be_zero_if_never_migrated PluginAWeek::PluginMigrations::Migrator.current_plugin = Plugin.new('/path/to/test_plugin') assert_equal 0, PluginAWeek::PluginMigrations::Migrator.current_version assert_equal 0, PluginSchemaInfo.count end def test_should_add_plugin_schema_info_after_setting_schema_version PluginAWeek::PluginMigrations::Migrator.allocate.set_schema_version(0) assert_equal 0, PluginAWeek::PluginMigrations::Migrator.current_version assert_equal 1, PluginSchemaInfo.count end def test_should_update_plugin_schema_info_if_plugin_version_previously_set PluginAWeek::PluginMigrations::Migrator.allocate.set_schema_version(0) assert_equal 0, PluginAWeek::PluginMigrations::Migrator.current_version assert_equal 1, PluginSchemaInfo.count PluginAWeek::PluginMigrations::Migrator.allocate.set_schema_version(1) assert_equal 1, PluginAWeek::PluginMigrations::Migrator.current_version assert_equal 1, PluginSchemaInfo.count end def teardown ActiveRecord::Base.table_name_prefix = '' ActiveRecord::Base.table_name_suffix = '' ActiveRecord::Base.connection.drop_table(ActiveRecord::Migrator.schema_info_table_name) [PluginSchemaInfo].each do |model| ActiveRecord::Base.connection.drop_table(model.table_name) if model.table_exists? end end end