예제 #1
0
 public function ProductRenamed(\Knp\Event\Event $event)
 {
     $statement = $this->pdo->prepare('UPDATE product SET name = :name WHERE id = :id;');
     $statement->bindValue('id', $event->getEmitterId());
     $statement->bindValue('name', $event->name);
     $statement->execute();
 }
 function it_reconstructs_current_state_of_an_object_by_replaying_its_past_events(Replayable $emitter, Event $isBorn, Event $hasLived, Event $isDead, \ArrayIterator $events)
 {
     $isBorn->getName()->willReturn('born');
     $isBorn->getAttributes()->willReturn(['id' => 10]);
     $hasLived->getName()->willReturn('to be');
     $hasLived->getAttributes()->willReturn([]);
     $isDead->getName()->willReturn('wild');
     $isDead->getAttributes()->willReturn([]);
     $events->iterates([$isBorn, $hasLived, $isDead]);
     $emitter = $this->replay($events, 'spec\\Knp\\Event\\Player\\Replayable');
     $emitter->getId()->shouldEqual(10);
 }
예제 #3
0
 public function Deleted(Event $event)
 {
     $this->connection->delete($this->getTableName($event->getEmitterClass()), ['id' => $event->getEmitterId()]);
 }
예제 #4
0
 function it_refuses_conflictual_sets($store, $versionTransporter, Event $event, Event $conflictual, Emitter $emitter)
 {
     $store->getCurrentVersion(Argument::cetera())->willReturn(3);
     $versionTransporter->getExpectedVersion(Argument::cetera())->willReturn(1);
     $this->shouldThrow('Knp\\Event\\Exception\\Concurrency\\Optimistic\\Conflict', 'addSet', [new Event\Set($emitter->getWrappedObject(), [$event->getWrappedObject(), $conflictual->getWrappedObject()])]);
 }
예제 #5
0
 public function emit(Event $event)
 {
     $event->setEmitter($this);
     $this->events[] = $event;
 }