public function setUp() { parent::setUp(); $project = aMockProject()->withId(34)->build(); $this->tracker = aMockTracker()->withId(12)->withProject($project)->build(); $this->user = aUser()->build(); $this->hierarchy_factory = mock('Tracker_HierarchyFactory'); $this->planning_factory = mock('PlanningFactory'); $this->kanban_factory = mock('AgileDashboard_KanbanFactory'); $this->hierarchy = mock('Tracker_Hierarchy'); $this->tracker_factory = mock('TrackerFactory'); $this->hierarchy_checker = new AgileDashboard_HierarchyChecker($this->planning_factory, $this->kanban_factory, $this->tracker_factory); }
public function itCanRenameProject() { $new_name = 'newone'; stub($this->project_manager)->getProjectByUnixName($new_name)->returns(aMockProject()->withUnixName($new_name)->build()); $this->gitExec->expectOnce('push'); $this->assertTrue(is_file($this->_glAdmDir . '/conf/projects/legacy.conf')); $this->assertFalse(is_file($this->_glAdmDir . '/conf/projects/newone.conf')); $this->assertTrue($this->a_gitolite_driver->renameProject('legacy', $new_name)); clearstatcache(true, $this->_glAdmDir . '/conf/projects/legacy.conf'); $this->assertFalse(is_file($this->_glAdmDir . '/conf/projects/legacy.conf')); $this->assertTrue(is_file($this->_glAdmDir . '/conf/projects/newone.conf')); $this->assertIdentical(file_get_contents($this->_fixDir . '/perms/newone.conf'), file_get_contents($this->_glAdmDir . '/conf/projects/newone.conf')); $this->assertNoPattern('`\\ninclude "projects/legacy.conf"\\n`', $this->getGitoliteConf()); $this->assertPattern('`\\ninclude "projects/newone.conf"\\n`', $this->getGitoliteConf()); $this->assertEmptyGitStatus(); }
public function setUp() { parent::setUp(); $this->server = mock('Git_RemoteServer_GerritServer'); $this->project = aMockProject()->withId($this->project_id)->withUnixName($this->project_unix_name)->isPublic()->build(); $this->project_admins_gerrit_parent_name = 'grozilla/project_admins'; $this->parent_project = aMockProject()->withId(104)->withUnixName('grozilla')->build(); $this->parent_project_admins = aMockUGroup()->withId(ProjectUGroup::PROJECT_ADMIN)->withNormalizedName('project_admins')->build(); $this->project_admins = aMockUGroup()->withId(ProjectUGroup::PROJECT_ADMIN)->withNormalizedName('project_admins')->build(); $this->driver = mock('Git_Driver_Gerrit'); stub($this->driver)->doesTheParentProjectExist()->returns(false); $driver_factory = stub('Git_Driver_Gerrit_GerritDriverFactory')->getDriver()->returns($this->driver); $this->ugroup_manager = mock('UGroupManager'); stub($this->ugroup_manager)->getUGroups($this->project)->returns(array($this->project_admins)); stub($this->ugroup_manager)->getUGroups($this->parent_project)->returns(array($this->parent_project_admins)); $this->membership_manager = mock('Git_Driver_Gerrit_MembershipManager'); stub($this->membership_manager)->createArrayOfGroupsForServer()->returns(array($this->project_admins, $this->parent_project_admins)); $this->project_manager = mock('ProjectManager'); $this->umbrella_manager = new Git_Driver_Gerrit_UmbrellaProjectManager($this->ugroup_manager, $this->project_manager, $this->membership_manager, $driver_factory); }
public function setUp() { parent::setUp(); $this->project = aMockProject()->withId(102)->build(); }
public function setUp() { parent::setUp(); $this->remote_server_factory = mock('Git_RemoteServer_GerritServerFactory'); $this->git_repository_factory = mock('GitRepositoryFactory'); $this->logger = mock('Logger'); $this->dao = mock('Git_Driver_Gerrit_MembershipDao'); $this->user1 = mock('PFUser'); $this->user2 = mock('PFUser'); $this->membership_manager = partial_mock('Git_Driver_Gerrit_MembershipManager', array('addUGroupBinding', 'addUserToGroupWithoutFlush', 'doesGroupExistOnServer'), array($this->dao, $this->driver_factory, $this->gerrit_user_manager, $this->remote_server_factory, $this->logger, $this->ugroup_manager, $this->project_manager)); stub($this->membership_manager)->doesGroupExistOnServer()->returns(true); $child_project = aMockProject()->withId(112)->build(); stub($this->project_manager)->getChildProjects()->returns(array($child_project)); }
function testSvnAccessFileShouldCallsvn_utils_read_svn_access_file_defaultsWithCaseSensitiveRepositoryName() { $project = aMockProject()->build(); stub($project)->getSVNRootPath()->returns('/svnroot/mytestproject'); $saf = partial_mock('SVNAccessFile', array('getPlatformBlock')); expect($saf)->getPlatformBlock('/svnroot/mytestproject')->once(); $saf->parseGroupLines($project, ''); }
function testGetMessageForUserParentListened() { $language = new MockBaseLanguage(); $language->setReturnValue('getText', 'notif_modified_by', array('plugin_docman', 'notif_modified_by')); $language->setReturnValue('getText', 'notif_wiki_new_version', array('plugin_docman', 'notif_wiki_new_version', 'wiki')); $language->setReturnValue('getText', 'notif_something_happen', array('plugin_docman', 'notif_something_happen')); $language->setReturnValue('getText', 'notif_footer_message', array('plugin_docman', 'notif_footer_message')); $language->setReturnValue('getText', 'notif_footer_message_link', array('plugin_docman', 'notif_footer_message_link')); $project = aMockProject()->withId(101)->build(); $feedback = new MockFeedback($this); $mail_builder = new MailBuilder(TemplateRendererFactory::build()); $notificationsManager = new Docman_NotificationsManager_TestVersion(); $notificationsManager->__construct($project, '/toto', $feedback, $mail_builder); $notificationsManager->setReturnValue('_getLanguageForUser', $language); $notificationsManager->_url = 'http://www.example.com/plugins/docman/'; $user = mock('PFUser'); $user->setReturnValue('getRealName', 'John Doe'); $user->setReturnValue('getId', 2); $params['path'] = new MockDocman_Path(); $params['path']->setReturnValue('get', 'Folder1/Folder2/File'); $params['item'] = new MockDocman_Item(); $params['item']->setReturnValue('getId', 10); $parentItem = new MockDocman_Item(); $parentItem->setReturnValue('getId', 1); $notificationsManager->setReturnValue('getListeningUsers', array($user->getId() => $parentItem)); $params['wiki_page'] = 'wiki'; $params['url'] = 'http://www.example.com/plugins/docman/'; $message1 = "Folder1/Folder2/File notif_modified_by John Doe.\nhttp://www.example.com/plugins/docman/&action=details&id=10\n\n\n--------------------------------------------------------------------\nnotif_footer_message\nnotif_footer_message_link\nhttp://www.example.com/plugins/docman/&action=details§ion=notifications&id=1"; $message2 = "Folder1/Folder2/File notif_modified_by John Doe.\nhttp://www.example.com/plugins/docman/&action=details&id=10\n\n\n--------------------------------------------------------------------\nnotif_footer_message\nnotif_footer_message_link\nhttp://www.example.com/plugins/docman/&action=details§ion=notifications&id=1"; $message3 = "notif_wiki_new_version John Doe.\nhttp://www.example.com/plugins/docman/\n\n\n--------------------------------------------------------------------\nnotif_footer_message\nnotif_footer_message_link\nhttp://www.example.com/plugins/docman/&action=details§ion=notifications&id=1"; $message4 = "notif_something_happen\n\n--------------------------------------------------------------------\nnotif_footer_message\nnotif_footer_message_link\nhttp://www.example.com/plugins/docman/&action=details§ion=notifications&id=1"; $this->assertEqual($message1, $notificationsManager->_getMessageForUser($user, 'modified', $params)); $this->assertEqual($message2, $notificationsManager->_getMessageForUser($user, 'new_version', $params)); $this->assertEqual($message3, $notificationsManager->_getMessageForUser($user, 'new_wiki_version', $params)); $this->assertEqual($message4, $notificationsManager->_getMessageForUser($user, 'something happen', $params)); }
/** * A * |-- B * | +-+-----+ * | | `-- D | * | +-------+ \ * `-- C | * <-------² * * D is moved from B to C * * @param dr d is readable 0|1 * @param br b is readable 0|1 * @param cr c is readable 0|1 * @param lb b is listened 0|1 * @param lc c is listened 0|1 * @param ld d is listened 0|1 * @param res expected result: item | from | from_wo_c | to | to_wo_b | none * @param msg message to display if the test fail */ function _runTest($dr, $br, $cr, $lb, $lc, $ld, $res, $msg = "%s") { $msg = "[{$dr}, {$br}, {$cr}, {$lb}, {$lc}, {$ld}, {$res}] " . $msg; $a =& new MockDocman_Item(); $a->setReturnValue('getId', 'a'); $a->setReturnValue('getParentId', 0); $b =& new MockDocman_Item(); $b->setReturnValue('getId', 'b'); $b->setReturnValue('getParentId', 'a'); $c =& new MockDocman_Item(); $c->setReturnValue('getId', 'c'); $c->setReturnValue('getParentId', 'a'); $d =& new MockDocman_Item(); $d->setReturnValue('getId', 'd'); $d->setReturnValue('getParentId', 'b'); $group_id = 101; $project = aMockProject()->withId($group_id)->build(); $user = mock('PFUser'); $user->setReturnValue('getId', 'user'); $listener = mock('PFUser'); $listener->setReturnValue('getId', 'listener'); $feedback =& new Feedback(); $item_factory =& new MockDocman_ItemFactory(); $item_factory->setReturnReference('getItemFromDb', $a, array($a->getId())); $item_factory->setReturnReference('getItemFromDb', $b, array($b->getId())); $item_factory->setReturnReference('getItemFromDb', $c, array($c->getId())); $item_factory->setReturnReference('getItemFromDb', $d, array($d->getId())); $user_manager =& new MockUserManager(); $user_manager->setReturnReference('getUserById', $user, array($user->getId())); $user_manager->setReturnReference('getUserById', $listener, array($listener->getId())); $permissions_manager =& new MockDocman_PermissionsManager(); $permissions_manager->setReturnValue('userCanRead', true, array(&$listener, $a->getId())); $permissions_manager->setReturnValue('userCanAccess', true, array(&$listener, $a->getId())); $permissions_manager->setReturnValue('userCanRead', $cr, array(&$listener, $c->getId())); $permissions_manager->setReturnValue('userCanAccess', $cr, array(&$listener, $c->getId())); $permissions_manager->setReturnValue('userCanRead', $br, array(&$listener, $b->getId())); $permissions_manager->setReturnValue('userCanAccess', $br, array(&$listener, $b->getId())); $permissions_manager->setReturnValue('userCanRead', $dr, array(&$listener, $d->getId())); $permissions_manager->setReturnValue('userCanAccess', $dr && $br, array(&$listener, $d->getId())); $dar_d =& new MockDataAccessResult(); if ($ld) { $dar_d->setReturnValueAt(0, 'valid', true); $dar_d->setReturnValueAt(1, 'valid', false); $dar_d->setReturnValue('current', array('user_id' => $listener->getId(), 'object_id' => $d->getId())); } else { $dar_d->setReturnValue('valid', false); } $dar_c =& new MockDataAccessResult(); if ($lc) { $dar_c->setReturnValueAt(0, 'valid', true); $dar_c->setReturnValueAt(1, 'valid', false); $dar_c->setReturnValue('current', array('user_id' => $listener->getId(), 'object_id' => $c->getId())); } else { $dar_c->setReturnValue('valid', false); } $dar_b =& new MockDataAccessResult(); if ($lb) { $dar_b->setReturnValueAt(0, 'valid', true); $dar_b->setReturnValueAt(1, 'valid', false); $dar_b->setReturnValue('current', array('user_id' => $listener->getId(), 'object_id' => $b->getId())); } else { $dar_b->setReturnValue('valid', false); } $docman_path =& new MockDocman_Path(); $dao =& new MockNotificationsDao(); $dao->setReturnValue('searchUserIdByObjectIdAndType', $dar_d, array($d->getId(), 'plugin_docman')); $dao->setReturnValue('searchUserIdByObjectIdAndType', $dar_c, array($c->getId(), 'plugin_docman')); $dao->setReturnValue('searchUserIdByObjectIdAndType', $dar_b, array($b->getId(), 'plugin_docman')); $dnmm =& new Docman_NotificationsManager_MoveTestVersion(); $dnmm->setReturnReference('_groupGetObject', $project); $dnmm->setReturnReference('_getItemFactory', $item_factory); $dnmm->setReturnReference('_getUserManager', $user_manager); $dnmm->setReturnReference('_getPermissionsManager', $permissions_manager); $dnmm->setReturnReference('_getDocmanPath', $docman_path); $dnmm->setReturnReference('_getDao', $dao); if ($res != 'none') { $dnmm->expectOnce('_buildMessage', false, $msg); } else { $dnmm->expectNever('_buildMessage', $msg); } $mail_builder = new MailBuilder(TemplateRendererFactory::build()); //C'est parti $dnmm->__construct($project, 'my_url', $feedback, $mail_builder); $dnmm->somethingHappen('plugin_docman_event_move', array('group_id' => $group_id, 'item' => &$d, 'parent' => &$c, 'user' => &$user)); }
public function itReturnsOnlyOneServerEvenWhenThereAreSeveral() { $parent = aMockProject()->withId(369)->build(); $child = aMockProject()->withId(933)->build(); stub($this->project_manager)->getChildProjects(369)->returns(array($child)); stub($this->project_manager)->getChildProjects()->returns(array()); stub($this->dao)->searchAllByProjectId(369)->returnsDar($this->dar_1); stub($this->dao)->searchAllByProjectId(933)->returnsDar($this->dar_1); $servers = $this->factory->getServersForProject($parent); $this->assertCount($servers, 1); }