1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
|
<?php
namespace Illuminate\Tests\Integration\Database;
use Illuminate\Database\Events\MigrationEnded;
use Illuminate\Database\Events\MigrationsEnded;
use Illuminate\Database\Events\MigrationsStarted;
use Illuminate\Database\Events\MigrationStarted;
use Illuminate\Database\Events\NoPendingMigrations;
use Illuminate\Database\Migrations\Migration;
use Illuminate\Support\Facades\Event;
class MigratorEventsTest extends DatabaseTestCase
{
protected function migrateOptions()
{
return [
'--path' => realpath(__DIR__.'/stubs/'),
'--realpath' => true,
];
}
public function testMigrationEventsAreFired()
{
Event::fake();
$this->artisan('migrate', $this->migrateOptions());
$this->artisan('migrate:rollback', $this->migrateOptions());
Event::assertDispatched(MigrationsStarted::class, 2);
Event::assertDispatched(MigrationsEnded::class, 2);
Event::assertDispatched(MigrationStarted::class, 2);
Event::assertDispatched(MigrationEnded::class, 2);
}
public function testMigrationEventsContainTheMigrationAndMethod()
{
Event::fake();
$this->artisan('migrate', $this->migrateOptions());
$this->artisan('migrate:rollback', $this->migrateOptions());
Event::assertDispatched(MigrationStarted::class, function ($event) {
return $event->method == 'up' && $event->migration instanceof Migration;
});
Event::assertDispatched(MigrationStarted::class, function ($event) {
return $event->method == 'down' && $event->migration instanceof Migration;
});
Event::assertDispatched(MigrationEnded::class, function ($event) {
return $event->method == 'up' && $event->migration instanceof Migration;
});
Event::assertDispatched(MigrationEnded::class, function ($event) {
return $event->method == 'down' && $event->migration instanceof Migration;
});
}
public function testTheNoMigrationEventIsFiredWhenNothingToMigrate()
{
Event::fake();
$this->artisan('migrate');
$this->artisan('migrate:rollback');
Event::assertDispatched(NoPendingMigrations::class, function ($event) {
return $event->method == 'up';
});
Event::assertDispatched(NoPendingMigrations::class, function ($event) {
return $event->method == 'down';
});
}
}
|