[Pkg-owncloud-commits] [owncloud] 66/104: add tests for user counting

David Prévot taffit at moszumanska.debian.org
Sat Jan 18 13:33:40 UTC 2014


This is an automated email from the git hooks/post-receive script.

taffit pushed a commit to branch master
in repository owncloud.

commit f1ea0bcafc0a4dac17d1bb345f8e101e1a499a12
Author: Arthur Schiwon <blizzz at owncloud.com>
Date:   Wed Jan 8 13:26:48 2014 +0100

    add tests for user counting
---
 lib/private/user/dummy.php |  9 ++++++
 tests/lib/user/manager.php | 72 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 81 insertions(+)

diff --git a/lib/private/user/dummy.php b/lib/private/user/dummy.php
index 52be7ed..fc15a63 100644
--- a/lib/private/user/dummy.php
+++ b/lib/private/user/dummy.php
@@ -123,4 +123,13 @@ class OC_User_Dummy extends OC_User_Backend {
 	public function hasUserListings() {
 		return true;
 	}
+
+	/**
+	 * counts the users in the database
+	 *
+	 * @return int | bool
+	 */
+	public function countUsers() {
+		return 0;
+	}
 }
diff --git a/tests/lib/user/manager.php b/tests/lib/user/manager.php
index 00901dd..ad1ac9e 100644
--- a/tests/lib/user/manager.php
+++ b/tests/lib/user/manager.php
@@ -346,4 +346,76 @@ class Manager extends \PHPUnit_Framework_TestCase {
 
 		$manager->createUser('foo', 'bar');
 	}
+
+	public function testCountUsersNoBackend() {
+		$manager = new \OC\User\Manager();
+
+		$result = $manager->countUsers();
+		$this->assertTrue(is_array($result));
+		$this->assertTrue(empty($result));
+	}
+
+	public function testCountUsersOneBackend() {
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend = $this->getMock('\OC_User_Dummy');
+		$backend->expects($this->once())
+			->method('countUsers')
+			->will($this->returnValue(7));
+
+		$backend->expects($this->once())
+			->method('implementsActions')
+			->with(\OC_USER_BACKEND_COUNT_USERS)
+			->will($this->returnValue(true));
+
+		$manager = new \OC\User\Manager();
+		$manager->registerBackend($backend);
+
+		$result = $manager->countUsers();
+		$keys = array_keys($result);
+		$this->assertTrue(strpos($keys[0], 'Mock_OC_User_Dummy') !== false);
+
+		$users = array_shift($result);
+		$this->assertEquals(7, $users);
+	}
+
+	public function testCountUsersTwoBackends() {
+		/**
+		 * @var \OC_User_Dummy | \PHPUnit_Framework_MockObject_MockObject $backend
+		 */
+		$backend1 = $this->getMock('\OC_User_Dummy');
+		$backend1->expects($this->once())
+			->method('countUsers')
+			->will($this->returnValue(7));
+
+		$backend1->expects($this->once())
+			->method('implementsActions')
+			->with(\OC_USER_BACKEND_COUNT_USERS)
+			->will($this->returnValue(true));
+
+		$backend2 = $this->getMock('\OC_User_Dummy');
+		$backend2->expects($this->once())
+			->method('countUsers')
+			->will($this->returnValue(16));
+
+		$backend2->expects($this->once())
+			->method('implementsActions')
+			->with(\OC_USER_BACKEND_COUNT_USERS)
+			->will($this->returnValue(true));
+
+		$manager = new \OC\User\Manager();
+		$manager->registerBackend($backend1);
+		$manager->registerBackend($backend2);
+
+		$result = $manager->countUsers();
+		//because the backends have the same class name, only one value expected
+		$this->assertEquals(1, count($result));
+		$keys = array_keys($result);
+		$this->assertTrue(strpos($keys[0], 'Mock_OC_User_Dummy') !== false);
+
+		$users = array_shift($result);
+		//users from backends shall be summed up
+		$this->assertEquals(7+16, $users);
+	}
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud.git



More information about the Pkg-owncloud-commits mailing list