diff --git a/tests/Functional/DoctrineCest.php b/tests/Functional/DoctrineCest.php index cc54e0a..406e7b0 100644 --- a/tests/Functional/DoctrineCest.php +++ b/tests/Functional/DoctrineCest.php @@ -8,9 +8,19 @@ use App\Repository\Model\UserRepositoryInterface; use App\Repository\UserRepository; use App\Tests\Support\FunctionalTester; +use Doctrine\ORM\EntityManagerInterface; final class DoctrineCest { + public function grabEntityManager(FunctionalTester $I): void + { + $em = $I->grabEntityManager(); + + $I->assertInstanceOf(EntityManagerInterface::class, $em); + $I->assertTrue($em->isOpen()); + $I->assertSame($em, $I->grabService('doctrine.orm.default_entity_manager')); + } + public function grabNumRecords(FunctionalTester $I) { $numRecords = $I->grabNumRecords(User::class); @@ -39,6 +49,22 @@ public function grabRepository(FunctionalTester $I) $I->assertInstanceOf(UserRepository::class, $repository); } + public function resetDoctrineManager(FunctionalTester $I): void + { + $em = $I->grabEntityManager(); + $user = $em->getRepository(User::class)->findOneBy(['email' => 'john_doe@gmail.com']); + $I->assertTrue($em->contains($user)); + + $I->resetDoctrineManager(); + $I->assertFalse($I->grabEntityManager()->contains($user)); + + $I->grabEntityManager()->close(); + $I->resetDoctrineManager(); + + $I->assertTrue($I->grabEntityManager()->isOpen()); + $I->seeNumRecords(1, User::class); + } + public function seeNumRecords(FunctionalTester $I) { $I->seeNumRecords(1, User::class); diff --git a/tests/Functional/ServicesCest.php b/tests/Functional/ServicesCest.php index c926ac2..0607c15 100644 --- a/tests/Functional/ServicesCest.php +++ b/tests/Functional/ServicesCest.php @@ -6,10 +6,23 @@ use App\Service\Greeting; use App\Tests\Support\FunctionalTester; +use Doctrine\ORM\EntityManagerInterface; +use Symfony\Component\DependencyInjection\ContainerInterface; use Symfony\Component\Security\Core\Security; final class ServicesCest { + public function grabContainer(FunctionalTester $I): void + { + $container = $I->grabContainer(); + + $I->assertInstanceOf(ContainerInterface::class, $container); + $I->assertSame('test', $container->getParameter('kernel.environment')); + + $I->assertTrue($container->has(EntityManagerInterface::class)); + $I->assertFalse($I->grabService('kernel')->getContainer()->has(EntityManagerInterface::class)); + } + public function grabService(FunctionalTester $I) { $security = $I->grabService('security.helper');