public function testExecuteWithForceOnOffsetMigration() { $this->_adapter->setTableSchemaExist(true); $versions = array(array('version' => '20120109064438'), array('version' => '20120110064438'), array('version' => '20120111064438')); $this->_adapter->versions = $versions; $e = new Phigrate_Exception('test force'); $this->_adapter->throwException($e); $actual = $this->object->execute(array('VERSION' => '-2', '--force' => true)); $regexp = '/^Started: \\d{4}-\\d{2}-\\d{2} \\d{1,2}:\\d{2}(am|pm) \\w{3,4}\\012+' . '\\[db:migrate\\]:\\012+\\tMigrating DOWN to: 20120109064438\\012+' . '========= CreateAddresses ======== \\(\\d+.\\d{2}\\)\\012+\\033\\[1;31mError:\\033\\[0m test force\\012+' . '========= AddIndexToUsers ======== \\(\\d+.\\d{2}\\)\\012+\\033\\[1;31mError:\\033\\[0m test force\\012+' . 'Finished: \\d{4}-\\d{2}-\\d{2} \\d{1,2}:\\d{2}(am|pm) \\w{3,4}\\012+$/'; $this->assertNotEmpty($actual); $this->assertRegExp($regexp, $actual); $versions = array(array('version' => '20120109064438')); $this->assertEquals($versions, $this->_adapter->versions); $this->_adapter->throwException(null); }
public function testExecuteWithVersionTaskWithTableSchemaAndParameterForce() { $parameters = array('monScript.php', '-d', PHIGRATE_BASE . '/tests/fixtures/config/database.ini', '-c', PHIGRATE_BASE . '/tests/fixtures/config/application.ini', '-m', PHIGRATE_BASE . '/tests/fixtures/db/migrate', '--force', 'db:migrate', 'VERSION=20120111064438'); $actual = new Phigrate_FrameworkRunner($parameters); $adapter = new adapterTaskMock(array(), ''); $adapter->setTableSchemaExist(true); $adapter->versions = array(array('version' => '20120109064438')); $e = new InvalidArgumentException('test force'); $adapter->throwException($e); $actual->setAdapter($adapter); $task = $actual->execute(); $regexp = '/Started: \\d{4}-\\d{2}-\\d{2} \\d{1,2}:\\d{2}(am|pm) \\w{3,4}\\012+' . '\\[db:migrate\\]:\\012+\\t+Migrating UP to: 20120111064438\\012+' . '========= AddIndexToUsers ======== \\(\\d+.\\d{2}\\)\\012+\\033\\[1;31mError:\\033\\[0m test force\\012+' . '========= CreateAddresses ======== \\(\\d+.\\d{2}\\)\\012+\\033\\[1;31mError:\\033\\[0m test force\\012+' . 'Finished: \\d{4}-\\d{2}-\\d{2} \\d{1,2}:\\d{2}(am|pm) \\w{3,4}\\012+$/'; $this->assertNotEmpty($task); $this->assertRegExp($regexp, $task); }