diff options
Diffstat (limited to 'activerecord/test/cases')
-rw-r--r-- | activerecord/test/cases/database_tasks_test.rb | 72 | ||||
-rw-r--r-- | activerecord/test/cases/mysql_rake_test.rb | 25 | ||||
-rw-r--r-- | activerecord/test/cases/postgresql_rake_test.rb | 22 | ||||
-rw-r--r-- | activerecord/test/cases/sqlite_rake_test.rb | 22 |
4 files changed, 107 insertions, 34 deletions
diff --git a/activerecord/test/cases/database_tasks_test.rb b/activerecord/test/cases/database_tasks_test.rb index 41267c2df3..bf38abc337 100644 --- a/activerecord/test/cases/database_tasks_test.rb +++ b/activerecord/test/cases/database_tasks_test.rb @@ -1,15 +1,17 @@ require 'cases/helper' module ActiveRecord - class DatabaseTasksCreateTest < ActiveRecord::TestCase + module DatabaseTasksSetupper def setup @mysql_tasks, @postgresql_tasks, @sqlite_tasks = stub, stub, stub - ActiveRecord::Tasks::MySQLDatabaseTasks.stubs(:new).returns @mysql_tasks - ActiveRecord::Tasks::PostgreSQLDatabaseTasks.stubs(:new). - returns @postgresql_tasks + ActiveRecord::Tasks::PostgreSQLDatabaseTasks.stubs(:new).returns @postgresql_tasks ActiveRecord::Tasks::SQLiteDatabaseTasks.stubs(:new).returns @sqlite_tasks end + end + + class DatabaseTasksCreateTest < ActiveRecord::TestCase + include DatabaseTasksSetupper def test_mysql_create @mysql_tasks.expects(:create) @@ -137,14 +139,7 @@ module ActiveRecord end class DatabaseTasksDropTest < ActiveRecord::TestCase - def setup - @mysql_tasks, @postgresql_tasks, @sqlite_tasks = stub, stub, stub - - ActiveRecord::Tasks::MySQLDatabaseTasks.stubs(:new).returns @mysql_tasks - ActiveRecord::Tasks::PostgreSQLDatabaseTasks.stubs(:new). - returns @postgresql_tasks - ActiveRecord::Tasks::SQLiteDatabaseTasks.stubs(:new).returns @sqlite_tasks - end + include DatabaseTasksSetupper def test_mysql_create @mysql_tasks.expects(:drop) @@ -261,14 +256,7 @@ module ActiveRecord end class DatabaseTasksPurgeTest < ActiveRecord::TestCase - def setup - @mysql_tasks, @postgresql_tasks, @sqlite_tasks = stub, stub, stub - - ActiveRecord::Tasks::MySQLDatabaseTasks.stubs(:new).returns @mysql_tasks - ActiveRecord::Tasks::PostgreSQLDatabaseTasks.stubs(:new). - returns @postgresql_tasks - ActiveRecord::Tasks::SQLiteDatabaseTasks.stubs(:new).returns @sqlite_tasks - end + include DatabaseTasksSetupper def test_mysql_create @mysql_tasks.expects(:purge) @@ -296,13 +284,7 @@ module ActiveRecord end class DatabaseTasksCharsetTest < ActiveRecord::TestCase - def setup - @mysql_tasks, @postgresql_tasks, @sqlite_tasks = stub, stub, stub - ActiveRecord::Tasks::MySQLDatabaseTasks.stubs(:new).returns @mysql_tasks - ActiveRecord::Tasks::PostgreSQLDatabaseTasks.stubs(:new). - returns @postgresql_tasks - ActiveRecord::Tasks::SQLiteDatabaseTasks.stubs(:new).returns @sqlite_tasks - end + include DatabaseTasksSetupper def test_mysql_charset @mysql_tasks.expects(:charset) @@ -330,13 +312,7 @@ module ActiveRecord end class DatabaseTasksStructureDumpTest < ActiveRecord::TestCase - def setup - @mysql_tasks, @postgresql_tasks, @sqlite_tasks = stub, stub, stub - ActiveRecord::Tasks::MySQLDatabaseTasks.stubs(:new).returns @mysql_tasks - ActiveRecord::Tasks::PostgreSQLDatabaseTasks.stubs(:new). - returns @postgresql_tasks - ActiveRecord::Tasks::SQLiteDatabaseTasks.stubs(:new).returns @sqlite_tasks - end + include DatabaseTasksSetupper def test_mysql_structure_dump @mysql_tasks.expects(:structure_dump).with("awesome-file.sql") @@ -362,4 +338,32 @@ module ActiveRecord ActiveRecord::Tasks::DatabaseTasks.structure_dump({'adapter' => 'sqlite3'}, "awesome-file.sql") end end + + class DatabaseTasksStructureLoadTest < ActiveRecord::TestCase + include DatabaseTasksSetupper + + def test_mysql_structure_load + @mysql_tasks.expects(:structure_load).with("awesome-file.sql") + + ActiveRecord::Tasks::DatabaseTasks.structure_load({'adapter' => 'mysql'}, "awesome-file.sql") + end + + def test_mysql2_structure_load + @mysql_tasks.expects(:structure_load).with("awesome-file.sql") + + ActiveRecord::Tasks::DatabaseTasks.structure_load({'adapter' => 'mysql2'}, "awesome-file.sql") + end + + def test_postgresql_structure_load + @postgresql_tasks.expects(:structure_load).with("awesome-file.sql") + + ActiveRecord::Tasks::DatabaseTasks.structure_load({'adapter' => 'postgresql'}, "awesome-file.sql") + end + + def test_sqlite_structure_load + @sqlite_tasks.expects(:structure_load).with("awesome-file.sql") + + ActiveRecord::Tasks::DatabaseTasks.structure_load({'adapter' => 'sqlite3'}, "awesome-file.sql") + end + end end diff --git a/activerecord/test/cases/mysql_rake_test.rb b/activerecord/test/cases/mysql_rake_test.rb index 7da63de282..42a11b0171 100644 --- a/activerecord/test/cases/mysql_rake_test.rb +++ b/activerecord/test/cases/mysql_rake_test.rb @@ -218,4 +218,29 @@ module ActiveRecord FileUtils.rm(filename) end end + + class MySQLStructureLoadTest < ActiveRecord::TestCase + def setup + @connection = stub + @configuration = { + 'adapter' => 'mysql', + 'database' => 'test-db' + } + + ActiveRecord::Base.stubs(:connection).returns(@connection) + ActiveRecord::Base.stubs(:establish_connection).returns(true) + end + + def test_structure_load + filename = "awesome-file.sql" + ActiveRecord::Base.expects(:establish_connection).with(@configuration) + @connection.expects(:execute).twice + + open(filename, 'w') { |f| f.puts("SELECT CURDATE();") } + ActiveRecord::Tasks::DatabaseTasks.structure_load(@configuration, filename) + ensure + FileUtils.rm(filename) + end + end + end diff --git a/activerecord/test/cases/postgresql_rake_test.rb b/activerecord/test/cases/postgresql_rake_test.rb index b055762a24..e8769bd4df 100644 --- a/activerecord/test/cases/postgresql_rake_test.rb +++ b/activerecord/test/cases/postgresql_rake_test.rb @@ -175,4 +175,26 @@ module ActiveRecord FileUtils.rm(filename) end end + + class PostgreSQLStructureLoadTest < ActiveRecord::TestCase + def setup + @connection = stub + @configuration = { + 'adapter' => 'postgresql', + 'database' => 'my-app-db' + } + + ActiveRecord::Base.stubs(:connection).returns(@connection) + ActiveRecord::Base.stubs(:establish_connection).returns(true) + Kernel.stubs(:system) + end + + def test_structure_dump + filename = "awesome-file.sql" + Kernel.expects(:system).with("psql -f #{filename} my-app-db") + + ActiveRecord::Tasks::DatabaseTasks.structure_load(@configuration, filename) + end + end + end diff --git a/activerecord/test/cases/sqlite_rake_test.rb b/activerecord/test/cases/sqlite_rake_test.rb index 69fb129326..b5557fc953 100644 --- a/activerecord/test/cases/sqlite_rake_test.rb +++ b/activerecord/test/cases/sqlite_rake_test.rb @@ -145,4 +145,26 @@ module ActiveRecord FileUtils.rm(dbfile) end end + + class SqliteStructureLoadTest < ActiveRecord::TestCase + def setup + @database = "db_create.sqlite3" + @configuration = { + 'adapter' => 'sqlite3', + 'database' => @database + } + end + + def test_structure_load + dbfile = @database + filename = "awesome-file.sql" + + open(filename, 'w') { |f| f.puts("select datetime('now', 'localtime');") } + ActiveRecord::Tasks::DatabaseTasks.structure_load @configuration, filename, '/rails/root' + assert File.exists?(dbfile) + ensure + FileUtils.rm(filename) + FileUtils.rm(dbfile) + end + end end |