public function xtestAdjustLeavePeriodOverlapLeaves()
 {
     $leaveList = TestDataService::loadObjectList('Leave', $this->fixture, 'set4');
     $leavePeriod = new LeavePeriod();
     $leavePeriod->setLeavePeriodId(11);
     $leavePeriod->setStartDate("2008-01-31");
     $leavePeriod->setEndDate("2009-01-31");
     $leaveRequestDao = $this->getMock('LeaveRequestDao', array('getLeavePeriodOverlapLeaves', 'fetchLeave', 'modifyOverlapLeaveRequest'));
     $leave = $leaveList[0];
     $leaveRequest = new LeaveRequest();
     $leaveRequest->setLeaveRequestId($leave->getLeaveRequestId());
     $leave->setLeaveRequest($leaveRequest);
     $leaveRequestDao->expects($this->once())->method('getLeavePeriodOverlapLeaves')->with($leavePeriod)->will($this->returnValue(array($leave)));
     $leaveRequestDao->expects($this->once())->method('fetchLeave')->with($leave->getLeaveRequestId())->will($this->returnValue($leaveList));
     $leaveRequestDao->expects($this->once())->method('modifyOverlapLeaveRequest')->with($leave->getLeaveRequest(), $leaveList, $leavePeriod);
     $this->leaveRequestService->setLeaveRequestDao($leaveRequestDao);
     $this->leaveRequestService->adjustLeavePeriodOverlapLeaves($leavePeriod);
 }
 public function testReadLeavePeriod()
 {
     //mocking LeavePeriodDao
     $lastLeavePeriod = new LeavePeriod();
     $lastLeavePeriod->setStartDate("2010-01-01");
     $lastLeavePeriod->setEndDate("2010-12-31");
     $lastLeavePeriod->setLeavePeriodId(1);
     $leavePeriodDao = $this->getMock('LeavePeriodDao', array('readLeavePeriod'));
     $leavePeriodDao->expects($this->once())->method('readLeavePeriod')->will($this->returnValue($lastLeavePeriod));
     $this->leavePeriodService->setLeavePeriodDao($leavePeriodDao);
     $retrievedLeavePeriod = $this->leavePeriodService->readLeavePeriod(1);
     $this->assertTrue($retrievedLeavePeriod instanceof LeavePeriod);
 }
 /**
  * This test checks for the success scenario in case if an employee assigned a leave
  */
 public function testAssignLeaveFailsOnHolidays()
 {
     // Set post parameters
     $parameters = array('txtFromDate' => '2010-11-23', 'txtToDate' => '2010-11-24', 'txtEmpID' => '0001', 'txtLeaveType' => 'LT001');
     $request = $this->context->request;
     $request->setPostParameters($parameters);
     // Set request to POST method
     $request->setMethod(sfRequest::POST);
     //mocking LeaveRequestService
     $leaveRequestService = $this->getMock('LeaveRequestService', array('getOverlappingLeave'));
     $leaveTypes = TestDataService::loadObjectList('LeaveType', $this->fixture, 'LeaveTypes');
     $leaveRequestService->expects($this->once())->method('getOverlappingLeave')->will($this->returnValue(array()));
     //mocking LeaveTypeService
     $leaveTypeService = $this->getMock('LeaveTypeService', array('readLeaveType', 'getLeaveTypeList'));
     $leaveTypeService->expects($this->once())->method('readLeaveType')->will($this->returnValue($leaveTypes[0]));
     $leaveTypeService->expects($this->once())->method('getLeaveTypeList')->will($this->returnValue($leaveTypes));
     //mocking leave period service
     $leavePeriod = new LeavePeriod();
     $leavePeriod->setStartDate("2010-01-01");
     $leavePeriod->setEndDate("2010-12-31");
     $leavePeriod->setLeavePeriodId(2);
     $leavePeriodService = $this->getMock('LeavePeriodService', array('isWithinNextLeavePeriod', 'createNextLeavePeriod'));
     $leavePeriodService->expects($this->once())->method('isWithinNextLeavePeriod')->will($this->returnValue(true));
     $leavePeriodService->expects($this->once())->method('createNextLeavePeriod')->will($this->returnValue($leavePeriod));
     $assignLeaveAction = new assignLeaveAction($this->context, "leave", "execute");
     $assignLeaveAction->setLeaveRequestService($leaveRequestService);
     $assignLeaveAction->setLeaveTypeService($leaveTypeService);
     $assignLeaveAction->setLeavePeriodService($leavePeriodService);
     //mocking the form
     $form = $this->getMock('AssignLeaveForm', array('isValid', 'createLeaveObjectListForAppliedRange'));
     $form->expects($this->once())->method('isValid')->will($this->returnValue(true));
     $leaves = TestDataService::loadObjectList('Leave', $this->fixture, 'Leave');
     //making all leaves to holidays
     foreach ($leaves as $k => $obj) {
         $leaves[$k]->setLeaveStatus(Leave::LEAVE_STATUS_LEAVE_HOLIDAY);
     }
     $form->expects($this->once())->method('createLeaveObjectListForAppliedRange')->will($this->returnValue($leaves));
     $assignLeaveAction->setForm($form);
     try {
         $assignLeaveAction->execute($request);
         $this->assertTrue(isset($assignLeaveAction->templateMessage['SUCCESS']));
     } catch (Exception $e) {
     }
 }