public function testCreateWhenAssigneeIsNull() { $branch = $this->createBranch(); $reporter = $this->createReporter(); $ticket = new Ticket(new UniqueId('unique_id'), new TicketSequenceNumber(null), self::TICKET_SUBJECT, self::TICKET_DESCRIPTION, $branch, $reporter, null, new Source(Source::PHONE), new Priority(Priority::PRIORITY_LOW), new Status(Status::NEW_ONE)); $this->assertEquals('Subject', $ticket->getSubject()); $this->assertEquals('Description', $ticket->getDescription()); $this->assertEquals($branch, $ticket->getBranch()); $this->assertEquals('new', $ticket->getStatus()->getValue()); $this->assertEquals($reporter, $ticket->getReporter()); $this->assertNull($ticket->getAssignee()); $this->assertEquals(Source::PHONE, $ticket->getSource()->getValue()); }
/** * @ORM\PrePersist * @ORM\PreUpdate * @param Ticket $ticket * @param LifecycleEventArgs $event */ public function prePersistHandler(Ticket $ticket, LifecycleEventArgs $event) { if ($ticket->getSequenceNumber()->getValue()) { return; } $em = $event->getEntityManager(); $query = $em->createQuery("SELECT MAX(t.sequenceNumber) FROM DiamanteDeskBundle:Ticket t WHERE t.branch = :branchId")->setParameter('branchId', $ticket->getBranch()->getId()); $ticketSequenceNumberValue = $query->getSingleScalarResult(); $ticketSequenceNumberValue++; $ticketSequenceNumber = $ticket->getSequenceNumber(); $ref = new \ReflectionClass($ticketSequenceNumber); $property = $ref->getProperty(self::TICKET_SEQUENCE_NUMBER_FIELD_TO_UPDATE); $property->setAccessible(true); $property->setValue($ticketSequenceNumber, $ticketSequenceNumberValue); $property->setAccessible(false); }
/** * @param Ticket $ticket * * @return MoveTicketCommand */ public function createMoveTicketCommand(Ticket $ticket) { $command = new MoveTicketCommand(); $command->id = $ticket->getId(); $command->branch = $ticket->getBranch(); return $command; }