From d3db1a1068dbe5755ac479d419620b871dc3b219 Mon Sep 17 00:00:00 2001 From: Ross Tuck Date: Wed, 25 Apr 2018 08:48:56 +0200 Subject: [PATCH] Add test to check rollback middleware is properly added --- composer.json | 2 +- .../Compiler/DoctrineMiddlewarePassTest.php | 27 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 5020f0a..23229fd 100644 --- a/composer.json +++ b/composer.json @@ -66,7 +66,7 @@ "symfony/console": "^2.8|^3.3|^4.0", "symfony/security": "^2.8|^3.3|^4.0", "symfony/validator": "^2.8|^3.3|^4.0", - "league/tactician-doctrine": "^1.1", + "league/tactician-doctrine": "^1.1.1", "symfony/framework-bundle": "^2.8.15|^3.3|^4.0", "symfony/security-bundle": "^2.8|^3.3|^4.0", "matthiasnoback/symfony-config-test": "^3.0", diff --git a/tests/DependencyInjection/Compiler/DoctrineMiddlewarePassTest.php b/tests/DependencyInjection/Compiler/DoctrineMiddlewarePassTest.php index 1b2e118..3ee4765 100644 --- a/tests/DependencyInjection/Compiler/DoctrineMiddlewarePassTest.php +++ b/tests/DependencyInjection/Compiler/DoctrineMiddlewarePassTest.php @@ -3,6 +3,7 @@ namespace League\Tactician\Bundle\Tests\DependencyInjection\Compiler; use League\Tactician\Bundle\DependencyInjection\Compiler\DoctrineMiddlewarePass; +use League\Tactician\Doctrine\ORM\RollbackOnlyTransactionMiddleware; use League\Tactician\Doctrine\ORM\TransactionMiddleware; use Matthias\SymfonyDependencyInjectionTest\PhpUnit\AbstractCompilerPassTestCase; use Symfony\Component\DependencyInjection\ContainerBuilder; @@ -32,6 +33,8 @@ public function test_registering_middleware_for_multiple_entity_managers() $this->compile(); + $this->assertContainerBuilderHasService('tactician.middleware.doctrine.default', TransactionMiddleware::class); + $this->assertContainerBuilderHasService('tactician.middleware.doctrine.second', TransactionMiddleware::class); $this->assertContainerBuilderHasServiceDefinitionWithArgument('tactician.middleware.doctrine.default', 0, new Reference('doctrine.orm.default_entity_manager')); $this->assertContainerBuilderHasServiceDefinitionWithArgument('tactician.middleware.doctrine.second', 0, new Reference('doctrine.orm.second_entity_manager')); $this->assertContainerBuilderHasAlias('tactician.middleware.doctrine', 'tactician.middleware.doctrine.default'); @@ -61,4 +64,28 @@ public function test_do_not_process_when_tactician_doctrine_is_not_installed() $this->assertContainerBuilderNotHasService('tactician.middleware.doctrine'); } + + public function test_rollback_only_middleware_is_added() + { + if (!class_exists(RollbackOnlyTransactionMiddleware::class)) { + $this->markTestSkipped('"league/tactician-doctrine" is not installed'); + } + + $this->setParameter( + 'doctrine.entity_managers', + [ + 'default' => 'doctrine.orm.default_entity_manager', + 'second' => 'doctrine.orm.second_entity_manager', + ] + ); + $this->setParameter('doctrine.default_entity_manager', 'default'); + + $this->compile(); + + $this->assertContainerBuilderHasService('tactician.middleware.doctrine_rollback_only.default', RollbackOnlyTransactionMiddleware::class); + $this->assertContainerBuilderHasService('tactician.middleware.doctrine_rollback_only.second', RollbackOnlyTransactionMiddleware::class); + $this->assertContainerBuilderHasServiceDefinitionWithArgument('tactician.middleware.doctrine_rollback_only.default', 0, new Reference('doctrine.orm.default_entity_manager')); + $this->assertContainerBuilderHasServiceDefinitionWithArgument('tactician.middleware.doctrine_rollback_only.second', 0, new Reference('doctrine.orm.second_entity_manager')); + $this->assertContainerBuilderHasAlias('tactician.middleware.doctrine_rollback_only', 'tactician.middleware.doctrine_rollback_only.default'); + } }