meetup-raffle-winner-picker/tests/FakeEventRepository.php

29 lines
1.2 KiB
PHP
Raw Normal View History

2022-01-13 20:13:28 +00:00
<?php
declare(strict_types=1);
namespace App\Tests;
use App\EventRepository;
2022-01-13 20:54:29 +00:00
use App\RsvpResponse;
use Tightenco\Collect\Support\Collection;
2022-01-13 20:13:28 +00:00
final class FakeEventRepository implements EventRepository
{
private static array $rsvps = [
2022-01-13 21:27:08 +00:00
['name' => 'Oliver Davies.', 'response' => RsvpResponse::RESPONSE_YES, 'member' => ['event_context' => ['host' => true]]],
['name' => 'matthew s.', 'response' => RsvpResponse::RESPONSE_YES, 'member' => ['event_context' => ['host' => false]]],
['name' => 'Michael P.', 'response' => RsvpResponse::RESPONSE_YES, 'member' => ['event_context' => ['host' => false]]],
['name' => 'Kathryn "Kat" R.', 'response' => RsvpResponse::RESPONSE_YES, 'member' => ['event_context' => ['host' => false]]],
['name' => 'Did not attend', 'response' => RsvpResponse::RESPONSE_NO, 'member' => ['event_context' => ['host' => false]]],
];
public function getConfirmedAttendees(): Collection {
return Collection::make(self::$rsvps)
2022-01-13 20:54:29 +00:00
->filter(fn (array $attendee): bool => $attendee['response']
== RsvpResponse::RESPONSE_YES)
2022-01-13 21:29:35 +00:00
->filter(fn (array $attendee): bool => !$attendee['member']['event_context']['host'])
;
2022-01-13 20:13:28 +00:00
}
}