Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Schiwon <blizzz@arthur-schiwon.de>2016-10-16 21:28:36 +0300
committerArthur Schiwon <blizzz@arthur-schiwon.de>2016-10-19 01:34:00 +0300
commit5d98ab83e9c0b69acae7dc66c5ad9a4fe4af546c (patch)
tree4eacfe131926fcc3f73e453725d789c0065b847d /tests/lib/Comments/ManagerTest.php
parentfea3e20a805de12546312c68557ddbd8498b9414 (diff)
resolve displayname via manager and registerable resolvers
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Diffstat (limited to 'tests/lib/Comments/ManagerTest.php')
-rw-r--r--tests/lib/Comments/ManagerTest.php78
1 files changed, 78 insertions, 0 deletions
diff --git a/tests/lib/Comments/ManagerTest.php b/tests/lib/Comments/ManagerTest.php
index 71c918af6c7..be466ec2843 100644
--- a/tests/lib/Comments/ManagerTest.php
+++ b/tests/lib/Comments/ManagerTest.php
@@ -664,4 +664,82 @@ class ManagerTest extends TestCase {
$manager->delete($comment->getId());
}
+ public function testResolveDisplayName() {
+ $manager = $this->getManager();
+
+ $planetClosure = function($name) {
+ return ucfirst($name);
+ };
+
+ $galaxyClosure = function($name) {
+ return strtoupper($name);
+ };
+
+ $manager->registerDisplayNameResolver('planet', $planetClosure);
+ $manager->registerDisplayNameResolver('galaxy', $galaxyClosure);
+
+ $this->assertSame('Neptune', $manager->resolveDisplayName('planet', 'neptune'));
+ $this->assertSame('SOMBRERO', $manager->resolveDisplayName('galaxy', 'sombrero'));
+ }
+
+ /**
+ * @expectedException \OutOfBoundsException
+ */
+ public function testRegisterResolverDuplicate() {
+ $manager = $this->getManager();
+
+ $planetClosure = function($name) {
+ return ucfirst($name);
+ };
+ $manager->registerDisplayNameResolver('planet', $planetClosure);
+ $manager->registerDisplayNameResolver('planet', $planetClosure);
+ }
+
+ /**
+ * @expectedException \InvalidArgumentException
+ */
+ public function testRegisterResolverInvalidType() {
+ $manager = $this->getManager();
+
+ $planetClosure = function($name) {
+ return ucfirst($name);
+ };
+ $manager->registerDisplayNameResolver(1337, $planetClosure);
+ }
+
+ /**
+ * @expectedException \OutOfBoundsException
+ */
+ public function testResolveDisplayNameUnregisteredType() {
+ $manager = $this->getManager();
+
+ $planetClosure = function($name) {
+ return ucfirst($name);
+ };
+
+ $manager->registerDisplayNameResolver('planet', $planetClosure);
+ $manager->resolveDisplayName('galaxy', 'sombrero');
+ }
+
+ public function testResolveDisplayNameDirtyResolver() {
+ $manager = $this->getManager();
+
+ $planetClosure = function() { return null; };
+
+ $manager->registerDisplayNameResolver('planet', $planetClosure);
+ $this->assertTrue(is_string($manager->resolveDisplayName('planet', 'neptune')));
+ }
+
+ /**
+ * @expectedException \InvalidArgumentException
+ */
+ public function testResolveDisplayNameInvalidType() {
+ $manager = $this->getManager();
+
+ $planetClosure = function() { return null; };
+
+ $manager->registerDisplayNameResolver('planet', $planetClosure);
+ $this->assertTrue(is_string($manager->resolveDisplayName(1337, 'neptune')));
+ }
+
}