コード例 #1
0
 /**
  * @param Ticket $ticket
  *
  * @return bool
  */
 public function save(Ticket $ticket)
 {
     /** @var TicketRepository $repository */
     $repository = $this->doctrine->getRepository('CSHelpDeskBundle:Ticket');
     $eventType = 'update';
     if (!$ticket->getId()) {
         $ticket->setStatus('open');
         $eventType = 'create';
     }
     $this->dispatcher->dispatch(constant(sprintf('CS\\HelpDeskBundle\\Event\\TicketEvent::PRE_%s', strtoupper($eventType))), new TicketEvent($ticket));
     $repository->save($ticket);
     $this->dispatcher->dispatch(constant(sprintf('CS\\HelpDeskBundle\\Event\\TicketEvent::POST_%s', strtoupper($eventType))), new TicketEvent($ticket));
     return true;
 }
コード例 #2
0
 function it_updates_a_ticket(Ticket $ticket, TicketRepository $repository, $doctrine, $dispatcher)
 {
     $ticket->getId()->shouldBeCalled()->willReturn(true);
     $ticket->setStatus('open')->shouldNotBeCalled();
     $doctrine->getRepository('CSHelpDeskBundle:Ticket')->shouldBeCalled()->willReturn($repository);
     $dispatcher->dispatch('ticket.pre_update', new TicketEvent($ticket->getWrappedObject()))->shouldBeCalled();
     $dispatcher->dispatch('ticket.post_update', new TicketEvent($ticket->getWrappedObject()))->shouldBeCalled();
     $repository->save($ticket)->shouldBeCalled();
     $this->save($ticket)->shouldReturn(true);
 }