public function execute(CommittedJob $job, LogProvider $logProvider) { $r = new \ReflectionClass($job->getImplementation()); $task = $r->newInstance(); if ($task instanceof LoggerAwareInterface) { $task->setLogger($logProvider->getLogger()); } $task->perform(...$job->getArguments()); }
function it_invokes_tasks(LogProvider $logProvider) { $logProvider->getLogger()->shouldBeCalled()->willReturn(new NullLogger()); $job = new CommittedJob('id', 'queue', ExampleJob::class, 'arg1', 'arg2'); $this->execute($job, $logProvider); }