From 53ad1c9677354ff9131d07ba10de0556ef896f52 Mon Sep 17 00:00:00 2001 From: damienharper Date: Thu, 31 Mar 2022 18:14:36 +0200 Subject: [PATCH] Updated storage mapper test to cover cases using a closure and cases using an invokable class --- .../Provider/Doctrine/DoctrineProviderTest.php | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/tests/Provider/Doctrine/DoctrineProviderTest.php b/tests/Provider/Doctrine/DoctrineProviderTest.php index b0e46f4e..648f1f28 100644 --- a/tests/Provider/Doctrine/DoctrineProviderTest.php +++ b/tests/Provider/Doctrine/DoctrineProviderTest.php @@ -151,13 +151,20 @@ public function testSetStorageMapper(): void self::assertNull($provider->getConfiguration()->getStorageMapper(), 'Mapping closure is not set.'); $provider->setStorageMapper(static fn (string $entity, array $storageServices): StorageServiceInterface => 0 === mb_strpos($entity, 'Foo') ? $storageServices['EM1'] : $storageServices['EM2']); - self::assertNotNull($provider->getConfiguration()->getStorageMapper(), 'Mapping closure is set.'); self::assertSame($entityManager1, $provider->getStorageServiceForEntity('Foo1')->getEntityManager(), 'EM1 is used.'); self::assertSame($entityManager1, $provider->getStorageServiceForEntity('Foo2')->getEntityManager(), 'EM1 is used.'); self::assertSame($entityManager2, $provider->getStorageServiceForEntity('Bar1')->getEntityManager(), 'EM2 is used.'); self::assertSame($entityManager2, $provider->getStorageServiceForEntity('Bar2')->getEntityManager(), 'EM2 is used.'); + + $provider->setStorageMapper(new FakeStorageMapper()); + self::assertNotNull($provider->getConfiguration()->getStorageMapper(), 'StorageMapper is set.'); + + self::assertSame($entityManager1, $provider->getStorageServiceForEntity('Foo1')->getEntityManager(), 'EM1 is used.'); + self::assertSame($entityManager1, $provider->getStorageServiceForEntity('Foo2')->getEntityManager(), 'EM1 is used.'); + self::assertSame($entityManager2, $provider->getStorageServiceForEntity('Bar1')->getEntityManager(), 'EM2 is used.'); + self::assertSame($entityManager2, $provider->getStorageServiceForEntity('Bar2')->getEntityManager(), 'EM2 is used.'); } public function testCheckStorageMapperThrowsExceptionWhenNoMapperDefined(): void @@ -516,6 +523,14 @@ public function testSetRoleChecker(): void } } +class FakeStorageMapper +{ + public function __invoke(string $entity, array $storageServices): StorageServiceInterface + { + return 0 === mb_strpos($entity, 'Foo') ? $storageServices['EM1'] : $storageServices['EM2']; + } +} + class FakeUserProvider implements UserProviderInterface { public function __invoke(): ?UserInterface