diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..987e2a2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +composer.lock +vendor diff --git a/composer.json b/composer.json index d827076..7a177c2 100644 --- a/composer.json +++ b/composer.json @@ -21,7 +21,8 @@ "illuminate/support": "~5.2" }, "require-dev": { - "phpunit/phpunit" : "4.*" + "phpunit/phpunit" : "4.*", + "orchestra/testbench": "~3.0" }, "autoload": { "psr-4": { diff --git a/tests/GozerTest.php b/tests/GozerTest.php index 7c6933b..adeef1d 100644 --- a/tests/GozerTest.php +++ b/tests/GozerTest.php @@ -5,10 +5,63 @@ use Superhelio\Commands\Commands\Gozer; use Illuminate\Foundation\Testing\DatabaseMigrations; use Illuminate\Foundation\Testing\DatabaseTransactions; -class GozerTest extends \PHPUnit_Framework_TestCase +class GozerTest extends \Orchestra\Testbench\TestCase { + /** + * Setup the test environment. + */ + public function setUp() + { + parent::setUp(); + $this->artisan('migrate', ['--database' => 'testbench']); + } + /** + * Define environment setup. + * + * @param \Illuminate\Foundation\Application $app + * + * @return void + */ + protected function getEnvironmentSetUp($app) + { + // Setup default database to use sqlite :memory: + $app['config']->set('database.default', 'testbench'); + $app['config']->set('database.connections.testbench', [ + 'driver' => 'sqlite', + 'database' => ':memory:', + 'prefix' => '', + ]); + } + + /** + * Get package providers. At a minimum this is the package being tested, but also + * would include packages upon which our package depends, e.g. Cartalyst/Sentry + * In a normal app environment these would be added to the 'providers' array in + * the config/app.php file. + * + * @param \Illuminate\Foundation\Application $app + * + * @return array + */ + protected function getPackageProviders($app) + { + return [ + \Superhelio\Commands\Tests\Stubs\ServiceProvider::class, + \Superhelio\Commands\ServiceProvider::class + ]; + } + public function testGozerTest() { - $this->assertTrue(true); + \DB::table('users')->insert([ + 'name' => 'User name', + 'email' => 'hello@gozer.dev', + 'password' => bcrypt('123') + ]); + + $users = \DB::table('users')->where('id', '=', 1)->first(); + $this->assertEquals('hello@gozer.dev', $users->email); + $this->assertEquals('User name', $users->name); + $this->assertTrue(\Hash::check('123', $users->password)); } } diff --git a/tests/Stubs/ServiceProvider.php b/tests/Stubs/ServiceProvider.php new file mode 100644 index 0000000..6a65aa8 --- /dev/null +++ b/tests/Stubs/ServiceProvider.php @@ -0,0 +1,10 @@ +loadMigrationsFrom(realpath(__DIR__ . '/../migrations')); + } +} diff --git a/tests/migrations/2014_10_12_000000_create_users_table.php b/tests/migrations/2014_10_12_000000_create_users_table.php new file mode 100644 index 0000000..689cbee --- /dev/null +++ b/tests/migrations/2014_10_12_000000_create_users_table.php @@ -0,0 +1,35 @@ +increments('id'); + $table->string('name'); + $table->string('email')->unique(); + $table->string('password'); + $table->rememberToken(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::dropIfExists('users'); + } +}