public function testPersistEvent()
 {
     $ticket = Ticket::open(TicketId::generate(), 'iqbal', 'Error when delete data.');
     $this->assertEquals('iqbal', $ticket->getName());
     $this->assertEquals('Error when delete data.', $ticket->getMessage());
     $this->assertEquals('open', $ticket->getStatus());
     $ticket->close();
     $this->assertEquals('closed', $ticket->getStatus());
     $stream = $ticket->getUncommittedEvents();
     $events = $stream->all();
     $this->assertCount(2, $stream);
     $this->assertInstanceOf('\\Borobudur\\EventSourcing\\Test\\Event\\TicketWasCreated', $events[0]->getPayload());
     $this->assertInstanceOf('\\Borobudur\\EventSourcing\\Test\\Event\\TicketWasClosed', $events[1]->getPayload());
 }
 public function testSourceEvents()
 {
     $id = TicketId::generate();
     $ticket = Ticket::open($id, 'iqbal', 'Wrong data type!');
     $this->repository->persist($ticket);
     /** @var Ticket $ticket */
     $ticket = $this->repository->find($id);
     $this->assertEquals((string) $id, (string) $ticket->getId());
     $this->assertEquals('iqbal', $ticket->getName());
     $this->assertEquals('Wrong data type!', $ticket->getMessage());
     $this->assertEquals('open', $ticket->getStatus());
     $ticket->close();
     $this->repository->persist($ticket);
     $ticket = $this->repository->find($ticket->getId());
     $this->assertEquals('closed', $ticket->getStatus());
     return $id;
 }
 private function create($id, $name, $message)
 {
     $ticket = Ticket::open($id, $name, $message);
     $this->repository->persist($ticket);
 }
示例#4
0
 /**
  * Open ticket.
  *
  * @param TicketId $id
  * @param          $name
  * @param          $message
  *
  * @return Ticket
  */
 public static function open(TicketId $id, $name, $message)
 {
     $ticket = new Ticket();
     $ticket->apply(new TicketWasCreated($id, $name, $message));
     return $ticket;
 }