diff -r 806e57d67020 -r e54dfe4d0b2b vendor/bundles/FOS/UserBundle/Tests/Document/DocumentUserManagerTest.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/bundles/FOS/UserBundle/Tests/Document/DocumentUserManagerTest.php Fri Sep 30 11:24:53 2011 +0200 @@ -0,0 +1,152 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace FOS\UserBundle\Document; + +class DocumentUserManagerTest extends \PHPUnit_Framework_TestCase +{ + protected $userManager; + + public function testFindUserByUsername() + { + $this->userManager->expects($this->once()) + ->method('findUserBy') + ->with($this->equalTo(array('usernameCanonical' => 'jack'))); + $this->userManager->expects($this->once()) + ->method('canonicalizeUsername') + ->with($this->equalTo('jack')) + ->will($this->returnValue('jack')); + + $this->userManager->findUserByUsername('jack'); + } + + public function testFindUserByUsernameLowercasesTheUsername() + { + $this->userManager->expects($this->once()) + ->method('findUserBy') + ->with($this->equalTo(array('usernameCanonical' => 'jack'))); + $this->userManager->expects($this->once()) + ->method('canonicalizeUsername') + ->with($this->equalTo('JaCk')) + ->will($this->returnValue('jack')); + + $this->userManager->findUserByUsername('JaCk'); + } + + public function testFindUserByEmail() + { + $this->userManager->expects($this->once()) + ->method('findUserBy') + ->with($this->equalTo(array('emailCanonical' => 'jack@email.org'))); + $this->userManager->expects($this->once()) + ->method('canonicalizeEmail') + ->with($this->equalTo('jack@email.org')) + ->will($this->returnValue('jack@email.org')); + + $this->userManager->findUserByEmail('jack@email.org'); + } + + public function testFindUserByEmailLowercasesTheEmail() + { + $this->userManager->expects($this->once()) + ->method('findUserBy') + ->with($this->equalTo(array('emailCanonical' => 'jack@email.org'))); + $this->userManager->expects($this->once()) + ->method('canonicalizeEmail') + ->with($this->equalTo('JaCk@EmAiL.oRg')) + ->will($this->returnValue('jack@email.org')); + + $this->userManager->findUserByEmail('JaCk@EmAiL.oRg'); + } + + public function testFindUserByUsernameOrEmailWithUsername() + { + $this->userManager->expects($this->once()) + ->method('findUserBy') + ->with($this->equalTo(array('usernameCanonical' => 'jack'))); + $this->userManager->expects($this->once()) + ->method('canonicalizeUsername') + ->with($this->equalTo('JaCk')) + ->will($this->returnValue('jack')); + + $this->userManager->findUserByUsernameOrEmail('JaCk'); + } + + public function testFindUserByUsernameOrEmailWithEmail() + { + $this->userManager->expects($this->once()) + ->method('findUserBy') + ->with($this->equalTo(array('emailCanonical' => 'jack@email.org'))); + $this->userManager->expects($this->once()) + ->method('canonicalizeEmail') + ->with($this->equalTo('JaCk@EmAiL.oRg')) + ->will($this->returnValue('jack@email.org')); + + $this->userManager->findUserByUsernameOrEmail('JaCk@EmAiL.oRg'); + } + + public function testLoadUserByUsernameWithExistingUser() + { + $userMock = $this->getMock('FOS\UserBundle\Document\User', array(), array('sha1')); + + $manager = $this->getMockBuilder('FOS\UserBundle\Document\UserManager') + ->disableOriginalConstructor() + ->setMethods(array('findUserByUsername')) + ->getMock(); + + $manager->expects($this->once()) + ->method('findUserByUsername') + ->with($this->equalTo('jack')) + ->will($this->returnValue($userMock)); + + $manager->loadUserByUsername('jack'); + } + + /** + * @expectedException Symfony\Component\Security\Core\Exception\UsernameNotFoundException + */ + public function testLoadUserByUsernameWithMissingUser() + { + $manager = $this->getMockBuilder('FOS\UserBundle\Document\UserManager') + ->disableOriginalConstructor() + ->setMethods(array('findUserByUsername')) + ->getMock(); + + $manager->expects($this->once()) + ->method('findUserByUsername') + ->with($this->equalTo('jack')) + ->will($this->returnValue(null)); + + $manager->loadUserByUsername('jack'); + } + + protected function setUp() + { + if (!class_exists('\Doctrine\ODM\MongoDB\DocumentManager')) { + $this->markTestSkipped('No ODM installed'); + } + + $this->userManager = $this->getManagerMock(); + } + + protected function tearDown() + { + unset($this->userManager); + } + + protected function getManagerMock() + { + return $this->getMockBuilder('FOS\UserBundle\Document\UserManager') + ->disableOriginalConstructor() + ->setMethods(array('findUserBy', 'canonicalizeUsername', 'canonicalizeEmail')) + ->getMock(); + } +}