GiiTestCase.php 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <?php
  2. namespace yiiunit\gii;
  3. use Yii;
  4. use yii\helpers\FileHelper;
  5. /**
  6. * GiiTestCase is the base class for all gii related test cases
  7. * @group gii
  8. */
  9. class GiiTestCase extends TestCase
  10. {
  11. protected $driverName = 'sqlite';
  12. protected function setUp()
  13. {
  14. parent::setUp();
  15. FileHelper::createDirectory(__DIR__ . '/runtime');
  16. $allConfigs = require(__DIR__ . '/data/config.php');
  17. $config = $allConfigs['databases'][$this->driverName];
  18. $pdo_database = 'pdo_' . $this->driverName;
  19. if (!extension_loaded('pdo') || !extension_loaded($pdo_database)) {
  20. $this->markTestSkipped('pdo and ' . $pdo_database . ' extension are required.');
  21. }
  22. $this->mockApplication([
  23. 'components' => [
  24. 'db' => [
  25. 'class' => isset($config['class']) ? $config['class'] : 'yii\db\Connection',
  26. 'dsn' => $config['dsn'],
  27. 'username' => isset($config['username']) ? $config['username'] : null,
  28. 'password' => isset($config['password']) ? $config['password'] : null,
  29. ],
  30. ],
  31. ]);
  32. if (isset($config['fixture'])) {
  33. Yii::$app->db->open();
  34. $lines = explode(';', file_get_contents($config['fixture']));
  35. foreach ($lines as $line) {
  36. if (trim($line) !== '') {
  37. Yii::$app->db->pdo->exec($line);
  38. }
  39. }
  40. }
  41. }
  42. }