コード例 #1
0
 public function testGetProjectMembersWithNotifications()
 {
     $u = new User($this->container);
     $p = new Project($this->container);
     $n = new UserNotification($this->container);
     $pp = new ProjectUserRole($this->container);
     $this->assertEquals(1, $p->create(array('name' => 'UnitTest1')));
     // Email + Notifications enabled
     $this->assertNotFalse($u->create(array('username' => 'user1', 'email' => 'user1@here', 'notifications_enabled' => 1)));
     // No email + Notifications enabled
     $this->assertNotFalse($u->create(array('username' => 'user2', 'email' => '', 'notifications_enabled' => 1)));
     // Email + Notifications enabled
     $this->assertNotFalse($u->create(array('username' => 'user3', 'email' => 'user3@here', 'notifications_enabled' => 1)));
     // No email + notifications disabled
     $this->assertNotFalse($u->create(array('username' => 'user4')));
     // Nobody is member of any projects
     $this->assertEmpty($pp->getUsers(1));
     $this->assertEmpty($n->getUsersWithNotificationEnabled(1));
     // We allow all users to be member of our projects
     $this->assertTrue($pp->addUser(1, 1, Role::PROJECT_MEMBER));
     $this->assertTrue($pp->addUser(1, 2, Role::PROJECT_MEMBER));
     $this->assertTrue($pp->addUser(1, 3, Role::PROJECT_MEMBER));
     $this->assertTrue($pp->addUser(1, 4, Role::PROJECT_MEMBER));
     $this->assertNotEmpty($pp->getUsers(1));
     $users = $n->getUsersWithNotificationEnabled(1);
     $this->assertNotEmpty($users);
     $this->assertCount(3, $users);
     $this->assertEquals('user1@here', $users[0]['email']);
     $this->assertEquals('', $users[1]['email']);
     $this->assertEquals('user3@here', $users[2]['email']);
 }
コード例 #2
0
 public function testDuplicate()
 {
     $userModel = new User($this->container);
     $projectModel = new Project($this->container);
     $groupModel = new Group($this->container);
     $groupMemberModel = new GroupMember($this->container);
     $groupRoleModel = new ProjectGroupRole($this->container);
     $userRoleModel = new ProjectUserRole($this->container);
     $projectPermission = new ProjectPermission($this->container);
     $this->assertEquals(1, $projectModel->create(array('name' => 'Project 1')));
     $this->assertEquals(2, $projectModel->create(array('name' => 'Project 2')));
     $this->assertEquals(2, $userModel->create(array('username' => 'user 1', 'name' => 'User #1')));
     $this->assertEquals(3, $userModel->create(array('username' => 'user 2')));
     $this->assertEquals(4, $userModel->create(array('username' => 'user 3')));
     $this->assertEquals(5, $userModel->create(array('username' => 'user 4')));
     $this->assertEquals(6, $userModel->create(array('username' => 'user 5', 'name' => 'User #5')));
     $this->assertEquals(1, $groupModel->create('Group C'));
     $this->assertEquals(2, $groupModel->create('Group B'));
     $this->assertEquals(3, $groupModel->create('Group A'));
     $this->assertTrue($groupMemberModel->addUser(1, 4));
     $this->assertTrue($groupMemberModel->addUser(2, 5));
     $this->assertTrue($groupMemberModel->addUser(3, 3));
     $this->assertTrue($groupMemberModel->addUser(3, 2));
     $this->assertTrue($groupRoleModel->addGroup(1, 1, Role::PROJECT_VIEWER));
     $this->assertTrue($groupRoleModel->addGroup(1, 3, Role::PROJECT_MANAGER));
     $this->assertTrue($userRoleModel->addUser(1, 5, Role::PROJECT_MANAGER));
     $this->assertTrue($userRoleModel->addUser(1, 6, Role::PROJECT_MEMBER));
     $this->assertTrue($projectPermission->duplicate(1, 2));
     $this->assertCount(2, $userRoleModel->getUsers(2));
     $this->assertCount(3, $groupRoleModel->getUsers(2));
 }
コード例 #3
0
 public function testChangeRole()
 {
     $projectModel = new Project($this->container);
     $userRoleModel = new ProjectUserRole($this->container);
     $this->assertEquals(1, $projectModel->create(array('name' => 'Test')));
     $this->assertTrue($userRoleModel->addUser(1, 1, Role::PROJECT_VIEWER));
     $this->assertTrue($userRoleModel->changeUserRole(1, 1, Role::PROJECT_MANAGER));
     $users = $userRoleModel->getUsers(1);
     $this->assertCount(1, $users);
     $this->assertEquals(1, $users[0]['id']);
     $this->assertEquals('admin', $users[0]['username']);
     $this->assertEquals('', $users[0]['name']);
     $this->assertEquals(Role::PROJECT_MANAGER, $users[0]['role']);
 }
コード例 #4
0
 public function testCloneProjectWithUsers()
 {
     $p = new Project($this->container);
     $c = new Category($this->container);
     $pp = new ProjectUserRole($this->container);
     $u = new User($this->container);
     $pd = new ProjectDuplication($this->container);
     $this->assertEquals(2, $u->create(array('username' => 'unittest1', 'password' => 'unittest')));
     $this->assertEquals(3, $u->create(array('username' => 'unittest2', 'password' => 'unittest')));
     $this->assertEquals(4, $u->create(array('username' => 'unittest3', 'password' => 'unittest')));
     $this->assertEquals(1, $p->create(array('name' => 'P1')));
     $this->assertTrue($pp->addUser(1, 2, Role::PROJECT_MEMBER));
     $this->assertTrue($pp->addUser(1, 3, Role::PROJECT_MEMBER));
     $this->assertTrue($pp->addUser(1, 4, Role::PROJECT_MANAGER));
     $this->assertEquals(Role::PROJECT_MEMBER, $pp->getUserRole(1, 2));
     $this->assertEquals(Role::PROJECT_MEMBER, $pp->getUserRole(1, 3));
     $this->assertEquals(Role::PROJECT_MANAGER, $pp->getUserRole(1, 4));
     $this->assertEquals(2, $pd->duplicate(1));
     $project = $p->getById(2);
     $this->assertNotEmpty($project);
     $this->assertEquals('P1 (Clone)', $project['name']);
     $this->assertEquals(3, count($pp->getUsers(2)));
     $this->assertEquals(Role::PROJECT_MEMBER, $pp->getUserRole(2, 2));
     $this->assertEquals(Role::PROJECT_MEMBER, $pp->getUserRole(2, 3));
     $this->assertEquals(Role::PROJECT_MANAGER, $pp->getUserRole(2, 4));
 }
コード例 #5
0
 public function testCloneTeamProjectToPrivatProject()
 {
     $p = new Project($this->container);
     $c = new Category($this->container);
     $pp = new ProjectUserRole($this->container);
     $u = new User($this->container);
     $pd = new ProjectDuplication($this->container);
     $this->assertEquals(2, $u->create(array('username' => 'user1')));
     $this->assertEquals(3, $u->create(array('username' => 'user2')));
     $this->assertEquals(1, $p->create(array('name' => 'P1'), 2));
     $project = $p->getById(1);
     $this->assertEquals(2, $project['owner_id']);
     $this->assertEquals(0, $project['is_private']);
     $this->assertTrue($pp->addUser(1, 2, Role::PROJECT_MANAGER));
     $this->assertTrue($pp->addUser(1, 1, Role::PROJECT_MEMBER));
     $this->assertEquals(2, $pd->duplicate(1, array('projectPermission'), 3, 'My private project', true));
     $this->assertCount(1, $pp->getUsers(2));
     $this->assertEquals(Role::PROJECT_MANAGER, $pp->getUserRole(2, 3));
     $project = $p->getById(2);
     $this->assertEquals(3, $project['owner_id']);
     $this->assertEquals(1, $project['is_private']);
 }