12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- <?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;
- use Orchestra\Testbench\TestCase;
- class MigratorEventsTest extends TestCase
- {
- 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(MigrationsStarted::class, function ($event) {
- return $event->method === 'up';
- });
- Event::assertDispatched(MigrationsStarted::class, function ($event) {
- return $event->method === 'down';
- });
- Event::assertDispatched(MigrationsEnded::class, function ($event) {
- return $event->method === 'up';
- });
- Event::assertDispatched(MigrationsEnded::class, function ($event) {
- return $event->method === 'down';
- });
- 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';
- });
- }
- }
|