From 3fa353d5330d435aaabba403caeb38810f1a8157 Mon Sep 17 00:00:00 2001 From: DavidBadura Date: Sun, 8 Feb 2015 18:32:51 +0000 Subject: [PATCH] fix until & recurring --- src/Task.php | 2 +- src/TaskManager.php | 2 ++ src/Taskwarrior.php | 4 +++ tests/TaskManagerTest.php | 51 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 58 insertions(+), 1 deletion(-) diff --git a/src/Task.php b/src/Task.php index 2a577ca..110b769 100644 --- a/src/Task.php +++ b/src/Task.php @@ -261,7 +261,7 @@ class Task } /** - * @return string + * @return Recurring */ public function getRecurring() { diff --git a/src/TaskManager.php b/src/TaskManager.php index a63c8b5..f947b14 100644 --- a/src/TaskManager.php +++ b/src/TaskManager.php @@ -196,6 +196,8 @@ class TaskManager 'tags' => $task->getTags(), 'due' => $task->getDue() ? $task->getDue()->format('Ymd\THis\Z') : null, 'wait' => $task->getWait() ? $task->getWait()->format('Ymd\THis\Z') : null, + 'until' => $task->getUntil() ? $task->getUntil()->format('Ymd\THis\Z') : null, + 'recur' => $task->getRecurring() ? $task->getRecurring()->getValue() : null, ], $task->getUuid() ); diff --git a/src/Taskwarrior.php b/src/Taskwarrior.php index 8b8d4d4..ec18413 100644 --- a/src/Taskwarrior.php +++ b/src/Taskwarrior.php @@ -205,6 +205,10 @@ class Taskwarrior $options[] = 'until:' . $params['until']; } + if (array_key_exists('recur', $params)) { + $options[] = 'recur:' . $params['recur']; + } + if (array_key_exists('project', $params)) { $options[] = 'project:' . $params['project']; } diff --git a/tests/TaskManagerTest.php b/tests/TaskManagerTest.php index 5418de9..1d4954a 100644 --- a/tests/TaskManagerTest.php +++ b/tests/TaskManagerTest.php @@ -2,6 +2,7 @@ namespace DavidBadura\Taskwarrior\Test; +use DavidBadura\Taskwarrior\Recurring; use DavidBadura\Taskwarrior\Task; use DavidBadura\Taskwarrior\TaskManager; use DavidBadura\Taskwarrior\Taskwarrior; @@ -526,6 +527,31 @@ class TaskManagerTest extends \PHPUnit_Framework_TestCase $this->assertTrue($result[0]->isPending()); } + public function testRecurringModify() + { + $recur1 = new Recurring(Recurring::DAILY); + $recur2 = new Recurring(Recurring::WEEKLY); + + $task1 = new Task(); + $task1->setDescription('foo1'); + $task1->setDue('tomorrow'); + $task1->setRecurring($recur1); + + $this->taskManager->save($task1); + $this->taskManager->clear(); + + $task1 = $this->taskManager->find($task1->getUuid()); + $this->assertEquals($recur1, $task1->getRecurring()); + + $task1->setRecurring($recur2); + + $this->taskManager->save($task1); + $this->taskManager->clear(); + + $task1 = $this->taskManager->find($task1->getUuid()); + $this->assertEquals($recur2, $task1->getRecurring()); + } + public function testUntil() { $task1 = new Task(); @@ -541,6 +567,31 @@ class TaskManagerTest extends \PHPUnit_Framework_TestCase $this->assertCount(0, $this->taskManager->filter()); } + + public function testUntilModify() + { + $date1 = $this->createDateTime('tomorrow'); + $date2 = $this->createDateTime('+2 day'); + + $task1 = new Task(); + $task1->setDescription('foo1'); + $task1->setUntil($date1); + + $this->taskManager->save($task1); + $this->taskManager->clear(); + + $task1 = $this->taskManager->find($task1->getUuid()); + $this->assertEquals($date1, $task1->getUntil()); + + $task1->setUntil($date2); + + $this->taskManager->save($task1); + $this->taskManager->clear(); + + $task1 = $this->taskManager->find($task1->getUuid()); + $this->assertEquals($date2, $task1->getUntil()); + } + /** * @param string $string * @return \DateTime