From 8f0e544cd91b24423951bbb5d3f3be0950a63abe Mon Sep 17 00:00:00 2001
From: Frédéric Guillot <fred@kanboard.net>
Date: Fri, 21 Nov 2014 21:41:26 -0500
Subject: Create TaskStatus model

---
 tests/units/TaskStatusTest.php | 61 ++++++++++++++++++++++++++++++++++++++++++
 tests/units/TaskTest.php       |  6 +++--
 2 files changed, 65 insertions(+), 2 deletions(-)
 create mode 100644 tests/units/TaskStatusTest.php

(limited to 'tests')

diff --git a/tests/units/TaskStatusTest.php b/tests/units/TaskStatusTest.php
new file mode 100644
index 00000000..9b17ccd7
--- /dev/null
+++ b/tests/units/TaskStatusTest.php
@@ -0,0 +1,61 @@
+<?php
+
+require_once __DIR__.'/Base.php';
+
+use Model\Task;
+use Model\TaskFinder;
+use Model\TaskStatus;
+use Model\Project;
+use Model\ProjectPermission;
+
+class TaskStatusTest extends Base
+{
+    public function testStatus()
+    {
+        $t = new Task($this->container);
+        $tf = new TaskFinder($this->container);
+        $ts = new TaskStatus($this->container);
+        $p = new Project($this->container);
+
+        $this->assertEquals(1, $p->create(array('name' => 'test')));
+        $this->assertEquals(1, $t->create(array('title' => 'test', 'project_id' => 1)));
+
+        // The task must be open
+
+        $this->assertTrue($ts->isOpen(1));
+
+        $task = $tf->getById(1);
+        $this->assertNotEmpty($task);
+        $this->assertEquals(Task::STATUS_OPEN, $task['is_active']);
+        $this->assertEquals(0, $task['date_completed']);
+        $this->assertEquals(time(), $task['date_modification']);
+
+        // We close the task
+
+        $ts->close(1);
+
+        $this->assertTrue($ts->isClosed(1));
+
+        $task = $tf->getById(1);
+        $this->assertNotEmpty($task);
+        $this->assertEquals(Task::STATUS_CLOSED, $task['is_active']);
+        $this->assertEquals(time(), $task['date_completed']);
+        $this->assertEquals(time(), $task['date_modification']);
+
+        $this->assertTrue($this->container['event']->isEventTriggered(Task::EVENT_CLOSE));
+
+        // We open the task again
+
+        $ts->open(1);
+
+        $this->assertTrue($ts->isOpen(1));
+
+        $task = $tf->getById(1);
+        $this->assertNotEmpty($task);
+        $this->assertEquals(Task::STATUS_OPEN, $task['is_active']);
+        $this->assertEquals(0, $task['date_completed']);
+        $this->assertEquals(time(), $task['date_modification']);
+
+        $this->assertTrue($this->container['event']->isEventTriggered(Task::EVENT_OPEN));
+    }
+}
diff --git a/tests/units/TaskTest.php b/tests/units/TaskTest.php
index 06dfd5f1..2e478b42 100644
--- a/tests/units/TaskTest.php
+++ b/tests/units/TaskTest.php
@@ -4,6 +4,7 @@ require_once __DIR__.'/Base.php';
 
 use Model\Task;
 use Model\TaskFinder;
+use Model\TaskStatus;
 use Model\Project;
 use Model\ProjectPermission;
 use Model\Category;
@@ -605,6 +606,7 @@ class TaskTest extends Base
     public function testEvents()
     {
         $t = new Task($this->container);
+        $ts = new TaskStatus($this->container);
         $p = new Project($this->container);
 
         // We create a project
@@ -620,11 +622,11 @@ class TaskTest extends Base
         $this->assertTrue($this->container['event']->isEventTriggered(Task::EVENT_CREATE_UPDATE));
 
         // We close our task
-        $this->assertTrue($t->close(1));
+        $this->assertTrue($ts->close(1));
         $this->assertTrue($this->container['event']->isEventTriggered(Task::EVENT_CLOSE));
 
         // We open our task
-        $this->assertTrue($t->open(1));
+        $this->assertTrue($ts->open(1));
         $this->assertTrue($this->container['event']->isEventTriggered(Task::EVENT_OPEN));
 
         // We change the column of our task
-- 
cgit v1.2.3