PageRenderTime 53ms CodeModel.GetById 25ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/migrations/tests/unit/migrationTest.php

https://bitbucket.org/sklyarov_ivan/trap
PHP | 62 lines | 43 code | 11 blank | 8 comment | 0 complexity | b0e1456c4f042601717fd87d7b8ad1b7 MD5 | raw file
Possible License(s): BSD-3-Clause
  1. <?php defined('SYSPATH') OR die('No direct script access.');
  2. /**
  3. * Tests for Migraiton
  4. * @group timestamped-migrations
  5. * @package Timestamped Migraitons
  6. */
  7. class Unit_MigrationTest extends Unittest_TestCase {
  8. public function test_load_driver()
  9. {
  10. $migration = new Migration_One(array('type' => 'mysql'));
  11. $this->assertInstanceOf('Migration_Driver_Mysql', $migration->driver());
  12. }
  13. public function test_driver_class()
  14. {
  15. $this->setExpectedException('PHPUnit_Framework_Error');
  16. $migration = new Migration_One(array('type' => 'mysql'));
  17. $dummy_driver = new stdClass;
  18. $migration->driver($dummy_driver);
  19. }
  20. public function data_driver_calling()
  21. {
  22. return array(
  23. array('create_table', array('table', array())),
  24. array('drop_table', array('table')),
  25. array('change_table', array('table', array())),
  26. array('rename_table', array('table', 'table2')),
  27. array('add_column', array('table', 'name', array())),
  28. array('rename_column', array('table', 'name', 'name2')),
  29. array('change_column', array('table', 'name', array())),
  30. array('remove_column', array('table', 'name')),
  31. array('add_index', array('table', 'name', 'column', 'type')),
  32. array('remove_index', array('table', 'name')),
  33. array('execute', array('sql', array())),
  34. );
  35. }
  36. /**
  37. * @dataProvider data_driver_calling
  38. */
  39. public function test_driver_calling($method, $args)
  40. {
  41. $logger = $this->getMock('Migration_Logger', array('log'));
  42. $logger->expects($this->exactly(4))->method('log');
  43. $migration = new Migration_One(array('type' => 'mysql', 'log' => array($logger, 'log')));
  44. $driver = $this->getMock('Migration_Driver_Mysql', array($method), array(Kohana::TESTING));
  45. $driver->expects($this->once())->method($method);
  46. $migration->driver($driver);
  47. call_user_func_array(array($migration, $method), $args);
  48. $migration->dry_run(TRUE);
  49. call_user_func_array(array($migration, $method), $args);
  50. }
  51. }