/**
* Yobi, Project Hosting SW
*
* Copyright 2012 NAVER Corp.
* http://yobi.io
*
* @Author Hwi Ahn
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package models;
import java.util.List;
import org.junit.Test;
import static org.fest.assertions.Assertions.assertThat;
public class ProjectUserTest extends ModelTest<ProjectUser> {
@Test
public void findByIds() throws Exception {
// Given
// When
Role role = ProjectUser.findByIds(2l, 1l).role;
// Then
assertThat(role.id).isEqualTo(1l);
}
@Test
public void create() throws Exception {
// Given
// When
ProjectUser.create(2l, 3l, 2l);
// Then
assertThat(ProjectUser.findByIds(2l, 3l).role.id)
.isEqualTo(2l);
// To keep data clean after this test.
ProjectUser.delete(2l, 3l);
}
@Test
public void assignRole() throws Exception {
// Given
// When
ProjectUser.assignRole(2l, 1l, 2l);
ProjectUser.assignRole(2l, 3l, 2l);
flush();
// Then
assertThat(ProjectUser.findByIds(2l, 1l).role.id).isEqualTo(2l);
assertThat(ProjectUser.findByIds(2l, 3l).role.id).isEqualTo(2l);
// To keep data clean after this test.
ProjectUser.assignRole(2l, 1l, 1l);
ProjectUser.delete(2l, 3l);
}
@Test
public void isManager() throws Exception {
// Given
ProjectUser.assignRole(2l, 3l, 1l);
flush();
// When
Long userIdCase1 = 2l;
Long userIdCase2 = 5l;
// Then
assertThat(ProjectUser.checkOneMangerPerOneProject(userIdCase1, 3l)).isEqualTo(true);
assertThat(ProjectUser.checkOneMangerPerOneProject(userIdCase2, 3l)).isEqualTo(false);
// To keep data clean after this test.
ProjectUser.delete(2l, 3l);
}
@Test
public void isMember() throws Exception {
// Given
// When
// Then
assertThat(ProjectUser.isMember(2l, 2l)).isEqualTo(true);
assertThat(ProjectUser.isMember(2l, 3l)).isEqualTo(false);
}
@Test
public void options() throws Exception {
// Given
// When
// Then
assertThat(ProjectUser.options(1l).containsValue("laziel")).isEqualTo(true);
}
@Test
public void findMemberListByProject() throws Exception {
// Given
// When
List<ProjectUser> projectUsers = ProjectUser.findMemberListByProject(1l);
// Then
assertThat(projectUsers.size()).isEqualTo(2);
assertThat(projectUsers.get(0).user.id).isEqualTo(3l);
assertThat(projectUsers.get(0).user.loginId).isEqualTo("laziel");
assertThat(projectUsers.get(0).role.name).isEqualTo("member");
}
@Test
public void roleOf() {
// GIVEN
String loginId = "yobi";
Project project = Project.findByOwnerAndProjectName(loginId, "projectYobi");
// WHEN
String roleName = ProjectUser.roleOf(loginId, project);
// THEN
assertThat(roleName).isEqualTo("manager");
// WHEN
roleName = ProjectUser.roleOf("admin", project);
// THEN
assertThat(roleName).isEqualTo("sitemanager");
// WHEN
roleName = ProjectUser.roleOf((String) null, project);
// THEN
assertThat(roleName).isEqualTo("anonymous");
// WHEN
roleName = ProjectUser.roleOf("keesun", project);
// THEN
assertThat(roleName).isEqualTo("anonymous");
// WHEN
roleName = ProjectUser.roleOf("laziel", project);
// THEN
assertThat(roleName).isEqualTo("member");
}
@Test
public void isAllowedToSettings() {
// GIVEN
String loginId = "yobi";
Project project = Project.findByOwnerAndProjectName(loginId, "projectYobi");
// WHEN // THEN
assertThat(ProjectUser.isAllowedToSettings(loginId, project)).isTrue();
// WHEN // THEN
assertThat(ProjectUser.isAllowedToSettings("admin", project)).isTrue();
// WHEN // THEN
assertThat(ProjectUser.isAllowedToSettings(null, project)).isFalse();
// WHEN // THEN
assertThat(ProjectUser.isAllowedToSettings("keesun", project)).isFalse();
}
@Test
public void isGuest() {
// Given
Project project = getTestProject(1L);
User anonymous = User.anonymous;
User member = getTestUser(3L);
User guest = getTestUser(4L);
// When
// Then
assertThat(ProjectUser.isGuest(project, anonymous)).isFalse();
assertThat(ProjectUser.isGuest(project, member)).isFalse();
assertThat(ProjectUser.isGuest(project, guest)).isTrue();
}
}