|
16 | 16 | use Doctrine\Persistence\ManagerRegistry;
|
17 | 17 | use Doctrine\Persistence\ObjectManager;
|
18 | 18 | use Doctrine\Persistence\ObjectRepository;
|
| 19 | +use Doctrine\Persistence\Proxy; |
19 | 20 | use PHPUnit\Framework\TestCase;
|
20 | 21 | use Symfony\Bridge\Doctrine\Security\User\EntityUserProvider;
|
21 | 22 | use Symfony\Bridge\Doctrine\Security\User\UserLoaderInterface;
|
@@ -197,6 +198,27 @@ public function testPasswordUpgrades()
|
197 | 198 | $provider->upgradePassword($user, 'foobar');
|
198 | 199 | }
|
199 | 200 |
|
| 201 | + public function testRefreshedUserProxyIsLoaded() |
| 202 | + { |
| 203 | + $em = DoctrineTestHelper::createTestEntityManager(); |
| 204 | + $this->createSchema($em); |
| 205 | + |
| 206 | + $user = new User(1, 1, 'user1'); |
| 207 | + |
| 208 | + $em->persist($user); |
| 209 | + $em->flush(); |
| 210 | + $em->clear(); |
| 211 | + |
| 212 | + // store a proxy in the identity map |
| 213 | + $em->getReference(User::class, ['id1' => 1, 'id2' => 1]); |
| 214 | + |
| 215 | + $provider = new EntityUserProvider($this->getManager($em), User::class); |
| 216 | + $refreshedUser = $provider->refreshUser($user); |
| 217 | + |
| 218 | + $this->assertInstanceOf(Proxy::class, $refreshedUser); |
| 219 | + $this->assertTrue($refreshedUser->__isInitialized()); |
| 220 | + } |
| 221 | + |
200 | 222 | private function getManager($em, $name = null)
|
201 | 223 | {
|
202 | 224 | $manager = $this->createMock(ManagerRegistry::class);
|
|
0 commit comments