/** * Tests validateTimeEvents method. */ public function testValidateTimeEvents() { $timeController = new TimeController(); $timeEvents[] = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 00:01', '2007-05-14 15:00', '2007-07-07', 3 * 3600, "desc 1"); $timeEvents[] = $this->_getTimeEvent(2, 10, 10, 10, '2007-05-17 12:00', '2007-05-18 15:00', '2007-07-07', 27 * 3600, "desc 2"); $timeEvents[] = $this->_getTimeEvent(3, 10, 10, 10, '2007-05-20 22:00', '2007-05-20 23:59', '2007-07-07', 2 * 3600 - 60, "desc 2"); $retVal = $timeController->validateTimeEvents($timeEvents); $this->assertTrue($retVal === true, "Got {$retVal} instead of true"); // Invalid timesheet Id $timeEvents[1]->setTimesheetId(12); $this->assertTrue($timeController->validateTimeEvents($timeEvents) === TimeController::NO_TIMESHEET_FAILURE); // Empty timesheet id $timeEvents[1]->setTimesheetId(null); $this->assertTrue($timeController->validateTimeEvents($timeEvents) === TimeController::NO_TIMESHEET_FAILURE); // Time event outside timesheet period $timeEvents[1]->setTimesheetId(10); $timeEvents[1]->setStartTime('2007-05-13 23:33'); $this->assertTrue($timeController->validateTimeEvents($timeEvents) === TimeController::EVENT_OUTSIDE_PERIOD_FAILURE); // Check that duration and end time is set for the time events by validateTimeEvents $timeEvents = array(); $timeEvents[] = $this->_getTimeEvent(1, 10, 10, 10, '2007-05-14 00:01', '2007-05-14 15:00', '2007-07-07', "", "desc 1"); $timeEvents[] = $this->_getTimeEvent(2, 10, 10, 10, '2007-05-17 12:00', '2007-05-18 15:00', '2007-07-07', "", "desc 2"); $timeEvents[] = $this->_getTimeEvent(3, 10, 10, 10, '2007-05-20 22:00', '', '2007-07-07', 3600, "desc 2"); $this->assertSame(true, $timeController->validateTimeEvents($timeEvents)); $this->assertSame(15 * 3600 - 60, $timeEvents[0]->getDuration()); $this->assertSame(27 * 3600, $timeEvents[1]->getDuration()); $this->assertSame("2007-05-20 23:00", $timeEvents[2]->getEndTime()); }