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);
 }
 public function testSaveLeave()
 {
     // Try and save leave with id that exists - should throw error
     $existingLeave = new Leave();
     $existingLeave->fromArray($this->fixture['Leave'][1]);
     try {
         $this->leaveRequestDao->saveLeave($existingLeave);
         $this->fail("Dao exception expected");
     } catch (DaoException $e) {
         // expected
     }
     // Try to save new leave (without id)
     $leaveRequestId = $this->fixture['LeaveRequest'][1]['id'];
     $leave = new Leave();
     $leave->length_hours = 8;
     $leave->length_days = 1;
     $leave->leave_request_id = $leaveRequestId;
     $leave->leave_type_id = $this->fixture['LeaveType'][0]['id'];
     $leave->emp_number = $this->fixture['Employee'][0]['empNumber'];
     $leave->date = '2010-09-09';
     $leave->status = 1;
     $this->leaveRequestDao->saveLeave($leave);
     // Verify id assigned
     $this->assertTrue(!empty($leave->id));
     // Verify saved by retrieving
     $result = Doctrine_Query::create()->select()->from('Leave l')->where('id = ?', $leave->id)->execute();
     $this->assertTrue($result->count() == 1);
     $this->assertTrue(is_a($result[0], Leave));
     $origAsArray = $leave->toArray();
     $savedAsArray = $result[0]->toArray();
     $this->assertEquals($origAsArray, $savedAsArray);
 }