class BusFake implements Fake, QueueingDispatcher (View source)

Traits

Properties

QueueingDispatcher $dispatcher

The original Bus dispatcher implementation.

protected array $jobsToFake

The job types that should be intercepted instead of dispatched.

protected array $jobsToDispatch

The job types that should be dispatched instead of faked.

protected BatchRepository $batchRepository

The fake repository to track batched jobs.

protected array $commands

The commands that have been dispatched.

protected array $commandsSync

The commands that have been dispatched synchronously.

protected array $commandsAfterResponse

The commands that have been dispatched after the response has been sent.

protected array $batches

The batches that have been dispatched.

protected bool $serializeAndRestore

Indicates if commands should be serialized and restored when pushed to the Bus.

Methods

string
firstClosureParameterType(Closure $closure)

Get the class name of the first parameter of the given Closure.

array
firstClosureParameterTypes(Closure $closure)

Get the class names of the first parameter of the given Closure, including union types.

array
closureParameterTypes(Closure $closure)

Get the class names / types of the parameters of the given Closure.

void
__construct(QueueingDispatcher $dispatcher, array|string $jobsToFake = [], BatchRepository|null $batchRepository = null)

Create a new bus fake instance.

$this
except(array|string $jobsToDispatch)

Specify the jobs that should be dispatched instead of faked.

void
assertDispatched(string|Closure $command, callable|int|null $callback = null)

Assert if a job was dispatched based on a truth-test callback.

void
assertDispatchedTimes(string|Closure $command, int $times = 1)

Assert if a job was pushed a number of times.

void
assertNotDispatched(string|Closure $command, callable|null $callback = null)

Determine if a job was dispatched based on a truth-test callback.

void
assertNothingDispatched()

Assert that no jobs were dispatched.

void
assertDispatchedSync(string|Closure $command, callable|int|null $callback = null)

Assert if a job was explicitly dispatched synchronously based on a truth-test callback.

void
assertDispatchedSyncTimes(string|Closure $command, int $times = 1)

Assert if a job was pushed synchronously a number of times.

void
assertNotDispatchedSync(string|Closure $command, callable|null $callback = null)

Determine if a job was dispatched based on a truth-test callback.

void
assertDispatchedAfterResponse(string|Closure $command, callable|int|null $callback = null)

Assert if a job was dispatched after the response was sent based on a truth-test callback.

void
assertDispatchedAfterResponseTimes(string|Closure $command, int $times = 1)

Assert if a job was pushed after the response was sent a number of times.

void
assertNotDispatchedAfterResponse(string|Closure $command, callable|null $callback = null)

Determine if a job was dispatched based on a truth-test callback.

void
assertChained(array $expectedChain)

Assert if a chain of jobs was dispatched.

mixed
resetChainPropertiesToDefaults(mixed $job)

Reset the chain properties to their default values on the job.

void
assertDispatchedWithoutChain(string|Closure $command, callable|null $callback = null)

Assert if a job was dispatched with an empty chain based on a truth-test callback.

void
assertDispatchedWithChainOfObjects(string $command, array $expectedChain, callable|null $callback)

Assert if a job was dispatched with chained jobs based on a truth-test callback.

chainedBatch(Closure $callback)

Create a new assertion about a chained batch.

void
assertBatched(callable $callback)

Assert if a batch was dispatched based on a truth-test callback.

void
assertBatchCount(int $count)

Assert the number of batches that have been dispatched.

void
assertNothingBatched()

Assert that no batched jobs were dispatched.

dispatched(string $command, callable|null $callback = null)

Get all of the jobs matching a truth-test callback.

dispatchedSync(string $command, callable|null $callback = null)

Get all of the jobs dispatched synchronously matching a truth-test callback.

dispatchedAfterResponse(string $command, callable|null $callback = null)

Get all of the jobs dispatched after the response was sent matching a truth-test callback.

batched(callable $callback)

Get all of the pending batches matching a truth-test callback.

bool
hasDispatched(string $command)

Determine if there are any stored commands for a given class.

bool
hasDispatchedSync(string $command)

Determine if there are any stored commands for a given class.

bool
hasDispatchedAfterResponse(string $command)

Determine if there are any stored commands for a given class.

mixed
dispatch(mixed $command)

Dispatch a command to its appropriate handler.

mixed
dispatchSync(mixed $command, mixed $handler = null)

Dispatch a command to its appropriate handler in the current process.

mixed
dispatchNow(mixed $command, mixed $handler = null)

Dispatch a command to its appropriate handler in the current process.

mixed
dispatchToQueue(mixed $command)

Dispatch a command to its appropriate handler behind a queue.

mixed
dispatchAfterResponse(mixed $command)

Dispatch a command to its appropriate handler.

chain(Collection|array $jobs)

Create a new chain of queueable jobs.

Batch|null
findBatch(string $batchId)

Attempt to find the batch with the given ID.

batch(Collection|array $jobs)

Create a new batch of queueable jobs.

dispatchFakeBatch(string $name = '')

Dispatch an empty job batch for testing.

recordPendingBatch(PendingBatch $pendingBatch)

Record the fake pending batch dispatch.

bool
shouldFakeJob(mixed $command)

Determine if a command should be faked or actually dispatched.

bool
shouldDispatchCommand(mixed $command)

Determine if a command should be dispatched or not.

$this
serializeAndRestore(bool $serializeAndRestore = true)

Specify if commands should be serialized and restored when being batched.

mixed
serializeAndRestoreCommand(mixed $command)

Serialize and unserialize the command to simulate the queueing process.

mixed
getCommandRepresentation(mixed $command)

Return the command representation that should be stored.

$this
pipeThrough(array $pipes)

Set the pipes commands should be piped through before dispatching.

bool
hasCommandHandler(mixed $command)

Determine if the given command has a handler.

bool|mixed
getCommandHandler(mixed $command)

Retrieve the handler for a command.

$this
map(array $map)

Map a command to a handler.

array
dispatchedBatches()

Get the batches that have been dispatched.

Details

protected string firstClosureParameterType(Closure $closure)

Get the class name of the first parameter of the given Closure.

Parameters

Closure $closure

Return Value

string

Exceptions

ReflectionException
RuntimeException

protected array firstClosureParameterTypes(Closure $closure)

Get the class names of the first parameter of the given Closure, including union types.

Parameters

Closure $closure

Return Value

array

Exceptions

ReflectionException
RuntimeException

protected array closureParameterTypes(Closure $closure)

Get the class names / types of the parameters of the given Closure.

Parameters

Closure $closure

Return Value

array

Exceptions

ReflectionException

void __construct(QueueingDispatcher $dispatcher, array|string $jobsToFake = [], BatchRepository|null $batchRepository = null)

Create a new bus fake instance.

Parameters

QueueingDispatcher $dispatcher
array|string $jobsToFake
BatchRepository|null $batchRepository

Return Value

void

$this except(array|string $jobsToDispatch)

Specify the jobs that should be dispatched instead of faked.

Parameters

array|string $jobsToDispatch

Return Value

$this

void assertDispatched(string|Closure $command, callable|int|null $callback = null)

Assert if a job was dispatched based on a truth-test callback.

Parameters

string|Closure $command
callable|int|null $callback

Return Value

void

void assertDispatchedTimes(string|Closure $command, int $times = 1)

Assert if a job was pushed a number of times.

Parameters

string|Closure $command
int $times

Return Value

void

void assertNotDispatched(string|Closure $command, callable|null $callback = null)

Determine if a job was dispatched based on a truth-test callback.

Parameters

string|Closure $command
callable|null $callback

Return Value

void

void assertNothingDispatched()

Assert that no jobs were dispatched.

Return Value

void

void assertDispatchedSync(string|Closure $command, callable|int|null $callback = null)

Assert if a job was explicitly dispatched synchronously based on a truth-test callback.

Parameters

string|Closure $command
callable|int|null $callback

Return Value

void

void assertDispatchedSyncTimes(string|Closure $command, int $times = 1)

Assert if a job was pushed synchronously a number of times.

Parameters

string|Closure $command
int $times

Return Value

void

void assertNotDispatchedSync(string|Closure $command, callable|null $callback = null)

Determine if a job was dispatched based on a truth-test callback.

Parameters

string|Closure $command
callable|null $callback

Return Value

void

void assertDispatchedAfterResponse(string|Closure $command, callable|int|null $callback = null)

Assert if a job was dispatched after the response was sent based on a truth-test callback.

Parameters

string|Closure $command
callable|int|null $callback

Return Value

void

void assertDispatchedAfterResponseTimes(string|Closure $command, int $times = 1)

Assert if a job was pushed after the response was sent a number of times.

Parameters

string|Closure $command
int $times

Return Value

void

void assertNotDispatchedAfterResponse(string|Closure $command, callable|null $callback = null)

Determine if a job was dispatched based on a truth-test callback.

Parameters

string|Closure $command
callable|null $callback

Return Value

void

void assertChained(array $expectedChain)

Assert if a chain of jobs was dispatched.

Parameters

array $expectedChain

Return Value

void

protected mixed resetChainPropertiesToDefaults(mixed $job)

Reset the chain properties to their default values on the job.

Parameters

mixed $job

Return Value

mixed

void assertDispatchedWithoutChain(string|Closure $command, callable|null $callback = null)

Assert if a job was dispatched with an empty chain based on a truth-test callback.

Parameters

string|Closure $command
callable|null $callback

Return Value

void

protected void assertDispatchedWithChainOfObjects(string $command, array $expectedChain, callable|null $callback)

Assert if a job was dispatched with chained jobs based on a truth-test callback.

Parameters

string $command
array $expectedChain
callable|null $callback

Return Value

void

ChainedBatchTruthTest chainedBatch(Closure $callback)

Create a new assertion about a chained batch.

Parameters

Closure $callback

Return Value

ChainedBatchTruthTest

void assertBatched(callable $callback)

Assert if a batch was dispatched based on a truth-test callback.

Parameters

callable $callback

Return Value

void

void assertBatchCount(int $count)

Assert the number of batches that have been dispatched.

Parameters

int $count

Return Value

void

void assertNothingBatched()

Assert that no batched jobs were dispatched.

Return Value

void

Collection dispatched(string $command, callable|null $callback = null)

Get all of the jobs matching a truth-test callback.

Parameters

string $command
callable|null $callback

Return Value

Collection

Collection dispatchedSync(string $command, callable|null $callback = null)

Get all of the jobs dispatched synchronously matching a truth-test callback.

Parameters

string $command
callable|null $callback

Return Value

Collection

Collection dispatchedAfterResponse(string $command, callable|null $callback = null)

Get all of the jobs dispatched after the response was sent matching a truth-test callback.

Parameters

string $command
callable|null $callback

Return Value

Collection

Collection batched(callable $callback)

Get all of the pending batches matching a truth-test callback.

Parameters

callable $callback

Return Value

Collection

bool hasDispatched(string $command)

Determine if there are any stored commands for a given class.

Parameters

string $command

Return Value

bool

bool hasDispatchedSync(string $command)

Determine if there are any stored commands for a given class.

Parameters

string $command

Return Value

bool

bool hasDispatchedAfterResponse(string $command)

Determine if there are any stored commands for a given class.

Parameters

string $command

Return Value

bool

mixed dispatch(mixed $command)

Dispatch a command to its appropriate handler.

Parameters

mixed $command

Return Value

mixed

mixed dispatchSync(mixed $command, mixed $handler = null)

Dispatch a command to its appropriate handler in the current process.

Queueable jobs will be dispatched to the "sync" queue.

Parameters

mixed $command
mixed $handler

Return Value

mixed

mixed dispatchNow(mixed $command, mixed $handler = null)

Dispatch a command to its appropriate handler in the current process.

Parameters

mixed $command
mixed $handler

Return Value

mixed

mixed dispatchToQueue(mixed $command)

Dispatch a command to its appropriate handler behind a queue.

Parameters

mixed $command

Return Value

mixed

mixed dispatchAfterResponse(mixed $command)

Dispatch a command to its appropriate handler.

Parameters

mixed $command

Return Value

mixed

PendingChain chain(Collection|array $jobs)

Create a new chain of queueable jobs.

Parameters

Collection|array $jobs

Return Value

PendingChain

Batch|null findBatch(string $batchId)

Attempt to find the batch with the given ID.

Parameters

string $batchId

Return Value

Batch|null

PendingBatch batch(Collection|array $jobs)

Create a new batch of queueable jobs.

Parameters

Collection|array $jobs

Return Value

PendingBatch

Batch dispatchFakeBatch(string $name = '')

Dispatch an empty job batch for testing.

Parameters

string $name

Return Value

Batch

Batch recordPendingBatch(PendingBatch $pendingBatch)

Record the fake pending batch dispatch.

Parameters

PendingBatch $pendingBatch

Return Value

Batch

protected bool shouldFakeJob(mixed $command)

Determine if a command should be faked or actually dispatched.

Parameters

mixed $command

Return Value

bool

protected bool shouldDispatchCommand(mixed $command)

Determine if a command should be dispatched or not.

Parameters

mixed $command

Return Value

bool

$this serializeAndRestore(bool $serializeAndRestore = true)

Specify if commands should be serialized and restored when being batched.

Parameters

bool $serializeAndRestore

Return Value

$this

protected mixed serializeAndRestoreCommand(mixed $command)

Serialize and unserialize the command to simulate the queueing process.

Parameters

mixed $command

Return Value

mixed

protected mixed getCommandRepresentation(mixed $command)

Return the command representation that should be stored.

Parameters

mixed $command

Return Value

mixed

$this pipeThrough(array $pipes)

Set the pipes commands should be piped through before dispatching.

Parameters

array $pipes

Return Value

$this

bool hasCommandHandler(mixed $command)

Determine if the given command has a handler.

Parameters

mixed $command

Return Value

bool

bool|mixed getCommandHandler(mixed $command)

Retrieve the handler for a command.

Parameters

mixed $command

Return Value

bool|mixed

$this map(array $map)

Map a command to a handler.

Parameters

array $map

Return Value

$this

array dispatchedBatches()

Get the batches that have been dispatched.

Return Value

array