vendor/bundles/FOS/UserBundle/Tests/CouchDocument/UserManagerTest.php
changeset 3 e54dfe4d0b2b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/vendor/bundles/FOS/UserBundle/Tests/CouchDocument/UserManagerTest.php	Fri Sep 30 11:24:53 2011 +0200
@@ -0,0 +1,83 @@
+<?php
+
+namespace FOS\UserBundle\Tests\CouchDocument;
+
+use FOS\UserBundle\CouchDocument\UserManager;
+use Doctrine\ODM\CouchDB\Mapping\ClassMetadata;
+
+class UserManagerTest extends \PHPUnit_Framework_TestCase
+{
+    private $userManager;
+    private $dm;
+    private $repository;
+
+    const USERTYPE = 'FOS\UserBundle\Tests\CouchDocument\DummyUser';
+
+    public function setUp()
+    {
+        if (!class_exists('Doctrine\ODM\CouchDB\Version')) {
+            $this->markTestSkipped('Doctrine CouchDB has to be installed for this test to run.');
+        }
+
+        $c = $this->getMock('FOS\UserBundle\Util\CanonicalizerInterface');
+        $ef = $this->getMock('Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface');
+
+        $class = new ClassMetadata(self::USERTYPE);
+        $class->mapField(array('fieldName' => 'username'));
+
+        $this->dm = $this->getMock('Doctrine\ODM\CouchDB\DocumentManager', array('getRepository', 'persist', 'remove', 'flush', 'getClassMetadata'), array(), '', false);
+        $this->repository = $this->getMock('Doctrine\ODM\CouchDB\DocumentRepository', array('findBy', 'findAll'), array(), '', false);
+        $this->dm->expects($this->any())
+                 ->method('getRepository')
+                 ->with($this->equalTo(self::USERTYPE))
+                 ->will($this->returnValue($this->repository));
+        $this->dm->expects($this->any())
+                 ->method('getClassMetadata')
+                 ->with($this->equalTo(self::USERTYPE))
+                 ->will($this->returnValue($class));
+        $this->userManager = new UserManager($ef, "sha1", $c, $c, $this->dm, self::USERTYPE);
+    }
+
+    public function testDeleteUser()
+    {
+        $user = new DummyUser();
+        $this->dm->expects($this->once())->method('remove')->with($this->equalTo($user));
+        $this->dm->expects($this->once())->method('flush');
+
+        $this->userManager->deleteUser($user);
+    }
+
+    public function testGetClass()
+    {
+        $this->assertEquals(self::USERTYPE, $this->userManager->getClass());
+    }
+
+    public function testFindUserBy()
+    {
+        $crit = array("foo" => "bar");
+        $this->repository->expects($this->once())->method('findBy')->with($this->equalTo($crit))->will($this->returnValue(array()));
+
+        $this->userManager->findUserBy($crit);
+    }
+
+    public function testFindUsers()
+    {
+        $this->repository->expects($this->once())->method('findAll')->will($this->returnValue(array()));
+
+        $this->userManager->findUsers();
+    }
+
+    public function testUpdateUser()
+    {
+        $user = new DummyUser();
+        $this->dm->expects($this->once())->method('persist')->with($this->equalTo($user));
+        $this->dm->expects($this->once())->method('flush');
+
+        $this->userManager->updateUser($user);
+    }
+}
+
+class DummyUser extends \FOS\UserBundle\Document\User
+{
+    
+}
\ No newline at end of file