/** * Dispatches messages to the job manager. * * This method is registered as the message handler for messages with name "ConsumeJob". * * @param DefaultMessage $message */ public function consumeJob(DefaultMessage $message) { $ticket = $message->ticket; $type = $message->type; $this->logger->debug('Consume message from bernard backend', ['message' => $message]); $this->manager->onMessage(new Message($type, $ticket)); }
public function testConsumeJob() { $type = 'JobType'; $ticket = 'JobTicket'; $producerMessage = new DefaultMessage('ConsumeJob', ['type' => $type, 'ticket' => $ticket]); $this->manager->expects($this->once())->method('onMessage')->with(new Message($type, $ticket)); $this->subject->consumeJob($producerMessage); }
/** * @param ConsumerEvent $event * @throws \InvalidArgumentException If the message body does not contain the expected data */ public function process(ConsumerEvent $event) { $this->logger->debug('Process event {event} from sonata backend', ['event' => $event]); $ticket = $event->getMessage()->getValue('ticket', null); if (!is_string($ticket) || strlen((string) $ticket) == 0) { throw new \InvalidArgumentException('The message body must be an array containing the key "ticket"'); } $this->manager->onMessage(new Message($event->getMessage()->getType(), $ticket)); }
public function testRestartAction() { $job = new Job(); $job->setTicket('12345'); $client = static::createClient(); $this->mockServices(['abc.job.manager' => $this->manager]); $this->manager->expects($this->once())->method('restart')->willThrowException(new TicketNotFoundException($job->getTicket())); $client->request('POST', '/api/jobs/12345/restart'); $this->assertEquals(404, $client->getResponse()->getStatusCode()); }
/** * @ParamType("manager", type="@abc.manager") * @ReturnType("string") * * @param ManagerInterface $manager * @return null|string */ public function manageJob(ManagerInterface $manager) { $job = $manager->addJob('log', ['addedJob']); return $job->getTicket(); }
/** * @param ConsumerEvent $event * @dataProvider getInvalidEvent * @expectedException \InvalidArgumentException */ public function testProcessThrowsInvalidArgumentException(ConsumerEvent $event) { $this->manager->expects($this->never())->method('onMessage'); $this->subject->process($event); }