lazy validation

This commit is contained in:
DavidBadura 2015-04-03 14:36:58 +00:00
parent 44274c6fc2
commit c026f2b954
3 changed files with 12 additions and 6 deletions

View File

@ -270,16 +270,15 @@ class Task
/**
* @param string|Recurring $recur
* @throws TaskwarriorException
*/
public function setRecurring($recur)
{
if (is_string($recur)) {
$this->recur = new Recurring($recur);
} elseif ($recur instanceof Recurring) {
if ($recur instanceof Recurring) {
$this->recur = $recur;
} elseif ($this->recur && is_null($recur)) {
throw new TaskwarriorException('You cannot remove the recurrence from a recurring task.');
} elseif ($recur) {
$this->recur = new Recurring($recur);
} else {
$this->recur = null;
}
}

View File

@ -205,9 +205,14 @@ class TaskManager
/**
* @param Task $task
* @throws TaskwarriorException
*/
private function edit(Task $task)
{
if ($task->isReccuring() && !$task->getRecurring()) {
throw new TaskwarriorException('You cannot remove the recurrence from a recurring task.');
}
$this->taskwarrior->modify(
[
'description' => $task->getDescription(),

View File

@ -541,6 +541,8 @@ class TaskManagerTest extends \PHPUnit_Framework_TestCase
$this->taskManager->save($task1);
$task1->setRecurring(null);
$this->taskManager->save($task1);
}
public function testRecurringNull()