123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- <?php
-
- namespace Illuminate\Support\Testing\Fakes;
-
- use Illuminate\Contracts\Bus\Dispatcher;
- use PHPUnit\Framework\Assert as PHPUnit;
-
- class BusFake implements Dispatcher
- {
- /**
- * The commands that have been dispatched.
- *
- * @var array
- */
- protected $commands = [];
-
- /**
- * Assert if a job was dispatched based on a truth-test callback.
- *
- * @param string $command
- * @param callable|int|null $callback
- * @return void
- */
- public function assertDispatched($command, $callback = null)
- {
- if (is_numeric($callback)) {
- return $this->assertDispatchedTimes($command, $callback);
- }
-
- PHPUnit::assertTrue(
- $this->dispatched($command, $callback)->count() > 0,
- "The expected [{$command}] job was not dispatched."
- );
- }
-
- /**
- * Assert if a job was pushed a number of times.
- *
- * @param string $command
- * @param int $times
- * @return void
- */
- protected function assertDispatchedTimes($command, $times = 1)
- {
- PHPUnit::assertTrue(
- ($count = $this->dispatched($command)->count()) === $times,
- "The expected [{$command}] job was pushed {$count} times instead of {$times} times."
- );
- }
-
- /**
- * Determine if a job was dispatched based on a truth-test callback.
- *
- * @param string $command
- * @param callable|null $callback
- * @return void
- */
- public function assertNotDispatched($command, $callback = null)
- {
- PHPUnit::assertTrue(
- $this->dispatched($command, $callback)->count() === 0,
- "The unexpected [{$command}] job was dispatched."
- );
- }
-
- /**
- * Get all of the jobs matching a truth-test callback.
- *
- * @param string $command
- * @param callable|null $callback
- * @return \Illuminate\Support\Collection
- */
- public function dispatched($command, $callback = null)
- {
- if (! $this->hasDispatched($command)) {
- return collect();
- }
-
- $callback = $callback ?: function () {
- return true;
- };
-
- return collect($this->commands[$command])->filter(function ($command) use ($callback) {
- return $callback($command);
- });
- }
-
- /**
- * Determine if there are any stored commands for a given class.
- *
- * @param string $command
- * @return bool
- */
- public function hasDispatched($command)
- {
- return isset($this->commands[$command]) && ! empty($this->commands[$command]);
- }
-
- /**
- * Dispatch a command to its appropriate handler.
- *
- * @param mixed $command
- * @return mixed
- */
- public function dispatch($command)
- {
- return $this->dispatchNow($command);
- }
-
- /**
- * Dispatch a command to its appropriate handler in the current process.
- *
- * @param mixed $command
- * @param mixed $handler
- * @return mixed
- */
- public function dispatchNow($command, $handler = null)
- {
- $this->commands[get_class($command)][] = $command;
- }
-
- /**
- * Set the pipes commands should be piped through before dispatching.
- *
- * @param array $pipes
- * @return $this
- */
- public function pipeThrough(array $pipes)
- {
- //
- }
-
- /**
- * Determine if the given command has a handler.
- *
- * @param mixed $command
- * @return bool
- */
- public function hasCommandHandler($command)
- {
- return false;
- }
-
- /**
- * Retrieve the handler for a command.
- *
- * @param mixed $command
- * @return mixed
- */
- public function getCommandHandler($command)
- {
- return false;
- }
-
- /**
- * Map a command to a handler.
- *
- * @param array $map
- * @return $this
- */
- public function map(array $map)
- {
- return $this;
- }
- }
|