public function testRemove()
 {
     $groupModel = new Group($this->container);
     $this->assertEquals(1, $groupModel->create('Test'));
     $this->assertTrue($groupModel->remove(1));
     $this->assertEmpty($groupModel->getById(1));
 }
 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));
 }
 public function testGetGroupMembersWithNotificationEnabled()
 {
     $userModel = new User($this->container);
     $groupModel = new Group($this->container);
     $groupMemberModel = new GroupMember($this->container);
     $projectModel = new Project($this->container);
     $userNotificationModel = new UserNotification($this->container);
     $projectGroupRole = new ProjectGroupRole($this->container);
     $projectUserRole = new ProjectUserRole($this->container);
     $this->assertEquals(2, $userModel->create(array('username' => 'user1', 'email' => 'user1@here', 'notifications_enabled' => 1)));
     $this->assertEquals(3, $userModel->create(array('username' => 'user2', 'email' => '', 'notifications_enabled' => 1)));
     $this->assertEquals(4, $userModel->create(array('username' => 'user3')));
     $this->assertEquals(1, $groupModel->create('G1'));
     $this->assertEquals(2, $groupModel->create('G2'));
     $this->assertTrue($groupMemberModel->addUser(1, 2));
     $this->assertTrue($groupMemberModel->addUser(1, 3));
     $this->assertTrue($groupMemberModel->addUser(1, 4));
     $this->assertTrue($groupMemberModel->addUser(2, 2));
     $this->assertTrue($groupMemberModel->addUser(2, 3));
     $this->assertEquals(1, $projectModel->create(array('name' => 'P1')));
     $this->assertTrue($projectGroupRole->addGroup(1, 1, Role::PROJECT_MEMBER));
     $this->assertTrue($projectGroupRole->addGroup(1, 2, Role::PROJECT_VIEWER));
     $this->assertTrue($projectUserRole->addUser(1, 2, Role::PROJECT_MEMBER));
     $users = $userNotificationModel->getUsersWithNotificationEnabled(1);
     $this->assertCount(2, $users);
     $this->assertEquals('user1', $users[0]['username']);
     $this->assertEquals('user2', $users[1]['username']);
 }
 public function testFind()
 {
     $groupModel = new Group($this->container);
     $groupManager = new GroupManager();
     $this->assertEquals(1, $groupModel->create('Group 1'));
     $this->assertEquals(2, $groupModel->create('Group 2'));
     $this->assertEmpty($groupManager->find('group 1'));
     $groupManager->register(new DatabaseBackendGroupProvider($this->container));
     $groupManager->register(new DatabaseBackendGroupProvider($this->container));
     $groups = $groupManager->find('group 1');
     $this->assertCount(1, $groups);
     $this->assertInstanceOf('Kanboard\\Group\\DatabaseGroupProvider', $groups[0]);
     $this->assertEquals('Group 1', $groups[0]->getName());
     $this->assertEquals('', $groups[0]->getExternalId());
     $this->assertEquals(1, $groups[0]->getInternalId());
     $groups = $groupManager->find('grou');
     $this->assertCount(2, $groups);
     $this->assertInstanceOf('Kanboard\\Group\\DatabaseGroupProvider', $groups[0]);
     $this->assertInstanceOf('Kanboard\\Group\\DatabaseGroupProvider', $groups[1]);
     $this->assertEquals('Group 1', $groups[0]->getName());
     $this->assertEquals('Group 2', $groups[1]->getName());
     $this->assertEquals('', $groups[0]->getExternalId());
     $this->assertEquals('', $groups[1]->getExternalId());
     $this->assertEquals(1, $groups[0]->getInternalId());
     $this->assertEquals(2, $groups[1]->getInternalId());
 }
示例#5
0
 public function testValidateModification()
 {
     $groupModel = new Group($this->container);
     $result = $groupModel->validateModification(array('name' => 'Test', 'id' => 1));
     $this->assertTrue($result[0]);
     $result = $groupModel->validateModification(array('name' => 'Test'));
     $this->assertFalse($result[0]);
 }
 public function testSynchronize()
 {
     $group = new Group($this->container);
     $groupMember = new GroupMember($this->container);
     $groupSync = new GroupSync($this->container);
     $this->assertEquals(1, $group->create('My Group 1', 'externalId1'));
     $this->assertEquals(2, $group->create('My Group 2', 'externalId2'));
     $this->assertTrue($groupMember->addUser(1, 1));
     $this->assertTrue($groupMember->isMember(1, 1));
     $this->assertFalse($groupMember->isMember(2, 1));
     $groupSync->synchronize(1, array('externalId1', 'externalId2', 'externalId3'));
     $this->assertTrue($groupMember->isMember(1, 1));
     $this->assertTrue($groupMember->isMember(2, 1));
 }
示例#7
0
 public function testMembers()
 {
     $userModel = new User($this->container);
     $groupModel = new Group($this->container);
     $groupMemberModel = new GroupMember($this->container);
     $this->assertEquals(1, $groupModel->create('Group A'));
     $this->assertEquals(2, $groupModel->create('Group B'));
     $this->assertEquals(2, $userModel->create(array('username' => 'user1')));
     $this->assertEquals(3, $userModel->create(array('username' => 'user2')));
     $this->assertEquals(4, $userModel->create(array('username' => 'user3')));
     $this->assertEquals(5, $userModel->create(array('username' => 'user4')));
     $this->assertTrue($groupMemberModel->addUser(1, 1));
     $this->assertTrue($groupMemberModel->addUser(1, 2));
     $this->assertTrue($groupMemberModel->addUser(1, 5));
     $this->assertTrue($groupMemberModel->addUser(2, 3));
     $this->assertTrue($groupMemberModel->addUser(2, 4));
     $this->assertTrue($groupMemberModel->addUser(2, 5));
     $users = $groupMemberModel->getMembers(1);
     $this->assertCount(3, $users);
     $this->assertEquals('admin', $users[0]['username']);
     $this->assertEquals('user1', $users[1]['username']);
     $this->assertEquals('user4', $users[2]['username']);
     $users = $groupMemberModel->getNotMembers(1);
     $this->assertCount(2, $users);
     $this->assertEquals('user2', $users[0]['username']);
     $this->assertEquals('user3', $users[1]['username']);
     $users = $groupMemberModel->getMembers(2);
     $this->assertCount(3, $users);
     $this->assertEquals('user2', $users[0]['username']);
     $this->assertEquals('user3', $users[1]['username']);
     $this->assertEquals('user4', $users[2]['username']);
     $users = $groupMemberModel->getNotMembers(2);
     $this->assertCount(2, $users);
     $this->assertEquals('admin', $users[0]['username']);
     $this->assertEquals('user1', $users[1]['username']);
 }
示例#8
0
 public function testUserInMultipleGroupsShouldReturnHighestRole()
 {
     $userModel = new User($this->container);
     $projectModel = new Project($this->container);
     $groupModel = new Group($this->container);
     $groupRoleModel = new ProjectGroupRole($this->container);
     $groupMemberModel = new GroupMember($this->container);
     $this->assertEquals(1, $projectModel->create(array('name' => 'Test')));
     $this->assertEquals(2, $userModel->create(array('username' => 'My user')));
     $this->assertEquals(1, $groupModel->create('Group A'));
     $this->assertEquals(2, $groupModel->create('Group B'));
     $this->assertTrue($groupMemberModel->addUser(1, 1));
     $this->assertTrue($groupMemberModel->addUser(2, 1));
     $this->assertTrue($groupRoleModel->addGroup(1, 1, Role::PROJECT_MEMBER));
     $this->assertTrue($groupRoleModel->addGroup(1, 2, Role::PROJECT_MANAGER));
     $this->assertEquals(Role::PROJECT_MANAGER, $groupRoleModel->getUserRole(1, 1));
 }
 public function testCloneProjectWithGroups()
 {
     $p = new Project($this->container);
     $c = new Category($this->container);
     $pd = new ProjectDuplication($this->container);
     $userModel = new User($this->container);
     $groupModel = new Group($this->container);
     $groupMemberModel = new GroupMember($this->container);
     $projectGroupRoleModel = new ProjectGroupRole($this->container);
     $projectUserRoleModel = new ProjectUserRole($this->container);
     $this->assertEquals(1, $p->create(array('name' => 'P1')));
     $this->assertEquals(1, $groupModel->create('G1'));
     $this->assertEquals(2, $groupModel->create('G2'));
     $this->assertEquals(3, $groupModel->create('G3'));
     $this->assertEquals(2, $userModel->create(array('username' => 'user1')));
     $this->assertEquals(3, $userModel->create(array('username' => 'user2')));
     $this->assertEquals(4, $userModel->create(array('username' => 'user3')));
     $this->assertTrue($groupMemberModel->addUser(1, 2));
     $this->assertTrue($groupMemberModel->addUser(2, 3));
     $this->assertTrue($groupMemberModel->addUser(3, 4));
     $this->assertTrue($projectGroupRoleModel->addGroup(1, 1, Role::PROJECT_MANAGER));
     $this->assertTrue($projectGroupRoleModel->addGroup(1, 2, Role::PROJECT_MEMBER));
     $this->assertTrue($projectGroupRoleModel->addGroup(1, 3, Role::PROJECT_VIEWER));
     $this->assertEquals(2, $pd->duplicate(1));
     $this->assertCount(3, $projectGroupRoleModel->getGroups(2));
     $this->assertEquals(Role::PROJECT_MANAGER, $projectUserRoleModel->getUserRole(2, 2));
     $this->assertEquals(Role::PROJECT_MEMBER, $projectUserRoleModel->getUserRole(2, 3));
     $this->assertEquals(Role::PROJECT_VIEWER, $projectUserRoleModel->getUserRole(2, 4));
 }
示例#10
0
 public function testGetInactiveProjectsByUser()
 {
     $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);
     $this->assertEquals(1, $projectModel->create(array('name' => 'Project 1', 'is_active' => 0)));
     $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(7, $userModel->create(array('username' => 'user 6')));
     $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(2, 2, Role::PROJECT_MEMBER));
     $this->assertTrue($groupRoleModel->addGroup(1, 3, Role::PROJECT_MANAGER));
     $this->assertTrue($userRoleModel->addUser(1, 6, Role::PROJECT_MANAGER));
     $this->assertTrue($userRoleModel->addUser(2, 6, Role::PROJECT_MEMBER));
     $this->assertTrue($userRoleModel->addUser(2, 7, Role::PROJECT_MEMBER));
     $projects = $userRoleModel->getProjectsByUser(2, array(Project::INACTIVE));
     $this->assertCount(1, $projects);
     $this->assertEquals('Project 1', $projects[1]);
     $projects = $userRoleModel->getProjectsByUser(3, array(Project::INACTIVE));
     $this->assertCount(1, $projects);
     $this->assertEquals('Project 1', $projects[1]);
     $projects = $userRoleModel->getProjectsByUser(4, array(Project::INACTIVE));
     $this->assertCount(1, $projects);
     $this->assertEquals('Project 1', $projects[1]);
     $projects = $userRoleModel->getProjectsByUser(5, array(Project::INACTIVE));
     $this->assertCount(0, $projects);
     $projects = $userRoleModel->getProjectsByUser(6, array(Project::INACTIVE));
     $this->assertCount(1, $projects);
     $this->assertEquals('Project 1', $projects[1]);
     $projects = $userRoleModel->getProjectsByUser(7, array(Project::INACTIVE));
     $this->assertCount(0, $projects);
 }