From 028e8bab41938cf568109bdc75569e4863241b0d Mon Sep 17 00:00:00 2001 From: Adam Wathan Date: Tue, 22 Aug 2017 14:25:04 -0400 Subject: [PATCH] 134 - Confirming That a Job Was Dispatched --- .../Backstage/ConcertMessagesController.php | 3 ++ app/Jobs/SendAttendeeMessage.php | 36 +++++++++++++++++++ .../Backstage/MessageAttendeesTest.php | 15 ++++++++ 3 files changed, 54 insertions(+) create mode 100644 app/Jobs/SendAttendeeMessage.php diff --git a/app/Http/Controllers/Backstage/ConcertMessagesController.php b/app/Http/Controllers/Backstage/ConcertMessagesController.php index 86532f2..13cb339 100644 --- a/app/Http/Controllers/Backstage/ConcertMessagesController.php +++ b/app/Http/Controllers/Backstage/ConcertMessagesController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\Backstage; use Illuminate\Http\Request; +use App\Jobs\SendAttendeeMessage; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; @@ -26,6 +27,8 @@ class ConcertMessagesController extends Controller $message = $concert->attendeeMessages()->create(request(['subject', 'message'])); + SendAttendeeMessage::dispatch($message); + return redirect()->route('backstage.concert-messages.new', $concert) ->with('flash', "Your message has been sent."); } diff --git a/app/Jobs/SendAttendeeMessage.php b/app/Jobs/SendAttendeeMessage.php new file mode 100644 index 0000000..ab674ea --- /dev/null +++ b/app/Jobs/SendAttendeeMessage.php @@ -0,0 +1,36 @@ +attendeeMessage = $attendeeMessage; + } + + /** + * Execute the job. + * + * @return void + */ + public function handle() + { + // + } +} diff --git a/tests/Feature/Backstage/MessageAttendeesTest.php b/tests/Feature/Backstage/MessageAttendeesTest.php index 362f329..e6d2593 100644 --- a/tests/Feature/Backstage/MessageAttendeesTest.php +++ b/tests/Feature/Backstage/MessageAttendeesTest.php @@ -6,6 +6,8 @@ use App\User; use ConcertFactory; use Tests\TestCase; use App\AttendeeMessage; +use App\Jobs\SendAttendeeMessage; +use Illuminate\Support\Facades\Queue; use Illuminate\Foundation\Testing\DatabaseMigrations; class MessageAttendeesTest extends TestCase @@ -57,6 +59,7 @@ class MessageAttendeesTest extends TestCase { $this->disableExceptionHandling(); + Queue::fake(); $user = factory(User::class)->create(); $concert = ConcertFactory::createPublished([ 'user_id' => $user->id, @@ -74,11 +77,16 @@ class MessageAttendeesTest extends TestCase $this->assertEquals($concert->id, $message->concert_id); $this->assertEquals('My subject', $message->subject); $this->assertEquals('My message', $message->message); + + Queue::assertPushed(SendAttendeeMessage::class, function ($job) use ($message) { + return $job->attendeeMessage->is($message); + }); } /** @test */ function a_promoter_cannot_send_a_new_message_for_other_concerts() { + Queue::fake(); $user = factory(User::class)->create(); $otherUser = factory(User::class)->create(); $concert = ConcertFactory::createPublished([ @@ -92,11 +100,13 @@ class MessageAttendeesTest extends TestCase $response->assertStatus(404); $this->assertEquals(0, AttendeeMessage::count()); + Queue::assertNotPushed(SendAttendeeMessage::class); } /** @test */ function a_guest_cannot_send_a_new_message_for_any_concerts() { + Queue::fake(); $concert = ConcertFactory::createPublished(); $response = $this->post("/backstage/concerts/{$concert->id}/messages", [ @@ -106,11 +116,13 @@ class MessageAttendeesTest extends TestCase $response->assertRedirect('/login'); $this->assertEquals(0, AttendeeMessage::count()); + Queue::assertNotPushed(SendAttendeeMessage::class); } /** @test */ function subject_is_required() { + Queue::fake(); $user = factory(User::class)->create(); $concert = ConcertFactory::createPublished([ 'user_id' => $user->id, @@ -127,11 +139,13 @@ class MessageAttendeesTest extends TestCase $response->assertSessionHasErrors('subject'); $this->assertEquals(0, AttendeeMessage::count()); + Queue::assertNotPushed(SendAttendeeMessage::class); } /** @test */ function message_is_required() { + Queue::fake(); $user = factory(User::class)->create(); $concert = ConcertFactory::createPublished([ 'user_id' => $user->id, @@ -148,5 +162,6 @@ class MessageAttendeesTest extends TestCase $response->assertSessionHasErrors('message'); $this->assertEquals(0, AttendeeMessage::count()); + Queue::assertNotPushed(SendAttendeeMessage::class); } }