package net.rrm.ehour.ui.manage.assignment;
import net.rrm.ehour.domain.Project;
import net.rrm.ehour.domain.ProjectAssignment;
import net.rrm.ehour.domain.ProjectAssignmentObjectMother;
import net.rrm.ehour.domain.ProjectObjectMother;
import org.junit.Test;
import java.util.Arrays;
import java.util.List;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
public class AssignmentAdminBackingBeanTest {
@Test
public void should_update_customer_when_single_project_is_selected_in_edit_mode() {
ProjectAssignment assignment = ProjectAssignmentObjectMother.createProjectAssignment(1);
AssignmentAdminBackingBean bean = new AssignmentAdminBackingBean(assignment);
Project project = ProjectObjectMother.createProject(10);
assignment.setProject(project);
bean.updateCustomerBasedOnSelectedProject();
assertEquals(project.getCustomer(), bean.getCustomer());
}
@Test
public void should_not_update_customer_when_multiple_projects_are_selected() {
ProjectAssignment assignment = ProjectAssignmentObjectMother.createProjectAssignment(1);
assignment.setAssignmentId(null);
AssignmentAdminBackingBean bean = new AssignmentAdminBackingBean(assignment);
bean.setSelectedProjects(Arrays.asList(ProjectObjectMother.createProject(10), ProjectObjectMother.createProject(11)));
bean.updateCustomerBasedOnSelectedProject();
assertNull(bean.getCustomer());
}
@Test
public void should_update_customer_when_single_projects_is_selected_in_add_mode() {
ProjectAssignment assignment = ProjectAssignmentObjectMother.createProjectAssignment(1);
assignment.setAssignmentId(null);should_update_customer_when_single_project_is_selected_in_edit_mode();
AssignmentAdminBackingBean bean = new AssignmentAdminBackingBean(assignment);
Project project = ProjectObjectMother.createProject(10);
bean.setSelectedProjects(Arrays.asList(project));
bean.updateCustomerBasedOnSelectedProject();
assertEquals(project.getCustomer(), bean.getCustomer());
}
@Test
public void should_create_assignment_per_project_when_multiple_selected() {
ProjectAssignment assignment = ProjectAssignmentObjectMother.createProjectAssignment(1);
assignment.setAssignmentId(null);
AssignmentAdminBackingBean bean = new AssignmentAdminBackingBean(assignment);
Project project1 = ProjectObjectMother.createProject(10);
Project project2 = ProjectObjectMother.createProject(11);
bean.setSelectedProjects(Arrays.asList(project1, project2));
List<ProjectAssignment> forSave = bean.getProjectAssignmentsForSave();
assertEquals(2, forSave.size());
assertEquals(project1, forSave.get(0).getProject());
assertEquals(project2, forSave.get(1).getProject());
}
}