78 lines
1.6 KiB
PHP
78 lines
1.6 KiB
PHP
<?php namespace Cviebrock\EloquentSluggable\Tests;
|
|
|
|
use Cviebrock\EloquentSluggable\ServiceProvider;
|
|
use Illuminate\Contracts\Events\Dispatcher;
|
|
use Mockery;
|
|
use Orchestra\Testbench\TestCase as Orchestra;
|
|
|
|
/**
|
|
* Class TestCase
|
|
*
|
|
* @package Tests
|
|
*/
|
|
abstract class TestCase extends Orchestra
|
|
{
|
|
|
|
/**
|
|
* Setup the test environment.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function setUp()
|
|
{
|
|
parent::setUp();
|
|
|
|
$this->artisan('migrate', ['--database' => 'testbench']);
|
|
|
|
$this->beforeApplicationDestroyed(function () {
|
|
$this->artisan('migrate:rollback');
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Define environment setup.
|
|
*
|
|
* @param \Illuminate\Foundation\Application $app
|
|
* @return void
|
|
*/
|
|
protected function getEnvironmentSetUp($app)
|
|
{
|
|
// set up database configuration
|
|
$app['config']->set('database.default', 'testbench');
|
|
$app['config']->set('database.connections.testbench', [
|
|
'driver' => 'sqlite',
|
|
'database' => ':memory:',
|
|
'prefix' => '',
|
|
]);
|
|
}
|
|
|
|
/**
|
|
* Get Sluggable package providers.
|
|
*
|
|
* @return array
|
|
*/
|
|
protected function getPackageProviders($app)
|
|
{
|
|
return [
|
|
ServiceProvider::class,
|
|
TestServiceProvider::class
|
|
];
|
|
}
|
|
|
|
/**
|
|
* Mock the event dispatcher so all events are silenced and collected.
|
|
*
|
|
* @return $this
|
|
*/
|
|
protected function withoutEvents()
|
|
{
|
|
$mock = Mockery::mock(Dispatcher::class);
|
|
|
|
$mock->shouldReceive('fire', 'until');
|
|
|
|
$this->app->instance('events', $mock);
|
|
|
|
return $this;
|
|
}
|
|
}
|