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); }
/** * 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; }