public function testDeleteLeaveEntitlements()
 {
     $ids = array(2, 33, 12);
     $leaveEntitlement1 = new LeaveEntitlement();
     $leaveEntitlement1->fromArray(array('id' => 2, 'emp_number' => 1, 'no_of_days' => 3, 'days_used' => 0));
     $leaveEntitlement2 = new LeaveEntitlement();
     $leaveEntitlement2->fromArray(array('id' => 33, 'emp_number' => 1, 'no_of_days' => 3, 'days_used' => 0));
     $leaveEntitlement3 = new LeaveEntitlement();
     $leaveEntitlement3->fromArray(array('id' => 12, 'emp_number' => 1, 'no_of_days' => 3, 'days_used' => 0));
     $leaveEntitlements = array($leaveEntitlement1, $leaveEntitlement2, $leaveEntitlement3);
     $mockDao = $this->getMock('LeaveEntitlementDao', array('deleteLeaveEntitlements', 'searchLeaveEntitlements'));
     $mockDao->expects($this->once())->method('deleteLeaveEntitlements')->with($ids)->will($this->returnValue(count($ids)));
     $mockDao->expects($this->once())->method('searchLeaveEntitlements')->will($this->returnValue($leaveEntitlements));
     $this->service->setLeaveEntitlementDao($mockDao);
     $result = $this->service->deleteLeaveEntitlements($ids);
     $this->assertEquals(count($ids), $result);
 }
 public function testSearchLeaveEntitlementsSamePeriod()
 {
     Doctrine_Query::create()->delete()->from('LeaveEntitlement')->execute();
     $leaveEntitlements = array(array('id' => 1, 'leave_type_id' => 1, 'emp_number' => 1, 'no_of_days' => 3, 'from_date' => '2013-01-01 00:00:00', 'to_date' => '2013-12-31 00:00:00', 'entitlement_type' => 1, 'deleted' => 0), array('id' => 2, 'leave_type_id' => 1, 'emp_number' => 2, 'no_of_days' => 3, 'from_date' => '2013-01-01 00:00:00', 'to_date' => '2013-12-31 00:00:00', 'entitlement_type' => 1, 'deleted' => 0));
     foreach ($leaveEntitlements as $entitlement) {
         $leaveEntitlement = new LeaveEntitlement();
         $leaveEntitlement->fromArray($entitlement);
         $leaveEntitlement->save();
     }
     $fromDate = '2013-01-01';
     $toDate = '2013-12-31';
     $employeeNumbers = array(1, 2);
     $leaveTypeId = 1;
     $leaveEntitlementSearchParameterHolder = new LeaveEntitlementSearchParameterHolder();
     $leaveEntitlementSearchParameterHolder->setFromDate($fromDate);
     $leaveEntitlementSearchParameterHolder->setLeaveTypeId($leaveTypeId);
     $leaveEntitlementSearchParameterHolder->setToDate($toDate);
     $leaveEntitlementSearchParameterHolder->setEmpIdList($employeeNumbers);
     $leaveEntitlementSearchParameterHolder->setHydrationMode(Doctrine::HYDRATE_ARRAY);
     $entitlementList = $this->dao->searchLeaveEntitlements($leaveEntitlementSearchParameterHolder);
     $this->assertEquals(2, count($entitlementList));
 }
 public function testHandleLeaveStatusChangeOneEntitlementExtra()
 {
     $empNumber = 1;
     $leaveType = 2;
     $leave1 = new Leave();
     $leave1->fromArray(array('id' => NULL, 'date' => '2012-09-11', 'length_days' => 1));
     $leave2 = new Leave();
     $leave2->fromArray(array('id' => NULL, 'date' => '2012-09-12', 'length_days' => 1));
     $leaveDates = array($leave1, $leave2);
     $entitlement1 = new LeaveEntitlement();
     $entitlement1->fromArray(array('id' => 6, 'emp_number' => 1, 'no_of_days' => 4, 'days_used' => 1, 'leave_type_id' => 2, 'from_date' => '2012-09-10', 'to_date' => '2012-09-14', 'credited_date' => '2012-05-01', 'note' => 'Created by Unit test', 'entitlement_type' => LeaveEntitlement::ENTITLEMENT_TYPE_ADD, 'deleted' => 0));
     $entitlements = array($entitlement1);
     $mockService = $this->getMock('LeaveEntitlementService', array('getValidLeaveEntitlements'));
     $mockService->expects($this->once())->method('getValidLeaveEntitlements')->with($empNumber, $leaveType, '2012-09-11', '2012-09-12', 'from_date', 'ASC')->will($this->returnValue($entitlements));
     $this->strategy->setLeaveEntitlementService($mockService);
     // Apply, $allowNoEntitlements = false
     $results = $this->strategy->handleLeaveCreate($empNumber, $leaveType, $leaveDates);
     $expected = array('current' => array('2012-09-11' => array(6 => 1), '2012-09-12' => array(6 => 1)), 'change' => array());
     $this->assertEquals($expected, $results);
 }