Skip to content

Commit

Permalink
Issue #11
Browse files Browse the repository at this point in the history
  • Loading branch information
romainkuzniak committed Nov 4, 2014
1 parent 09c4453 commit 9834f1b
Show file tree
Hide file tree
Showing 5 changed files with 49 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,21 @@

namespace OpenClassrooms\UseCase\Application\Services\Proxy\Strategies\Impl\Transaction;

use
OpenClassrooms\UseCase\Application\Services\Proxy\Strategies\Impl\DTO\ProxyStrategyResponseDTO;
use
OpenClassrooms\UseCase\Application\Services\Proxy\Strategies\Requestors\OnExceptionProxyStrategy;
use
OpenClassrooms\UseCase\Application\Services\Proxy\Strategies\Requestors\PostExecuteProxyStrategy;
use
OpenClassrooms\UseCase\Application\Services\Proxy\Strategies\Requestors\PreExecuteProxyStrategy;
use OpenClassrooms\UseCase\Application\Services\Proxy\Strategies\Impl\DTO\ProxyStrategyResponseDTO;
use OpenClassrooms\UseCase\Application\Services\Proxy\Strategies\Requestors\OnExceptionProxyStrategy;
use OpenClassrooms\UseCase\Application\Services\Proxy\Strategies\Requestors\PostExecuteProxyStrategy;
use OpenClassrooms\UseCase\Application\Services\Proxy\Strategies\Requestors\PreExecuteProxyStrategy;
use OpenClassrooms\UseCase\Application\Services\Proxy\Strategies\Requestors\ProxyStrategy;
use
OpenClassrooms\UseCase\Application\Services\Proxy\Strategies\Requestors\ProxyStrategyRequest;
use
OpenClassrooms\UseCase\Application\Services\Proxy\Strategies\Responders\ProxyStrategyResponse;
use OpenClassrooms\UseCase\Application\Services\Proxy\Strategies\Requestors\ProxyStrategyRequest;
use OpenClassrooms\UseCase\Application\Services\Proxy\Strategies\Responders\ProxyStrategyResponse;
use OpenClassrooms\UseCase\Application\Services\Transaction\Transaction;

/**
* @author Romain Kuzniak <romain.kuzniak@turn-it-up.org>
*/
class TransactionProxyStrategy implements PreExecuteProxyStrategy, PostExecuteProxyStrategy, OnExceptionProxyStrategy
{

/**
* @var Transaction
*/
Expand Down Expand Up @@ -58,7 +53,9 @@ public function postExecute(ProxyStrategyRequest $proxyStrategyRequest)
*/
public function onException(ProxyStrategyRequest $proxyStrategyRequest)
{
return $this->transaction->rollBack();
if ($this->transaction->isTransactionActive()) {
return $this->transaction->rollBack();
}
}

public function setTransaction(Transaction $transaction)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,27 +4,14 @@

use OpenClassrooms\Tests\UseCase\BusinessRules\Exceptions\UseCaseException;
use OpenClassrooms\Tests\UseCase\BusinessRules\Requestors\UseCaseRequestStub;
use
OpenClassrooms\Tests\UseCase\BusinessRules\UseCases\Transaction\ExceptionTransactionUseCaseStub;
use
OpenClassrooms\Tests\UseCase\BusinessRules\UseCases\Transaction\OnlyTransactionUseCaseStub;
use OpenClassrooms\Tests\UseCase\BusinessRules\UseCases\Transaction\ExceptionTransactionUseCaseStub;
use OpenClassrooms\Tests\UseCase\BusinessRules\UseCases\Transaction\OnlyTransactionUseCaseStub;

/**
* @author Romain Kuzniak <romain.kuzniak@turn-it-up.org>
*/
class TransactionUseCaseProxyTest extends AbstractUseCaseProxyTest
{
/**
* @test
*/
public function Transaction_Commit()
{
$this->useCaseProxy->setUseCase(new OnlyTransactionUseCaseStub());
$this->useCaseProxy->execute(new UseCaseRequestStub());
$this->assertTrue($this->transaction->committed);
$this->assertFalse($this->transaction->rollBacked);
}

/**
* @test
*/
Expand All @@ -39,4 +26,15 @@ public function Exception_Transaction_RollBack()
$this->assertTrue($this->transaction->rollBacked);
}
}

/**
* @test
*/
public function Transaction_Commit()
{
$this->useCaseProxy->setUseCase(new OnlyTransactionUseCaseStub());
$this->useCaseProxy->execute(new UseCaseRequestStub());
$this->assertTrue($this->transaction->committed);
$this->assertFalse($this->transaction->rollBacked);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ private function assertTransactionWasCalledOnUnAuthorizedException()
{
$this->assertFalse($this->transaction->transactionBegin);
$this->assertFalse($this->transaction->committed);
$this->assertTrue($this->transaction->rollBacked);
$this->assertFalse($this->transaction->rollBacked);
}

private function assertEventWasNotCalled()
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<?php

namespace OpenClassrooms\Tests\UseCase\BusinessRules\UseCases\Transaction;

use OpenClassrooms\Tests\UseCase\BusinessRules\UseCases\UseCaseStub;
use OpenClassrooms\UseCase\Application\Annotations\Security;
use OpenClassrooms\UseCase\Application\Annotations\Transaction;
use OpenClassrooms\UseCase\BusinessRules\Requestors\UseCaseRequest;

/**
* @author Romain Kuzniak <romain.kuzniak@turn-it-up.org>
*/
class ExceptionSecurityTransactionUseCaseStub extends UseCaseStub
{
/**
* @Security (roles = "ROLE_NOT_AUTHORIZED")
* @Transaction
*/
public function execute(UseCaseRequest $useCaseRequest)
{
return parent::execute($useCaseRequest);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
class ExceptionTransactionUseCaseStub extends ExceptionUseCaseStub
{
/**
* @transaction
* @Transaction
*/
public function execute(UseCaseRequest $useCaseRequest)
{
Expand Down

0 comments on commit 9834f1b

Please sign in to comment.