Feuerwehr-eppingen/vendor/cviebrock/eloquent-sluggable/tests/TestCase.php
2022-08-17 21:48:37 +02:00

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;
}
}