/** * Consumes a message. * * @param string $message * * @return string|null|void * * @throws \Exception */ public function consume($message) { try { $this->transactionManager->beginTransaction(); } catch (BeginException $e) { throw new ConsumerException($e->getMessage(), $e->getCode(), $e); } try { $this->consumer->consume($message); $this->transactionManager->commit(); } catch (\Exception $e) { $this->transactionManager->rollback(); throw $e; } }
function it_should_rollback_on_the_sub_items(Transactional $item) { $item->beginTransaction()->shouldBeCalled(); $item->rollback()->shouldBeCalled(); $this->addTransactionalItem($item); $this->beginTransaction(); $this->rollback(); }
function it_should_rollback_right_away(Transactional $item) { $item->beginTransaction()->shouldBeCalledTimes(1); $item->rollback()->shouldBeCalledTimes(1); $this->addTransactionalItem($item); $this->beginTransaction(); $this->beginTransaction(); $this->rollback(); $this->rollback(); }