OSDN Git Service

move db commands to Command_Runner
authorscribu <mail@scribu.net>
Sat, 16 Feb 2013 20:55:48 +0000 (22:55 +0200)
committerscribu <mail@scribu.net>
Sat, 16 Feb 2013 20:56:30 +0000 (22:56 +0200)
tests/abstract-spec.php
tests/command-runner.php

index 08a1e27..2183b40 100644 (file)
@@ -2,29 +2,6 @@
 
 abstract class WP_CLI_Spec extends PHPUnit_Extensions_Story_TestCase {
 
-       protected static $db_settings = array(
-               'dbname' => 'wp_cli_test',
-               'dbuser' => 'wp_cli_test',
-               'dbpass' => 'password1'
-       );
-
-       private static function run_sql( $sql ) {
-               $dbuser = self::$db_settings['dbuser'];
-               $dbpass = self::$db_settings['dbpass'];
-
-               exec( "mysql -u$dbuser -p$dbpass -e '$sql'" );
-       }
-
-       protected function tearDown() {
-               $dbname = self::$db_settings['dbname'];
-               $this->run_sql( "DROP DATABASE IF EXISTS $dbname" );
-       }
-
-       private function create_db() {
-               $dbname = self::$db_settings['dbname'];
-               $this->run_sql( "CREATE DATABASE $dbname" );
-       }
-
        public function runGiven( &$world, $action, $arguments ) {
                switch ( $action ) {
                        case 'empty dir': {
@@ -33,7 +10,7 @@ abstract class WP_CLI_Spec extends PHPUnit_Extensions_Story_TestCase {
                        break;
 
                        case 'database': {
-                               $this->create_db();
+                               $world['runner']->create_db();
                        }
                        break;
 
@@ -43,15 +20,15 @@ abstract class WP_CLI_Spec extends PHPUnit_Extensions_Story_TestCase {
                        break;
 
                        case 'wp config': {
-                               $world['runner']->create_config( self::$db_settings );
+                               $world['runner']->create_config();
                        }
                        break;
 
                        case 'wp install': {
-                               $this->create_db();
                                $world['runner'] = new WP_CLI_Command_Runner;
+                               $world['runner']->create_db();
                                $world['runner']->download_wordpress_files();
-                               $world['runner']->create_config( self::$db_settings );
+                               $world['runner']->create_config();
                                $world['runner']->run_install();
                        }
                        break;
@@ -79,7 +56,7 @@ abstract class WP_CLI_Spec extends PHPUnit_Extensions_Story_TestCase {
                                        break;
 
                                        case 'core config': {
-                                               $world['result'] = $world['runner']->create_config( self::$db_settings );
+                                               $world['result'] = $world['runner']->create_config();
                                        }
                                        break;
 
index d35e4d1..98d6955 100644 (file)
@@ -2,11 +2,36 @@
 
 class WP_CLI_Command_Runner {
 
+       protected static $db_settings = array(
+               'dbname' => 'wp_cli_test',
+               'dbuser' => 'wp_cli_test',
+               'dbpass' => 'password1'
+       );
+
        private $install_dir;
 
        public function __construct() {
                $this->install_dir = sys_get_temp_dir() . '/' . uniqid( "wp-cli-test-", TRUE );
                mkdir( $this->install_dir );
+
+               $this->drop_db();
+       }
+
+       public function create_db() {
+               $dbname = self::$db_settings['dbname'];
+               self::run_sql( "CREATE DATABASE $dbname" );
+       }
+
+       public function drop_db() {
+               $dbname = self::$db_settings['dbname'];
+               self::run_sql( "DROP DATABASE IF EXISTS $dbname" );
+       }
+
+       private static function run_sql( $sql ) {
+               $dbuser = self::$db_settings['dbuser'];
+               $dbpass = self::$db_settings['dbpass'];
+
+               exec( "mysql -u$dbuser -p$dbpass -e '$sql'" );
        }
 
        public function run( $command, $cwd = false ) {
@@ -34,8 +59,8 @@ class WP_CLI_Command_Runner {
                return (object) compact( 'command', 'return_code', 'stdout', 'stderr' );
        }
 
-       public function create_config( $db_settings ) {
-               return $this->run( 'core config' . \WP_CLI\Utils\assoc_args_to_str( $db_settings ) );
+       public function create_config() {
+               return $this->run( 'core config' . \WP_CLI\Utils\assoc_args_to_str( self::$db_settings ) );
        }
 
        public function define_custom_wp_content_dir() {