public function testGetLeaveActions() { $loggedInEmpNumber = 4; $leave = new Leave(); $leave->setStatus(Leave::LEAVE_STATUS_LEAVE_PENDING_APPROVAL); $leave->setEmpNumber(5); $approveAction = new WorkflowStateMachine(); $approveAction->fromArray(array('id' => 2, 'workflow' => 'leave', 'state' => 'PENDING APPROVAL', 'role' => 'ADMIN', 'action' => 'APPROVE', 'resulting_state' => 'SCHEDULED', 'roles_to_notify' => '', 'priority' => 0)); $cancelAction = new WorkflowStateMachine(); $cancelAction->fromArray(array('id' => 3, 'workflow' => 'leave', 'state' => 'PENDING APPROVAL', 'role' => 'ADMIN', 'action' => 'CANCEL', 'resulting_state' => 'CANCELLED', 'roles_to_notify' => '', 'priority' => 0)); $rejectAction = new WorkflowStateMachine(); $rejectAction->fromArray(array('id' => 5, 'workflow' => 'leave', 'state' => 'PENDING APPROVAL', 'role' => 'ADMIN', 'action' => 'REJECT', 'resulting_state' => 'REJECTED', 'roles_to_notify' => '', 'priority' => 0)); $actions = array($approveAction, $cancelAction, $rejectAction); $userManager = $this->getMock('BasicUserRoleManager', array('getAllowedActions')); $userManager->expects($this->any())->method('getAllowedActions')->with(WorkflowStateMachine::FLOW_LEAVE, $leave->getTextLeaveStatus(), array(), array())->will($this->returnValue($actions)); $this->leaveRequestService->setUserRoleManager($userManager); $result = $this->leaveRequestService->getLeaveActions($leave, $loggedInEmpNumber); $this->verifyLeaveActions($actions, $result); }
public function testGetWorkflowItemsByStateActionAndRole() { $item = new WorkflowStateMachine(); $item->fromArray(array('id' => 9, 'workflow' => Time, 'state' => 'APPROVED', 'role' => 'SUPERVISOR', 'action' => 'VIEW TIMESHEET', 'resulting_state' => 'APPROVED')); $accessFlowStateMachineDaoMock = $this->getMock('AccessFlowStateMachineDao', array('getWorkflowItemByStateActionAndRole')); $accessFlowStateMachineDaoMock->expects($this->once())->method('getWorkflowItemByStateActionAndRole')->with('Time', 'NOT SUBMITTED', 'SAVE', 'XYZ')->will($this->returnValue($item)); $this->accessFlowStateMachineService->setAccessFlowStateMachineDao($accessFlowStateMachineDaoMock); $result = $this->accessFlowStateMachineService->getWorkflowItemByStateActionAndRole('Time', 'NOT SUBMITTED', 'SAVE', 'XYZ'); $this->assertEquals($item, $result); }