--- /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 @@
+<?php
+
+/*
+ * This file is part of the FOSUserBundle package.
+ *
+ * (c) FriendsOfSymfony <http://friendsofsymfony.github.com/>
+ *
+ * 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();
+ }
+}