package net.rrm.ehour.ui.manage.assignment; import net.rrm.ehour.customer.service.CustomerService; import net.rrm.ehour.domain.Customer; import net.rrm.ehour.domain.ProjectAssignment; import net.rrm.ehour.domain.ProjectObjectMother; import net.rrm.ehour.project.service.ProjectAssignmentService; import net.rrm.ehour.project.service.ProjectService; import net.rrm.ehour.ui.DummyUIDataGenerator; import net.rrm.ehour.ui.common.BaseSpringWebAppTester; import org.apache.wicket.model.CompoundPropertyModel; import org.junit.Before; import org.junit.Test; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import static org.mockito.Mockito.*; public class AssignmentFormPanelTest extends BaseSpringWebAppTester { private AssignmentAdminBackingBean backingBean; private CustomerService customerService; private ProjectAssignmentService assignmentService; private ProjectService projectService; @Before public void setup() { backingBean = new AssignmentAdminBackingBean(); backingBean.setProjectAssignment(DummyUIDataGenerator.getProjectAssignment(1)); assignmentService = mock(ProjectAssignmentService.class); getMockContext().putBean(assignmentService); customerService = mock(CustomerService.class); getMockContext().putBean(customerService); projectService = mock(ProjectService.class); getMockContext().putBean(projectService); } @Test public void should_render() { when(assignmentService.getProjectAssignmentTypes()) .thenReturn(DummyUIDataGenerator.getProjectAssignmentTypes()); List<Customer> customers = new ArrayList<>(); customers.add(DummyUIDataGenerator.getCustomer(1)); when(customerService.getActiveCustomers()).thenReturn(customers); when(projectService.getActiveProjects()).thenReturn(Arrays.asList(ProjectObjectMother.createProject(1))); startPanel(); tester.assertNoErrorMessage(); verify(customerService).getActiveCustomers(); verify(projectService, times(4)).getActiveProjects(); } @Test public void should_display_warning_booking_disabled() { backingBean = new AssignmentAdminBackingBean(); ProjectAssignment projectAssignment = DummyUIDataGenerator.getProjectAssignment(1); projectAssignment.getProject().setActive(false); backingBean.setProjectAssignment(projectAssignment); when(assignmentService.getProjectAssignmentTypes()) .thenReturn(DummyUIDataGenerator.getProjectAssignmentTypes()); List<Customer> customers = new ArrayList<>(); customers.add(DummyUIDataGenerator.getCustomer(1)); when(customerService.getActiveCustomers()).thenReturn(customers); when(projectService.getActiveProjects()).thenReturn(Arrays.asList(ProjectObjectMother.createProject(1))); startPanel(); tester.assertNoErrorMessage(); verify(customerService).getActiveCustomers(); } private void startPanel() { tester.startComponentInPage(new AssignmentFormPanel("id", new CompoundPropertyModel<>(backingBean))); } }