public function testNotCurrentUnitOfWorkCommitted()
 {
     $outerUoW = new DefaultUnitOfWork();
     $outerUoW->start();
     $other = new DefaultUnitOfWork();
     $other->start();
     try {
         $outerUoW->commit();
     } catch (\Exception $ex) {
         $other->rollback();
         $this->assertGreaterThanOrEqual(0, strpos($ex->getMessage(), "not the active"));
     }
 }
Пример #2
0
 /**
  *
  * @param TransactionManagerInterface $transactionManager
  * @return UnitOfWorkInterface
  */
 public static function startAndGet(TransactionManagerInterface $transactionManager = null)
 {
     $uow = new DefaultUnitOfWork($transactionManager);
     $uow->start();
     return $uow;
 }
 public function testSagaEventsDoNotOvertakeRegularEvents()
 {
     $this->testSubject->start();
     $self = $this;
     \Phake::when($this->listener1)->handle($this->event1)->thenGetReturnByLambda(function ($event) use($self) {
         $uow = new DefaultUnitOfWork();
         $uow->start();
         $uow->registerAggregate($self->mockAggregateRoot, $self->mockEventBus, $self->callback2);
         $uow->commit();
         return null;
     });
     $this->testSubject->registerAggregate($this->mockAggregateRoot, $this->mockEventBus, $this->callback1);
     $this->testSubject->commit();
     \Phake::inOrder(\Phake::verify($this->listener1, \Phake::times(1))->handle($this->event1), \Phake::verify($this->listener2, \Phake::times(1))->handle($this->event1), \Phake::verify($this->listener1, \Phake::times(1))->handle($this->event2), \Phake::verify($this->listener2, \Phake::times(1))->handle($this->event2));
 }