From 20129e3a6cb4128c7f2f6f9633a92c4ab0106cdc Mon Sep 17 00:00:00 2001 From: Gunnar Wrobel Date: Mon, 17 Jan 2011 15:03:29 +0100 Subject: [PATCH] Allways require the full query class name. --- .../Kolab_Storage/lib/Horde/Kolab/Storage/Base.php | 4 +- .../lib/Horde/Kolab/Storage/Decorator/Cache.php | 4 +- .../lib/Horde/Kolab/Storage/Factory.php | 4 - .../test/Horde/Kolab/Storage/TestCase.php | 48 +++++++ .../test/Horde/Kolab/Storage/Unit/FactoryTest.php | 15 +-- .../Storage/Unit/List/Decorator/CacheTest.php | 4 +- .../Kolab/Storage/Unit/List/Decorator/LogTest.php | 4 +- .../Kolab/Storage/Unit/List/Query/BaseTest.php | 139 ++++++++------------- 8 files changed, 114 insertions(+), 108 deletions(-) diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Base.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Base.php index 99c23ec26..3524f8f15 100644 --- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Base.php +++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Base.php @@ -70,7 +70,9 @@ implements Horde_Kolab_Storage $this->_factory ); $list->registerQuery( - 'Base', $this->_factory->createListQuery('Base', $list) + 'Base', $this->_factory->createListQuery( + 'Horde_Kolab_Storage_List_Query_Base', $list + ) ); return $list; } diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Decorator/Cache.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Decorator/Cache.php index bb1a0d84d..d6823c087 100644 --- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Decorator/Cache.php +++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Decorator/Cache.php @@ -84,7 +84,9 @@ implements Horde_Kolab_Storage $list->registerQuery( 'Base', $this->_factory->createListQuery( - 'Cache', $list, array('cache' => $list_cache) + 'Horde_Kolab_Storage_List_Query_Cache', + $list, + array('cache' => $list_cache) ) ); return $list; diff --git a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Factory.php b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Factory.php index 9b2ecf73e..1a7c245cb 100644 --- a/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Factory.php +++ b/framework/Kolab_Storage/lib/Horde/Kolab/Storage/Factory.php @@ -179,10 +179,6 @@ class Horde_Kolab_Storage_Factory array('factory' => $this), $params ); $query = new $name($list, $constructor_params); - } else if (strpos($name, 'Horde_Kolab_Storage_List_Query_') === false) { - $query = $this->createListQuery( - 'Horde_Kolab_Storage_List_Query_' . $name, $list, $params - ); } else { throw new Horde_Kolab_Storage_Exception(sprintf('No such query "%s"!', $name)); } diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/TestCase.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/TestCase.php index 47d2cde3b..8596c0f2c 100644 --- a/framework/Kolab_Storage/test/Horde/Kolab/Storage/TestCase.php +++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/TestCase.php @@ -55,6 +55,14 @@ extends PHPUnit_Framework_TestCase ); } + protected function getNullQuery($factory = null) + { + $factory = $this->completeFactory($factory); + return $factory->createListQuery( + 'Horde_Kolab_Storage_List_Query_Base', $this->getNullList($factory) + ); + } + protected function getEmptyMock() { return new Horde_Kolab_Storage_Driver_Mock( @@ -149,6 +157,14 @@ extends PHPUnit_Framework_TestCase ); } + protected function getAnnotatedQuery($factory = null) + { + $factory = $this->completeFactory($factory); + return $factory->createListQuery( + 'Horde_Kolab_Storage_List_Query_Base', $this->getAnnotatedList($factory) + ); + } + protected function getGermanAnnotatedAccount() { return array( @@ -267,6 +283,14 @@ extends PHPUnit_Framework_TestCase ); } + protected function getNamespaceQuery($factory = null) + { + $factory = $this->completeFactory($factory); + return $factory->createListQuery( + 'Horde_Kolab_Storage_List_Query_Base', $this->getNamespaceList($factory) + ); + } + protected function getForeignDefaultAccount() { return array( @@ -305,6 +329,14 @@ extends PHPUnit_Framework_TestCase ); } + protected function getForeignDefaultQuery($factory = null) + { + $factory = $this->completeFactory($factory); + return $factory->createListQuery( + 'Horde_Kolab_Storage_List_Query_Base', $this->getForeignDefaultList($factory) + ); + } + protected function getEventAccount() { return array( @@ -363,6 +395,14 @@ extends PHPUnit_Framework_TestCase ); } + protected function getEventQuery($factory = null) + { + $factory = $this->completeFactory($factory); + return $factory->createListQuery( + 'Horde_Kolab_Storage_List_Query_Base', $this->getEventList($factory) + ); + } + protected function getDoubleEventAccount() { return array( @@ -411,6 +451,14 @@ extends PHPUnit_Framework_TestCase ); } + protected function getDoubleEventQuery($factory = null) + { + $factory = $this->completeFactory($factory); + return $factory->createListQuery( + 'Horde_Kolab_Storage_List_Query_Base', $this->getDoubleEventList($factory) + ); + } + protected function getCachedQueryForList($bare_list, $factory) { $list_cache = $this->getMockListCache(); diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/FactoryTest.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/FactoryTest.php index 01e0eba4e..0a8b6eeda 100644 --- a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/FactoryTest.php +++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/FactoryTest.php @@ -185,20 +185,7 @@ extends Horde_Kolab_Storage_TestCase $factory = new Horde_Kolab_Storage_Factory(); $this->assertInstanceOf( 'Horde_Kolab_Storage_Query', - $factory->createListQuery('Base', $list) - ); - } - - public function testFactoryInjection() - { - $list = new Horde_Kolab_Storage_List_Base( - $this->getNullMock(), - new Horde_Kolab_Storage_Factory() - ); - $factory = new Horde_Kolab_Storage_Factory(); - $this->assertInstanceOf( - 'Horde_Kolab_Storage_Query', - $factory->createListQuery('Base', $list) + $factory->createListQuery('Horde_Kolab_Storage_List_Query_Base', $list) ); } diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/List/Decorator/CacheTest.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/List/Decorator/CacheTest.php index 2e630abe4..0c1cf5c36 100644 --- a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/List/Decorator/CacheTest.php +++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/List/Decorator/CacheTest.php @@ -347,7 +347,9 @@ extends Horde_Kolab_Storage_TestCase $cache ) ); - $query = $factory->createListQuery('Base', $list); + $query = $factory->createListQuery( + 'Horde_Kolab_Storage_List_Query_Base', $list + ); $list->registerQuery('Base', $query); $this->assertInstanceOf( 'Horde_Kolab_Storage_Query', diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/List/Decorator/LogTest.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/List/Decorator/LogTest.php index cff207afc..5aa177e83 100644 --- a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/List/Decorator/LogTest.php +++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/List/Decorator/LogTest.php @@ -84,7 +84,9 @@ extends Horde_Kolab_Storage_TestCase $this->getNullList($factory), $this->getMockLogger() ); - $query = $factory->createListQuery('Base', $list); + $query = $factory->createListQuery( + 'Horde_Kolab_Storage_List_Query_Base', $list + ); $list->registerQuery('Base', $query); $this->assertInstanceOf( 'Horde_Kolab_Storage_Query', diff --git a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/List/Query/BaseTest.php b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/List/Query/BaseTest.php index cba65b534..e24a0ca72 100644 --- a/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/List/Query/BaseTest.php +++ b/framework/Kolab_Storage/test/Horde/Kolab/Storage/Unit/List/Query/BaseTest.php @@ -37,36 +37,32 @@ extends Horde_Kolab_Storage_TestCase { public function testByTypeReturnsArray() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getNullList($factory)); - $this->assertType('array', $query->listByType('test')); + $this->assertType('array', $this->getNullQuery()->listByType('test')); } public function testListCalendarsListsCalendars() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getAnnotatedList($factory)); - $this->assertEquals(array('INBOX/Calendar'), $query->listByType('event')); + $this->assertEquals( + array('INBOX/Calendar'), + $this->getAnnotatedQuery()->listByType('event') + ); } public function testListTasklistsListsTasklists() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getAnnotatedList($factory)); - $this->assertEquals(array('INBOX/Tasks'), $query->listByType('task')); + $this->assertEquals( + array('INBOX/Tasks'), + $this->getAnnotatedQuery()->listByType('task') + ); } public function testTypeReturnsArray() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getNullList($factory)); - $this->assertType('array', $query->listTypes()); + $this->assertType('array', $this->getNullQuery()->listTypes()); } public function testTypeReturnsAnnotations() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getAnnotatedList($factory)); $this->assertEquals( array( 'INBOX/Calendar' => 'event', @@ -74,14 +70,13 @@ extends Horde_Kolab_Storage_TestCase 'INBOX/Notes' => 'note', 'INBOX/Tasks' => 'task', ), - $query->listTypes() + $this->getAnnotatedQuery()->listTypes() ); } public function testAnnotationsReturnsHandlers() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getAnnotatedList($factory)); + $query = $this->getAnnotatedQuery(); foreach ($query->listFolderTypeAnnotations() as $folder => $type) { $this->assertInstanceOf('Horde_Kolab_Storage_Folder_Type', $type); }; @@ -89,18 +84,14 @@ extends Horde_Kolab_Storage_TestCase public function testListOwnersReturn() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getAnnotatedList($factory)); $this->assertType( 'array', - $query->listOwners() + $this->getAnnotatedQuery()->listOwners() ); } public function testListOwnerList() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getAnnotatedList($factory)); $this->assertEquals( array( 'INBOX' => 'test@example.com', @@ -110,14 +101,12 @@ extends Horde_Kolab_Storage_TestCase 'INBOX/Tasks' => 'test@example.com', 'INBOX/a' => 'test@example.com', ), - $query->listOwners() + $this->getAnnotatedQuery()->listOwners() ); } public function testListOwnerNamespace() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getNamespaceList($factory)); $this->assertEquals( array( 'INBOX' => 'test@example.com', @@ -133,65 +122,53 @@ extends Horde_Kolab_Storage_TestCase 'user/someone/Calendars/Events' => 'someone@example.com', 'user/someone/Calendars/Party' => 'someone@example.com', ), - $query->listOwners() + $this->getNamespaceQuery()->listOwners() ); } public function testDefaultReturn() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getAnnotatedList($factory)); $this->assertType( 'string', - $query->getDefault('event') + $this->getNamespaceQuery()->getDefault('event') ); } public function testDefaultCalendar() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getAnnotatedList($factory)); $this->assertEquals( 'INBOX/Calendar', - $query->getDefault('event') + $this->getAnnotatedQuery()->getDefault('event') ); } public function testDefaultNotes() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getAnnotatedList($factory)); $this->assertEquals( 'INBOX/Notes', - $query->getDefault('note') + $this->getAnnotatedQuery()->getDefault('note') ); } public function testMissingDefault() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getNullList($factory)); $this->assertFalse( - $query->getDefault('note') + $this->getNullQuery()->getDefault('note') ); } public function testIgnoreForeignDefault() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getForeignDefaultList($factory)); $this->assertFalse( - $query->getDefault('event') + $this->getForeignDefaultQuery()->getDefault('event') ); } public function testIdentifyDefault() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getEventList($factory)); $this->assertEquals( 'INBOX/Events', - $query->getDefault('event') + $this->getEventQuery()->getDefault('event') ); } @@ -200,57 +177,55 @@ extends Horde_Kolab_Storage_TestCase */ public function testBailOnDoubleDefault() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getDoubleEventList($factory)); - $query->getDefault('event'); + $this->getDoubleEventQuery()->getDefault('event'); } public function testForeignDefaultReturn() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getEventList($factory)); $this->assertType( 'string', - $query->getForeignDefault('someone@example.com', 'event') + $this->getEventQuery()->getForeignDefault( + 'someone@example.com', 'event' + ) ); } public function testForeignDefaultCalendar() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getEventList($factory)); $this->assertEquals( 'user/someone/Calendar', - $query->getForeignDefault('someone@example.com', 'event') + $this->getEventQuery()->getForeignDefault( + 'someone@example.com', 'event' + ) ); } public function testForeignDefaultNotes() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getEventList($factory)); $this->assertEquals( 'user/someone/Notes', - $query->getForeignDefault('someone@example.com', 'note') + $this->getEventQuery()->getForeignDefault( + 'someone@example.com', 'note' + ) ); } public function testMissingForeignDefault() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getNullList($factory)); $this->assertFalse( - $query->getForeignDefault('someone@example.com', 'contact') + $this->getNullQuery()->getForeignDefault( + 'someone@example.com', 'contact' + ) ); } public function testIdentifyForeignDefault() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getEventList($factory)); $this->assertEquals( 'user/someone/Calendar', - $query->getForeignDefault('someone@example.com', 'event') + $this->getEventQuery()->getForeignDefault( + 'someone@example.com', 'event' + ) ); } @@ -259,15 +234,13 @@ extends Horde_Kolab_Storage_TestCase */ public function testBailOnDoubleForeignDefault() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getDoubleEventList($factory)); - $query->getForeignDefault('someone@example.com', 'event'); + $this->getDoubleEventQuery()->getForeignDefault( + 'someone@example.com', 'event' + ); } public function testListPersonalDefaults() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getAnnotatedList($factory)); $this->assertEquals( array( 'contact' => 'INBOX/Contacts', @@ -275,14 +248,12 @@ extends Horde_Kolab_Storage_TestCase 'note' => 'INBOX/Notes', 'task' => 'INBOX/Tasks' ), - $query->listPersonalDefaults() + $this->getAnnotatedQuery()->listPersonalDefaults() ); } public function testListDefaults() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getForeignDefaultList($factory)); $this->assertEquals( array( 'example@example.com' => array( @@ -292,36 +263,34 @@ extends Horde_Kolab_Storage_TestCase 'event' => 'user/someone/Calendars/Events' ) ), - $query->listDefaults() + $this->getForeignDefaultQuery()->listDefaults() ); } public function testDataByTypeReturnsArray() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getNullList($factory)); - $this->assertType('array', $query->dataByType('test')); + $this->assertType('array', $this->getNullQuery()->dataByType('test')); } public function testListCalendarsListsCalendarData() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getAnnotatedList($factory)); - $this->assertEquals(array('INBOX/Calendar'), array_keys($query->dataByType('event'))); + $this->assertEquals( + array('INBOX/Calendar'), + array_keys($this->getAnnotatedQuery()->dataByType('event')) + ); } public function testListTasklistsListsTasklistData() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getAnnotatedList($factory)); - $this->assertEquals(array('INBOX/Tasks'), array_keys($query->dataByType('task'))); + $this->assertEquals( + array('INBOX/Tasks'), + array_keys($this->getAnnotatedQuery()->dataByType('task')) + ); } public function testListDataHasOwner() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getAnnotatedList($factory)); - $data = $query->dataByType('event'); + $data = $this->getAnnotatedQuery()->dataByType('event'); $this->assertEquals( 'test@example.com', $data['INBOX/Calendar']['owner'] @@ -330,9 +299,7 @@ extends Horde_Kolab_Storage_TestCase public function testListDataHasTitle() { - $factory = new Horde_Kolab_Storage_Factory(); - $query = $factory->createListQuery('Base', $this->getAnnotatedList($factory)); - $data = $query->dataByType('event'); + $data = $this->getAnnotatedQuery()->dataByType('event'); $this->assertEquals( 'Calendar', $data['INBOX/Calendar']['name'] -- 2.11.0