Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit acc0460

Browse filesBrowse files
committed
[DoctrineBridge] Enhance exception message in EntityUserProvider
Typo/CS fixes Avoid checking Repository class as it is not always the default one Compromise Change wording Tests this method
1 parent d30c318 commit acc0460
Copy full SHA for acc0460

File tree

Expand file treeCollapse file tree

2 files changed

+60
-1
lines changed
Filter options
Expand file treeCollapse file tree

2 files changed

+60
-1
lines changed

‎src/Symfony/Bridge/Doctrine/Security/User/EntityUserProvider.php

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Doctrine/Security/User/EntityUserProvider.php
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ public function loadUserByUsername($username)
5151
$user = $repository->findOneBy(array($this->property => $username));
5252
} else {
5353
if (!$repository instanceof UserProviderInterface) {
54-
throw new \InvalidArgumentException(sprintf('The Doctrine repository "%s" must implement UserProviderInterface.', get_class($repository)));
54+
throw new \InvalidArgumentException(sprintf('You must either make the "%s" entity Doctrine Repository ("%s") implement "Symfony\Component\Security\Core\User\UserProviderInterface" or set the "property" option in the corresponding entity provider configuration.', $this->classOrAlias, get_class($repository)));
5555
}
5656

5757
$user = $repository->loadUserByUsername($username);

‎src/Symfony/Bridge/Doctrine/Tests/Security/User/EntityUserProviderTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Bridge/Doctrine/Tests/Security/User/EntityUserProviderTest.php
+59Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,65 @@ public function testRefreshUserGetsUserByPrimaryKey()
3838
$this->assertSame($user1, $provider->refreshUser($user1));
3939
}
4040

41+
public function testLoadUserByUsername()
42+
{
43+
$em = DoctrineTestHelper::createTestEntityManager();
44+
$this->createSchema($em);
45+
46+
$user = new User(1, 1, 'user1');
47+
48+
$em->persist($user);
49+
$em->flush();
50+
51+
$provider = new EntityUserProvider($this->getManager($em), 'Symfony\Bridge\Doctrine\Tests\Fixtures\User', 'name');
52+
53+
$this->assertSame($user, $provider->loadUserByUsername('user1'));
54+
}
55+
56+
public function testLoadUserByUsernameWithUserProviderRepositoryAndWithoutProperty()
57+
{
58+
$user = new User(1, 1, 'user1');
59+
60+
$repository = $this->getMockBuilder('Symfony\Component\Security\Core\User\UserProviderInterface')
61+
->disableOriginalConstructor()
62+
->getMock();
63+
$repository
64+
->expects($this->once())
65+
->method('loadUserByUsername')
66+
->with('user1')
67+
->willReturn($user);
68+
69+
$em = $this->getMockBuilder('Doctrine\ORM\EntityManager')
70+
->disableOriginalConstructor()
71+
->getMock();
72+
$em
73+
->expects($this->once())
74+
->method('getRepository')
75+
->with('Symfony\Bridge\Doctrine\Tests\Fixtures\User')
76+
->willReturn($repository);
77+
78+
$provider = new EntityUserProvider($this->getManager($em), 'Symfony\Bridge\Doctrine\Tests\Fixtures\User');
79+
$this->assertSame($user, $provider->loadUserByUsername('user1'));
80+
}
81+
82+
/**
83+
* @expectedException \InvalidArgumentException
84+
* @expectedExceptionMessage You must either make the "Symfony\Bridge\Doctrine\Tests\Fixtures\User" entity Doctrine Repository ("Doctrine\ORM\EntityRepository") implement "Symfony\Component\Security\Core\User\UserProviderInterface" or set the "property" option in the corresponding entity provider configuration.
85+
*/
86+
public function testLoadUserByUsernameWithNonUserProviderRepositoryAndWithoutProperty()
87+
{
88+
$em = DoctrineTestHelper::createTestEntityManager();
89+
$this->createSchema($em);
90+
91+
$user = new User(1, 1, 'user1');
92+
93+
$em->persist($user);
94+
$em->flush();
95+
96+
$provider = new EntityUserProvider($this->getManager($em), 'Symfony\Bridge\Doctrine\Tests\Fixtures\User');
97+
$provider->loadUserByUsername('user1');
98+
}
99+
41100
public function testRefreshUserRequiresId()
42101
{
43102
$em = DoctrineTestHelper::createTestEntityManager();

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.