function testGetUserByIdentifierPluginNoAnswerWithComplexId() { $em = new MockEventManager($this); $em->expectOnce('processEvent'); $um = new UserManager4GetByIdent($this); $um->setReturnReference('_getEventManager', $em); $um->expectNever('getUserByUserName'); $user = $um->getUserByIdentifier('plugin:test'); $this->assertNull($user); }
function testRestoreDeletedItemFileWithSomeVersionRestoreFailure() { $itemFactory = new Docman_ItemFactoryTestRestore($this); $item = new MockDocman_File($this); $item->setReturnValue('getId', 112); $item->setReturnValue('getGroupId', 114); $itemFactory->setReturnValue('getItemTypeForItem', PLUGIN_DOCMAN_ITEM_TYPE_FILE); $dao = new MockDocman_ItemDao($this); $dao->expectOnce('restore', array(112)); $dao->setReturnValue('restore', true); $itemFactory->setReturnValue('_getItemDao', $dao); $v1 = new MockDocman_Version($this); $v2 = new MockDocman_Version($this); $versionFactory = new MockDocman_VersionFactory($this); $versionFactory->expectOnce('listVersionsToPurgeForItem', array($item)); $versionFactory->setReturnValue('listVersionsToPurgeForItem', array($v1, $v2)); $versionFactory->expectAt(0, 'restore', array($v1)); $versionFactory->setReturnValueAt(0, 'restore', true); $versionFactory->expectAt(1, 'restore', array($v2)); $versionFactory->setReturnValueAt(1, 'restore', false); $itemFactory->setReturnValue('_getVersionFactory', $versionFactory); // Event $user = new MockUser($this); $um = new MockUserManager($this); $um->setReturnValue('getCurrentUser', $user); $itemFactory->setReturnValue('_getUserManager', $um); $em = new MockEventManager($this); $em->expectOnce('processEvent', array('plugin_docman_event_restore', array('group_id' => 114, 'item' => $item, 'user' => $user))); $itemFactory->setReturnValue('_getEventManager', $em); $this->assertTrue($itemFactory->restore($item)); }
function processEvent($event, $params) { foreach (parent::processEvent($event, $params) as $key => $value) { $params[$key] = $value; } }
public function testRenameDBUpdateFailure() { $evt = new SystemEvent_PROJECT_RENAME_TestVersion($this); $evt->__construct('1', SystemEvent::TYPE_PROJECT_RENAME, '142' . SystemEvent::PARAMETER_SEPARATOR . 'FooBar', SystemEvent::PRIORITY_HIGH, SystemEvent::STATUS_RUNNING, $_SERVER['REQUEST_TIME'], $_SERVER['REQUEST_TIME'], $_SERVER['REQUEST_TIME'], ''); // The project $project = new MockProject($this); $project->setReturnValue('getUnixName', 'TestProj', array(false)); $project->setReturnValue('getUnixName', 'testproj', array(true)); $evt->setReturnValue('getProject', $project, array('142')); // SVN $backendSVN = new MockBackendSVN($this); $backendSVN->setReturnValue('repositoryExists', false); $evt->setReturnValue('getBackend', $backendSVN, array('SVN')); // CVS $backendCVS = new MockBackendCVS($this); $backendCVS->setReturnValue('repositoryExists', false); $evt->setReturnValue('getBackend', $backendCVS, array('CVS')); // System $backendSystem = new MockBackendSystem($this); $backendSystem->setReturnValue('projectHomeExists', false); //FRS $backendSystem->setReturnValue('renameFileReleasedDirectory', true); // FTP $backendSystem->setReturnValue('renameAnonFtpDirectory', true); $backendSystem->expectOnce('renameAnonFtpDirectory', array($project, 'FooBar')); $evt->setReturnValue('getBackend', $backendSystem, array('System')); // DB $evt->setReturnValue('updateDB', false); // Event $em = new MockEventManager($this); $em->expectOnce('processEvent', array('SystemEvent_PROJECT_RENAME', array('project' => $project, 'new_name' => 'FooBar'))); $evt->setReturnValue('getEventManager', $em); $evt->expectOnce('addProjectHistory', array('rename_with_error', 'TestProj :: FooBar (event n°1)', $project->getId())); // There is an error, the rename in not "done" $evt->expectNever('done'); $this->assertFalse($evt->process()); }
function testRestoreOneVersionAlreadyPurged() { $filePath = dirname(__FILE__) . '/_fixtures/version.test'; $versionFactory = new Docman_VersionFactoryTestVersion($this); $dao = new MockDocman_VersionDao($this); $versionFactory->setReturnValue('_getVersionDao', $dao); $dar = new MockDataAccessResult($this); $dar->setReturnValue('isError', false); $dar->setReturnValue('getRow', array('purge_date' => 1234567890, 'path' => $filePath)); $dao->expectOnce('searchDeletedVersion', array(1664, 2)); $dao->setReturnValue('searchDeletedVersion', $dar); $em = new MockEventManager($this); $em->expectNever('processEvent', array('plugin_docman_event_restore_version')); $versionFactory->setReturnValue('_getEventManager', $em); $dao->expectNever('restore'); $version = new MockDocman_Version($this); $version->setReturnValue('getNumber', 2); $version->setReturnValue('getItemId', 1664); $this->assertFalse($versionFactory->restore($version)); }
function testLoadPlugins() { //The hooks $hook_A = array('hook' => 'hook_A', 'callback' => 'CallHook', 'recallHook' => true); $hook_B = array('hook' => 'hook_B', 'callback' => 'CallHook', 'recallHook' => true); $it_hook_p1 = new MockIterator($this); $it_hook_p1->setReturnValue('valid', true); $it_hook_p1->setReturnValueAt(2, 'valid', false); $it_hook_p1->setReturnReferenceAt(0, 'current', $hook_A); $it_hook_p1->setReturnReferenceAt(1, 'current', $hook_B); $hooks_p1 = new MockCollection($this); $hooks_p1->setReturnReference('iterator', $it_hook_p1); $it_hook_p2 = new MockIterator($this); $it_hook_p2->setReturnValue('valid', true); $it_hook_p2->setReturnValueAt(1, 'valid', false); $it_hook_p2->setReturnReferenceAt(0, 'current', $hook_A); $hooks_p2 = new MockCollection($this); $hooks_p2->setReturnReference('iterator', $it_hook_p2); //A plugin (available) --listen A & B $plugin_1 = new MockPlugin($this); $plugin_1->expectCallCount('getHooksAndCallbacks', 1); $plugin_1->setReturnValue('getId', 123); $plugin_1->setReturnReference('getHooksAndCallbacks', $hooks_p1); //Another Plugin (available) --listen only A $plugin_2 = new MockPlugin($this); $plugin_2->expectCallCount('getHooksAndCallbacks', 1); $plugin_2->setReturnValue('getId', 124); $plugin_2->setReturnReference('getHooksAndCallbacks', $hooks_p2); //The plugin factory $plugin_factory = new MockPluginFactory($this); $plugin_factory->setReturnValue('getAvailablePlugins', array($plugin_1, $plugin_2)); //The event manager $em = new MockEventManager($this); $em->expectCallCount('addListener', 3); // 2*A+1*B hooks $args_0 = array(); $args_0[] = $hook_A['hook']; $args_0[] = $plugin_1; $args_0[] = $hook_A['callback']; $args_0[] = $hook_A['recallHook']; $args_0[] = 0; $args_1 = array(); $args_1[] = $hook_B['hook']; $args_1[] = $plugin_1; $args_1[] = $hook_B['callback']; $args_1[] = $hook_B['recallHook']; $args_1[] = 0; $args_2 = array(); $args_2[] = $hook_A['hook']; $args_2[] = $plugin_2; $args_2[] = $hook_A['callback']; $args_2[] = $hook_A['recallHook']; $args_2[] = 10; $em->expectAt(0, 'addListener', $args_0); $em->expectAt(1, 'addListener', $args_1); $em->expectAt(2, 'addListener', $args_2); //The priorities $phgm = new MockPluginHookPriorityManager($this); $phgm->expectCallCount('getPriorityForPluginHook', 3); $args_phgm_0 = array(); $args_phgm_0[] = $plugin_1; $args_phgm_0[] = $hook_A['hook']; $args_phgm_1 = array(); $args_phgm_1[] = $plugin_1; $args_phgm_1[] = $hook_B['hook']; $args_phgm_2 = array(); $args_phgm_2[] = $plugin_2; $args_phgm_2[] = $hook_A['hook']; $phgm->expectAt(0, 'getPriorityForPluginHook', $args_phgm_0); $phgm->expectAt(1, 'getPriorityForPluginHook', $args_phgm_1); $phgm->expectAt(2, 'getPriorityForPluginHook', $args_phgm_2); $phgm->setReturnValue('getPriorityForPluginHook', 0); $phgm->setReturnValueAt(2, 'getPriorityForPluginHook', 10); //124|hook_A //The plugins manager $pm = new PluginManagerTestVersion($this); $pm->setReturnReference('_getPluginFactory', $plugin_factory); $pm->setReturnReference('_getEventManager', $em); $pm->setReturnReference('_getPluginHookPriorityManager', $phgm); $pm->PluginManager(); $this->assertFalse($pm->isPluginsLoaded()); $pm->loadPlugins(); $this->assertTrue($pm->isPluginsLoaded()); }