public function testSaveLeaveEntitlementNew()
 {
     $leaveEntitlement = new LeaveEntitlement();
     //$leaveEntitlement->setId();
     $leaveEntitlement->setEmpNumber(1);
     $leaveEntitlement->setNoOfDays(12);
     $leaveEntitlement->setLeaveTypeId(2);
     $leaveEntitlement->setFromDate('2012-09-13');
     $leaveEntitlement->setToDate('2012-11-28');
     $leaveEntitlement->setCreditedDate('2012-05-01');
     $leaveEntitlement->setNote('Created by Unit test');
     $leaveEntitlement->setEntitlementType(LeaveEntitlement::ENTITLEMENT_TYPE_ADD);
     $leaveEntitlement->setDeleted(0);
     $savedObj = $this->dao->saveLeaveEntitlement($leaveEntitlement);
     $this->assertTrue($savedObj instanceof LeaveEntitlement);
     $savedId = $savedObj->getId();
     $this->assertTrue(!empty($savedId));
     $leaveEntitlement->setId($savedId);
     $this->_compareEntitlement($leaveEntitlement, $savedObj);
     $fromDb = Doctrine_Query::create()->from('LeaveEntitlement le')->where('le.id = ? ', $savedId)->fetchOne();
     $this->_compareEntitlement($leaveEntitlement, $fromDb);
 }
 /**
  * Two entitlements, first one not enough. Verify assigned first to earlier expiring entitlement and the rest to the 
  * next entitlement   
  */
 public function testGetAvailableEntitlementsTwo1()
 {
     $empNumber = 1;
     $leaveType = 2;
     $leave1 = new Leave();
     $leave1->fromArray(array('id' => NULL, 'date' => '2012-09-13', 'length_days' => 1));
     $leave2 = new Leave();
     $leave2->fromArray(array('id' => NULL, 'date' => '2012-09-14', 'length_days' => 1));
     $leave3 = new Leave();
     $leave3->fromArray(array('id' => NULL, 'date' => '2012-09-15', 'length_days' => 1));
     $leave4 = new Leave();
     $leave4->fromArray(array('id' => NULL, 'date' => '2012-09-16', 'length_days' => 1));
     $leaveDates = array($leave1, $leave2, $leave3, $leave4);
     $entitlement1 = new LeaveEntitlement();
     $entitlement1->setId(6);
     $entitlement1->setEmpNumber(1);
     $entitlement1->setNoOfDays(2);
     $entitlement1->setLeaveTypeId(2);
     $entitlement1->setFromDate('2012-09-11');
     $entitlement1->setToDate('2012-09-15');
     $entitlement1->setCreditedDate('2012-05-01');
     $entitlement1->setNote('Created by Unit test');
     $entitlement1->setEntitlementType(LeaveEntitlement::ENTITLEMENT_TYPE_ADD);
     $entitlement1->setDeleted(0);
     $entitlement2 = new LeaveEntitlement();
     $entitlement2->setId(2);
     $entitlement2->setEmpNumber(1);
     $entitlement2->setNoOfDays(4);
     $entitlement2->setLeaveTypeId(2);
     $entitlement2->setFromDate('2012-09-12');
     $entitlement2->setToDate('2012-09-18');
     $entitlement2->setCreditedDate('2012-05-01');
     $entitlement2->setNote('Created by Unit test');
     $entitlement2->setEntitlementType(LeaveEntitlement::ENTITLEMENT_TYPE_ADD);
     $entitlement2->setDeleted(0);
     $entitlements = array($entitlement1, $entitlement2);
     $mockService = $this->getMock('LeaveEntitlementService', array('getValidLeaveEntitlements'));
     $mockService->expects($this->any())->method('getValidLeaveEntitlements')->with($empNumber, $leaveType, '2012-09-13', '2012-09-16', 'to_date', 'ASC')->will($this->returnValue($entitlements));
     $this->strategy->setLeaveEntitlementService($mockService);
     $results = $this->strategy->getAvailableEntitlements($empNumber, $leaveType, $leaveDates);
     $this->assertTrue($results !== false);
     $current = array_combine(array('2012-09-13', '2012-09-14', '2012-09-15', '2012-09-16'), array(array(6 => 1), array(6 => 1), array(2 => 1), array(2 => 1)));
     $changes = array();
     $this->verifyEntitlements($results, $current, $changes);
 }