tests are ported, now need to fix things
authorChuck Hagenbuch <chuck@horde.org>
Mon, 16 Feb 2009 21:33:17 +0000 (16:33 -0500)
committerChuck Hagenbuch <chuck@horde.org>
Mon, 16 Feb 2009 21:33:17 +0000 (16:33 -0500)
framework/Db/lib/Horde/Db/Migration/Migrator.php
framework/Db/test/Horde/Db/Migration/BaseTest.php
framework/Db/test/Horde/Db/Migration/MigratorTest.php

index a1f0c92..f772372 100644 (file)
@@ -57,7 +57,9 @@ class Horde_Db_Migration_Migrator
 
         $this->_connection     = $connection;
         $this->_migrationsPath = $migrationsPath;
-        $this->_logger         = $logger;
+        /* @TODO */
+        //$this->_logger         = $logger;
+        $this->_logger         = new Horde_Support_Stub();
 
         $this->_connection->initializeSchemaInformation();
     }
index bc1c871..7a2d118 100644 (file)
@@ -35,34 +35,71 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
             'dbname' => ':memory:',
         ));
 
-        Horde_Db_Migration_Base::$verbose = false;
-    }
-
-    public function tearDown()
-    {
-        $this->_conn->initializeSchemaInformation();
-        $this->_conn->update("UPDATE schema_info SET version = 0");
-
-        // drop tables
-        foreach (array('reminders', 'users_reminders', 'testings', 'octopuses',
-                       'octopi', 'binary_testings', 'big_numbers') as $table) {
-            try {
-                $this->_conn->dropTable($table);
-            } catch (Exception $e) {}
-        }
+        /*
+CREATE TABLE users (
+  id         int(11) auto_increment,
+  company_id int(11),
+  name       varchar(255) default '',
+  first_name varchar(40) default '',
+  approved   tinyint(1) default '1',
+  type       varchar(255) default '',
+  created_at datetime default '0000-00-00 00:00:00',
+  created_on date default '0000-00-00',
+  updated_at datetime default '0000-00-00 00:00:00',
+  updated_on date default '0000-00-00',
+  PRIMARY KEY (id)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+        */
+        $table = $this->_conn->createTable('users');
+          $table->column('company_id',  'integer',  array('limit' => 11));
+          $table->column('name',        'string',   array('limit' => 255, 'default' => ''));
+          $table->column('first_name',  'string',   array('limit' => 40, 'default' => ''));
+          $table->column('approved',    'boolean',  array('default' => true));
+          $table->column('type',        'string',   array('limit' => 255, 'default' => ''));
+          $table->column('created_at',  'datetime', array('default' => '0000-00-00 00:00:00'));
+          $table->column('created_on',  'date',     array('default' => '0000-00-00'));
+          $table->column('updated_at',  'datetime', array('default' => '0000-00-00 00:00:00'));
+          $table->column('updated_on',  'date',     array('default' => '0000-00-00'));
+        $table->end();
+        /*
+mike:
+  id:         1
+  company_id: 1
+  name:       Mike Naberezny
+  first_name: Mike
+  approved:   1
+  type:       User
+  created_at: '2008-01-01 12:20:00'
+  created_on: '2008-01-01'
+  updated_at: '2008-01-01 12:20:00'
+  updated_on: '2008-01-01'
+
+derek:
+  id:         2
+  company_id: 1
+  name:       Derek DeVries
+  first_name: Derek
+  approved:   1
+  type:       User
+  created_at: '<?php echo date("Y-m-d H:i:s", strtotime("-1 day")) ?>'
+  created_on: '<?php echo date("Y-m-d",       strtotime("-1 day")) ?>'
+  updated_at: '<?php echo date("Y-m-d H:i:s", strtotime("-1 day")) ?>'
+  updated_on: '<?php echo date("Y-m-d",       strtotime("-1 day")) ?>'
+
+client:
+  id:         3
+  company_id: 1
+  name:       Extreme
+  first_name: Engineer
+  approved:   1
+  type:       Client
+  created_at: '2008-01-01 12:20:00'
+  created_on: '2008-01-01'
+  updated_at: '2008-01-01 12:20:00'
+  updated_on: '2008-01-01'
+        */
 
-        // drop cols
-        foreach (array('first_name', 'middle_name', 'last_name', 'key', 'male',
-                       'bio', 'age', 'height', 'wealth', 'birthday', 'group',
-                       'favorite_day', 'moment_of_truth', 'administrator',
-                       'exgirlfriend', 'contributor', 'nick_name',
-                       'intelligence_quotient') as $col) {
-            try {
-                $this->_conn->removeColumn('users', $col);
-            } catch (Exception $e) {}
-        }
-        $this->_conn->addColumn('users', 'first_name', 'string', array('limit' => 40));
-        $this->_conn->changeColumn('users', 'approved', 'boolean', array('default' => true));
+        Horde_Db_Migration_Base::$verbose = false;
     }
 
     public function testAddIndex()
@@ -122,7 +159,6 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
     }
 
     /**
-     * @todo Revisit this test if the boolean casting behavior changes.
      * @see  Horde_Db_Adapter_Abstract_ColumnTest
      */
     public function testCreateTableWithDefaults()
@@ -144,7 +180,7 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
         $this->assertTrue($columns['two']->getDefault());
         $this->assertFalse($columns['three']->getDefault());
 
-        $this->assertEquals('1',     $columns['four']->getDefault());
+        $this->assertEquals(true,     $columns['four']->getDefault());
     }
 
     public function testCreateTableWithLimits()
@@ -199,27 +235,27 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
     {
         $correctValue = 12345678901234567890.0123456789;
 
-        User::deleteAll();
+        $this->_conn->delete('DELETE * FROM users');
         $this->_conn->addColumn("users", "wealth", 'decimal', array('precision' => 30, 'scale' => 10));
 
         // do a manual insertion
         $this->_conn->execute("INSERT INTO users (wealth) VALUES ('12345678901234567890.0123456789')");
 
         // SELECT @todo - type cast attribute values
-        $user = User::find('first');
+        $user = (object)$this->_conn->selectOne('SELECT * FROM users');
         // assert_kind_of BigDecimal, row.wealth
 
         // If this assert fails, that means the SELECT is broken!
         $this->assertEquals($correctValue, $user->wealth);
 
         // Reset to old state
-        User::deleteAll();
+        $this->_conn->delete('DELETE * FROM users');
 
         // Now use the Rails insertion
-        User::create(array('wealth' => '12345678901234567890.0123456789'));
+        $this->_conn->insert('INSERT INTO users (wealth) VALUES (12345678901234567890.0123456789)');
 
         // SELECT @todo - type cast attribute values
-        $user = User::find('first');
+        $user = (object)$this->_conn->selectOne('SELECT * FROM users');
         // assert_kind_of BigDecimal, row.wealth
 
         // If these asserts fail, that means the INSERT (create function, or cast to SQL) is broken!
@@ -228,7 +264,7 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
 
     public function testNativeTypes()
     {
-        User::deleteAll();
+        $this->_conn->delete('DELETE * FROM users');
 
         $this->_conn->addColumn("users", "last_name",       'string');
         $this->_conn->addColumn("users", "bio",             'text');
@@ -240,15 +276,10 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
         $this->_conn->addColumn("users", "moment_of_truth", 'datetime');
         $this->_conn->addColumn("users", "male",            'boolean');
 
-        User::create(array('first_name' => 'bob', 'last_name' => 'bobsen',
-          'bio' => "I was born ....", 'age' => 18, 'height' => 1.78,
-          'wealth' => "12345678901234567890.0123456789",
-          'birthday' => '2005-01-01 12:23:40',
-          'favorite_day' => '1980-03-05',
-          'moment_of_truth' => "1582-10-10 21:40:18",
-          'male' => true, 'company_id' => 1));
+        $this->_conn->insert('INSERT INTO USERS (first_name, last_name, bio, age, height, wealth, birthday, favorite_day, moment_of_truth, male, company_id) ' .
+                             "VALUES ('bob', 'bobsen', 'I was born ....', 18, 1.78, 12345678901234567890.0123456789, '2005-01-01 12:23:40', '1980-03-05', '1582-10-10 21:40:18', true, 1)");
 
-        $bob = User::find('first');
+        $bob = (object)$this->_conn->selectOne('SELECT * FROM users');
         $this->assertEquals('bob',             $bob->first_name);
         $this->assertEquals('bobsen',          $bob->last_name);
         $this->assertEquals('I was born ....', $bob->bio);
@@ -257,65 +288,56 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
         // Test for 30 significent digits (beyond the 16 of float), 10 of them
         // after the decimal place.
         $this->assertEquals('12345678901234567890.0123456789', $bob->wealth);
-        $this->assertEquals('1',                               $bob->male);
+        $this->assertEquals(true,                              $bob->male);
 
         // @todo - type casting
     }
 
     public function testUnabstractedDatabaseDependentTypes()
     {
-        User::deleteAll();
+        $this->_conn->delete('DELETE * FROM users');
 
         $this->_conn->addColumn('users', 'intelligence_quotient', 'tinyint');
-        User::create(array('intelligence_quotient' => 300));
+        $this->_conn->insert('INSERT INTO users (intelligence_quotient) VALUES (300)');
 
-        $jonnyg = User::find('first');
+        $jonnyg = (object)$this->_conn->selectOne('SELECT * FROM users');
         $this->assertEquals('127', $jonnyg->intelligence_quotient);
-        $jonnyg->destroy();
     }
 
     public function testAddRemoveSingleField()
     {
-        $user = new User;
-
-        $this->assertFalse(in_array('last_name', $user->columnNames()));
+        $this->assertFalse(in_array('last_name', $this->_columnNames('users')));
 
         $this->_conn->addColumn('users', 'last_name', 'string');
-        $user->resetColumnInformation();
-        $this->assertTrue(in_array('last_name', $user->columnNames()));
+        $this->assertTrue(in_array('last_name', $this->_columnNames('users')));
 
         $this->_conn->removeColumn('users', 'last_name');
-        $user->resetColumnInformation();
-        $this->assertFalse(in_array('last_name', $user->columnNames()));
+        $this->assertFalse(in_array('last_name', $this->_columnNames('users')));
     }
 
     public function testAddRename()
     {
-        User::deleteAll();
+        $this->_conn->delete('DELETE * FROM users');
 
         $this->_conn->addColumn('users', 'girlfriend', 'string');
-        User::create(array('girlfriend' => 'bobette'));
+        $this->_conn->insert("INSERT INTO users (girlfriend) VALUES ('bobette')");
 
         $this->_conn->renameColumn('users', 'girlfriend', 'exgirlfriend');
 
-        $bob = User::find('first');
+        $bob = (object)$this->_conn->selectOne('SELECT * FROM users');
         $this->assertEquals('bobette', $bob->exgirlfriend);
     }
 
     public function testRenameColumn()
     {
         $this->_conn->renameColumn('users', 'first_name', 'nick_name');
-
-        $user = new User;
-        $this->assertTrue(in_array('nick_name', $user->columnNames()));
+        $this->assertTrue(in_array('nick_name', $this->_columnNames('users')));
     }
 
     public function testRenameColumnWithSqlReservedWord()
     {
         $this->_conn->renameColumn('users', 'first_name', 'group');
-
-        $user = new User;
-        $this->assertTrue(in_array('group', $user->columnNames()));
+        $this->assertTrue(in_array('group', $this->_columnNames('users')));
     }
 
     public function testRenameTable()
@@ -353,10 +375,8 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
 
     public function testChangeColumn()
     {
-        $user = new User;
-
         $this->_conn->addColumn('users', 'age', 'integer');
-        $oldColumns = $this->_conn->columns($user->tableName(), "User Columns");
+        $oldColumns = $this->_conn->columns('users', "User Columns");
 
         $found = false;
         foreach ($oldColumns as $c) {
@@ -366,7 +386,7 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
 
         $this->_conn->changeColumn('users', 'age', 'string');
 
-        $newColumns = $this->_conn->columns($user->tableName(), "User Columns");
+        $newColumns = $this->_conn->columns('users', "User Columns");
 
         $found = false;
         foreach ($newColumns as $c) {
@@ -389,7 +409,7 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
         // changeColumn() throws exception on error
         $this->_conn->changeColumn('users', 'approved', 'boolean', array('default' => false));
 
-        $newColumns = $this->_conn->columns($user->tableName(), "User Columns");
+        $newColumns = $this->_conn->columns('users', "User Columns");
 
         $found = false;
         foreach ($newColumns as $c) {
@@ -411,6 +431,7 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
 
     public function testChangeColumnWithNilDefault()
     {
+        $this->markTestSkipped();
         $this->_conn->addColumn('users', 'contributor', 'boolean', array('default' => true));
         $user = new User;
         $this->assertTrue($user->contributor);
@@ -424,6 +445,7 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
 
     public function testChangeColumnWithNewDefault()
     {
+        $this->markTestSkipped();
         $this->_conn->addColumn('users', 'administrator', 'boolean', array('default' => true));
         $user = new User;
         $this->assertTrue($user->administrator);
@@ -437,6 +459,7 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
 
     public function testChangeColumnDefault()
     {
+        $this->markTestSkipped();
         $this->_conn->changeColumnDefault('users', 'first_name', 'Tester');
 
         $user = new User;
@@ -445,6 +468,7 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
 
     public function testChangeColumnDefaultToNull()
     {
+        $this->markTestSkipped();
         $this->_conn->changeColumnDefault('users', 'first_name', null);
 
         $user = new User;
@@ -462,11 +486,10 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
         $m = new WeNeedReminders1;
         $m->up();
 
-        $result = Reminder::create(array('content'   => 'hello world',
-                                         'remind_at' => '2005-01-01 11:10:01'));
-        $this->assertType('Reminder', $result);
+        $this->_conn->insert("INSERT INTO reminders (content, remind_at) VALUES ('hello world', '2005-01-01 11:10:01')");
 
-        $this->assertEquals('hello world', Reminder::find('first')->content);
+        $reminder = (object)$this->_conn->selectOne('SELECT * FROM reminders');
+        $this->assertEquals('hello world', $reminder->content);
 
         $m->down();
         $e = null;
@@ -487,16 +510,9 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
         $m = new GiveMeBigNumbers;
         $m->up();
 
-        $result = BigNumber::create(array(
-            'bank_balance'        => '1586.43',
-            'big_bank_balance'    => "1000234000567.95",
-            'world_population'    => '6000000000',
-            'my_house_population' => '3',
-            'value_of_e'          => "2.7182818284590452353602875"
-        ));
-        $this->assertType('BigNumber', $result);
+        $this->_conn->insert('INSERT INTO big_numbers (bank_balance, big_bank_balance, world_population, my_house_population, value_of_e) VALUES (1586.43, 1000234000567.95, 6000000000, 3, 2.7182818284590452353602875)');
 
-        $b = BigNumber::find('first');
+        $b = (object)$this->_conn->selectOne('SELECT * FROM big_numbers');
         $this->assertNotNull($b->bank_balance);
         $this->assertNotNull($b->big_bank_balance);
         $this->assertNotNull($b->world_population);
@@ -527,4 +543,14 @@ class Horde_Db_Migration_BaseTest extends PHPUnit_Framework_TestCase
         $this->assertEquals('', $dataColumn->getDefault());
     }
 
+
+    protected function _columnNames($tableName)
+    {
+        $columns = array();
+        foreach ($this->_conn->columns($tableName) as $c) {
+            $columns[] = $c->name;
+        }
+        return $columns;
+    }
+
 }
index 6e50d5a..52a6e13 100644 (file)
@@ -26,40 +26,16 @@ class Horde_Db_Migration_MigratorTest extends PHPUnit_Framework_TestCase
 {
     public function setUp()
     {
+        $this->_conn = Horde_Db_Adapter::factory(array(
+            'adapter' => 'pdo_sqlite',
+            'dbname' => ':memory:',
+        ));
         Horde_Db_Migration_Base::$verbose = false;
     }
 
-    public function tearDown()
-    {
-        $this->_conn->initializeSchemaInformation();
-        $this->_conn->update("UPDATE schema_info SET version = 0");
-
-        // drop tables
-        foreach (array('reminders', 'users_reminders', 'testings', 'octopuses',
-                       'octopi', 'binary_testings', 'big_numbers') as $table) {
-            try {
-                $this->_conn->dropTable($table);
-            } catch (Exception $e) {}
-        }
-
-        // drop cols
-        foreach (array('first_name', 'middle_name', 'last_name', 'key', 'male',
-                       'bio', 'age', 'height', 'wealth', 'birthday', 'group',
-                       'favorite_day', 'moment_of_truth', 'administrator',
-                       'exgirlfriend', 'contributor', 'nick_name',
-                       'intelligence_quotient') as $col) {
-            try {
-                $this->_conn->removeColumn('users', $col);
-            } catch (Exception $e) {}
-        }
-        $this->_conn->addColumn('users', 'first_name', 'string', array('limit' => 40));
-        $this->_conn->changeColumn('users', 'approved', 'boolean', array('default' => true));
-    }
-
     public function testMigrator()
     {
-        $user = new User;
-        $columns = $user->columnNames();
+        $columns = $this->_columnNames('users');
 
         $this->assertFalse(in_array('last_name', $columns));
 
@@ -70,24 +46,23 @@ class Horde_Db_Migration_MigratorTest extends PHPUnit_Framework_TestCase
         $this->assertType('Horde_Db_Exception', $e);
 
         $dir = dirname(dirname(dirname(dirname(__FILE__)))).'/fixtures/migrations/';
-        Horde_Db_Migration_Migrator::up($dir);
-        $this->assertEquals(3, Horde_Db_Migration_Migrator::getCurrentVersion());
+        $migrator = new Horde_Db_Migration_Migrator($this->_conn, $dir);
+        $migrator->up();
+        $this->assertEquals(3, $migrator->getCurrentVersion());
 
-        $user->resetColumnInformation();
-        $columns = $user->columnNames();
+        $columns = $this->_columnNames('users');
         $this->assertTrue(in_array('last_name', $columns));
 
-        $result = Reminder::create(array('content'   => 'hello world',
-                                         'remind_at' => '2005-01-01 02:22:23'));
-        $reminder = Reminder::find('first');
+        $this->_conn->insert("INSERT INTO reminders (content, remind_at) VALUES ('hello world', '2005-01-01 02:22:23')");
+        $reminder = (object)$this->_conn->selectOne('SELECT * FROM reminders');
         $this->assertEquals('hello world', $reminder->content);
 
         $dir = dirname(dirname(dirname(dirname(__FILE__)))).'/fixtures/migrations/';
-        Horde_Db_Migration_Migrator::down($dir);
-        $this->assertEquals(0, Horde_Db_Migration_Migrator::getCurrentVersion());
+        $migrator = new Horde_Db_Migration_Migrator($this->_conn, $dir);
+        $migrator->down();
+        $this->assertEquals(0, $migrator->getCurrentVersion());
 
-        $user->resetColumnInformation();
-        $columns = $user->columnNames();
+        $columns = $this->_columnNames('users');
         $this->assertFalse(in_array('last_name', $columns));
 
         $e = null;
@@ -106,11 +81,11 @@ class Horde_Db_Migration_MigratorTest extends PHPUnit_Framework_TestCase
         $this->assertType('Horde_Db_Exception', $e);
 
         $dir = dirname(dirname(dirname(dirname(__FILE__)))).'/fixtures/migrations/';
-        Horde_Db_Migration_Migrator::up($dir, 1);
-        $this->assertEquals(1, Horde_Db_Migration_Migrator::getCurrentVersion());
+        $migrator = new Horde_Db_Migration_Migrator($this->_conn, $dir);
+        $migrator->up(1);
+        $this->assertEquals(1, $migrator->getCurrentVersion());
 
-        $user = new User;
-        $columns = $user->columnNames();
+        $columns = $this->_columnNames('users');
         $this->assertTrue(in_array('last_name', $columns));
 
         $e = null;
@@ -119,48 +94,47 @@ class Horde_Db_Migration_MigratorTest extends PHPUnit_Framework_TestCase
         } catch (Exception $e) {}
         $this->assertType('Horde_Db_Exception', $e);
 
-        Horde_Db_Migration_Migrator::up($dir, 2);
-        $this->assertEquals(2, Horde_Db_Migration_Migrator::getCurrentVersion());
+        $migrator->up(2);
+        $this->assertEquals(2, $migrator->getCurrentVersion());
 
-        $result = Reminder::create(array('content'   => 'hello world',
-                                         'remind_at' => '2005-01-01 02:22:23'));
-        $reminder = Reminder::find('first');
+        $this->_conn->insert("INSERT INTO reminders (content, remind_at) VALUES ('hello world', '2005-01-01 02:22:23')");
+        $reminder = (object)$this->_conn->selectOne('SELECT * FROM reminders');
         $this->assertEquals('hello world', $reminder->content);
     }
 
     public function testOneDown()
     {
         $dir = dirname(dirname(dirname(dirname(__FILE__)))).'/fixtures/migrations/';
+        $migrator = new Horde_Db_Migration_Migrator($this->_conn, $dir);
 
-        Horde_Db_Migration_Migrator::up($dir);
-        Horde_Db_Migration_Migrator::down($dir, 1);
+        $migrator->up();
+        $migrator->down(1);
 
-        $user = new User;
-        $columns = $user->columnNames();
+        $columns = $this->_columnNames('users');
         $this->assertTrue(in_array('last_name', $columns));
     }
 
     public function testOneUpOneDown()
     {
         $dir = dirname(dirname(dirname(dirname(__FILE__)))).'/fixtures/migrations/';
+        $migrator = new Horde_Db_Migration_Migrator($this->_conn, $dir);
 
-        Horde_Db_Migration_Migrator::up($dir, 1);
-        Horde_Db_Migration_Migrator::down($dir, 0);
+        $migrator->up(1);
+        $migrator->down(0);
 
-        $user = new User;
-        $columns = $user->columnNames();
+        $columns = $this->_columnNames('users');
         $this->assertFalse(in_array('last_name', $columns));
     }
 
     public function testMigratorGoingDownDueToVersionTarget()
     {
         $dir = dirname(dirname(dirname(dirname(__FILE__)))).'/fixtures/migrations/';
+        $migrator = new Horde_Db_Migration_Migrator($this->_conn, $dir);
 
-        Horde_Db_Migration_Migrator::up($dir, 1);
-        Horde_Db_Migration_Migrator::down($dir, 0);
+        $migrator->up(1);
+        $migrator->down(0);
 
-        $user = new User;
-        $columns = $user->columnNames();
+        $columns = $this->_columnNames('users');
         $this->assertFalse(in_array('last_name', $columns));
 
         $e = null;
@@ -169,16 +143,13 @@ class Horde_Db_Migration_MigratorTest extends PHPUnit_Framework_TestCase
         } catch (Exception $e) {}
         $this->assertType('Horde_Db_Exception', $e);
 
+        $migrator->up();
 
-        Horde_Db_Migration_Migrator::up($dir);
-
-        $user->resetColumnInformation();
-        $columns = $user->columnNames();
+        $columns = $this->_columnNames('users');
         $this->assertTrue(in_array('last_name', $columns));
 
-        $result = Reminder::create(array('content'   => 'hello world',
-                                         'remind_at' => '2005-01-01 02:22:23'));
-        $reminder = Reminder::find('first');
+        $this->_conn->insert("INSERT INTO reminders (content, remind_at) VALUES ('hello world', '2005-01-01 02:22:23')");
+        $reminder = (object)$this->_conn->selectOne('SELECT * FROM reminders');
         $this->assertEquals('hello world', $reminder->content);
     }
 
@@ -186,7 +157,8 @@ class Horde_Db_Migration_MigratorTest extends PHPUnit_Framework_TestCase
     {
         try {
             $dir = dirname(dirname(dirname(dirname(__FILE__)))).'/fixtures/migrations_with_duplicate/';
-            Horde_Db_Migration_Migrator::up($dir);
+            $migrator = new Horde_Db_Migration_Migrator($this->_conn, $dir);
+            $migrator->up();
         } catch (Exception $e) { return; }
         $this->fail('Expected exception wasn\'t raised');
     }
@@ -194,11 +166,12 @@ class Horde_Db_Migration_MigratorTest extends PHPUnit_Framework_TestCase
     public function testWithMissingVersionNumbers()
     {
         $dir = dirname(dirname(dirname(dirname(__FILE__)))).'/fixtures/migrations_with_missing_versions/';
-        Horde_Db_Migration_Migrator::migrate($dir, 500);
-        $this->assertEquals(4, Horde_Db_Migration_Migrator::getCurrentVersion());
+        $migrator = new Horde_Db_Migration_Migrator($this->_conn, $dir);
+        $migrator->migrate(500);
+        $this->assertEquals(4, $migrator->getCurrentVersion());
 
-        Horde_Db_Migration_Migrator::migrate($dir, 2);
-        $this->assertEquals(2, Horde_Db_Migration_Migrator::getCurrentVersion());
+        $migrator->migrate(2);
+        $this->assertEquals(2, $migrator->getCurrentVersion());
 
         $e = null;
         try {
@@ -206,8 +179,18 @@ class Horde_Db_Migration_MigratorTest extends PHPUnit_Framework_TestCase
         } catch (Exception $e) {}
         $this->assertType('Horde_Db_Exception', $e);
 
-        $user = new User;
-        $columns = $user->columnNames();
+        $columns = $this->_columnNames('users');
         $this->assertTrue(in_array('last_name', $columns));
     }
+
+
+    protected function _columnNames($tableName)
+    {
+        $columns = array();
+        foreach ($this->_conn->columns($tableName) as $c) {
+            $columns[] = $c->name;
+        }
+        return $columns;
+    }
+
 }
\ No newline at end of file