Beispiel #1
0
 public function handleOrderPlaced(OrderPlaced $event, State $state)
 {
     // keep the order id, for reference in `handleReservationAccepted()` and `handleReservationRejected()`
     $state->set('orderId', $event->orderId());
     // generate an id for the reservation
     $reservationId = $this->uuidGenerator->generate();
     $state->set('reservationId', $reservationId);
     // make the reservation
     $command = new MakeSeatReservation($reservationId, $event->numberOfSeats());
     $this->commandBus->dispatch($command);
     return $state;
 }
 /**
  * @test
  */
 public function it_returns_an_existing_state_instance_matching_the_returned_criteria()
 {
     $state = new State(1337);
     $state->set('appId', 1337);
     $this->repository->save($state, 'sagaId');
     $criteria = new Criteria(array('appId' => 1337));
     $resolvedState = $this->manager->findOneBy($criteria, 'sagaId');
     self::assertEquals($state, $resolvedState);
 }
 /**
  * @test
  */
 public function saving_a_state_object_with_the_same_id_only_keeps_the_last_one()
 {
     $s1 = new State(31415);
     $s1->set('appId', 42);
     $this->repository->save($s1, 'sagaId');
     $s2 = new State(31415);
     $s2->set('appId', 1337);
     $this->repository->save($s2, 'sagaId');
     $found = $this->repository->findOneBy(new Criteria(array('appId' => 1337)), 'sagaId');
     $this->assertEquals(31415, $found->getId());
 }
 public function handle($event, State $state = null)
 {
     $this->isCalled = true;
     if ($event instanceof TestEvent1) {
         $state->set('event', 'testevent1');
     } elseif ($event instanceof TestEvent2) {
         $state->set('event', 'testevent2');
     } elseif ($event instanceof TestEventDone) {
         $state->setDone();
     }
     return $state;
 }