Add unit test for transition model

This commit is contained in:
Frederic Guillot
2016-02-29 22:40:26 -05:00
parent fafc272085
commit 6ef83d0e05
35 changed files with 298 additions and 114 deletions

View File

@@ -4,7 +4,6 @@ require_once __DIR__.'/../Base.php';
use Kanboard\Core\Session\FlashMessage;
use Kanboard\Helper\App;
use Kanboard\Model\Config;
class AppHelperTest extends Base
{

View File

@@ -2,12 +2,10 @@
require_once __DIR__.'/../Base.php';
use Kanboard\Model\Task;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\TaskFinder;
use Kanboard\Model\Project;
use Kanboard\Model\Category;
use Kanboard\Model\User;
class CategoryTest extends Base
{

View File

@@ -2,7 +2,6 @@
require_once __DIR__.'/../Base.php';
use Kanboard\Model\Task;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\Project;
use Kanboard\Model\Comment;

View File

@@ -3,7 +3,6 @@
require_once __DIR__.'/../Base.php';
use Kanboard\Model\Config;
use Kanboard\Core\Session\SessionManager;
class ConfigTest extends Base
{

View File

@@ -6,7 +6,6 @@ use Kanboard\Model\TaskFinder;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\Subtask;
use Kanboard\Model\Comment;
use Kanboard\Model\User;
use Kanboard\Model\TaskFile;
use Kanboard\Model\Task;
use Kanboard\Model\Project;

View File

@@ -7,8 +7,6 @@ use Kanboard\Model\TaskFinder;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\ProjectActivity;
use Kanboard\Model\Project;
use Kanboard\Model\Subtask;
use Kanboard\Model\Comment;
class ProjectActivityTest extends Base
{

View File

@@ -7,7 +7,6 @@ use Kanboard\Model\ProjectDailyColumnStats;
use Kanboard\Model\Config;
use Kanboard\Model\Task;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\TaskStatus;
class ProjectDailyColumnStatsTest extends Base
{

View File

@@ -4,7 +4,6 @@ require_once __DIR__.'/../Base.php';
use Kanboard\Model\Project;
use Kanboard\Model\ProjectDailyStats;
use Kanboard\Model\Task;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\TaskStatus;

View File

@@ -2,12 +2,9 @@
require_once __DIR__.'/../Base.php';
use Kanboard\Model\Task;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\Subtask;
use Kanboard\Model\Project;
use Kanboard\Model\Category;
use Kanboard\Model\User;
use Kanboard\Core\User\UserSession;
class SubtaskTest extends Base

View File

@@ -7,8 +7,6 @@ use Kanboard\Model\TaskCreation;
use Kanboard\Model\Subtask;
use Kanboard\Model\SubtaskTimeTracking;
use Kanboard\Model\Project;
use Kanboard\Model\Category;
use Kanboard\Model\User;
class SubtaskTimeTrackingTest extends Base
{

View File

@@ -3,7 +3,6 @@
require_once __DIR__.'/../Base.php';
use Kanboard\Model\Project;
use Kanboard\Model\Task;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\TaskFinder;
use Kanboard\Model\Swimlane;

View File

@@ -6,7 +6,6 @@ use Kanboard\Model\Config;
use Kanboard\Model\Task;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\TaskFinder;
use Kanboard\Model\TaskStatus;
use Kanboard\Model\Project;
class TaskCreationTest extends Base

View File

@@ -7,7 +7,6 @@ use Kanboard\Model\Task;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\TaskDuplication;
use Kanboard\Model\TaskFinder;
use Kanboard\Model\TaskStatus;
use Kanboard\Model\Project;
use Kanboard\Model\ProjectUserRole;
use Kanboard\Model\Category;

View File

@@ -2,12 +2,10 @@
require_once __DIR__.'/../Base.php';
use Kanboard\Model\Task;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\TaskExport;
use Kanboard\Model\Project;
use Kanboard\Model\Category;
use Kanboard\Model\User;
use Kanboard\Model\Swimlane;
class TaskExportTest extends Base

View File

@@ -2,7 +2,6 @@
require_once __DIR__.'/../Base.php';
use Kanboard\Model\Task;
use Kanboard\Model\TaskFile;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\Project;

View File

@@ -10,7 +10,6 @@ use Kanboard\Model\TaskLink;
use Kanboard\Core\DateParser;
use Kanboard\Model\Category;
use Kanboard\Model\Subtask;
use Kanboard\Model\Config;
use Kanboard\Model\Swimlane;
class TaskFilterTest extends Base

View File

@@ -2,12 +2,9 @@
require_once __DIR__.'/../Base.php';
use Kanboard\Model\Task;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\TaskFinder;
use Kanboard\Model\Project;
use Kanboard\Model\Category;
use Kanboard\Model\User;
class TaskFinderTest extends Base
{

View File

@@ -2,7 +2,6 @@
require_once __DIR__.'/../Base.php';
use Kanboard\Model\Link;
use Kanboard\Model\TaskFinder;
use Kanboard\Model\TaskLink;
use Kanboard\Model\TaskCreation;

View File

@@ -6,7 +6,6 @@ use Kanboard\Model\Task;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\TaskModification;
use Kanboard\Model\TaskFinder;
use Kanboard\Model\TaskStatus;
use Kanboard\Model\Project;
class TaskModificationTest extends Base

View File

@@ -2,12 +2,10 @@
require_once __DIR__.'/../Base.php';
use Kanboard\Model\Task;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\TaskFinder;
use Kanboard\Model\TaskPermission;
use Kanboard\Model\Project;
use Kanboard\Model\Category;
use Kanboard\Model\User;
use Kanboard\Core\User\UserSession;

View File

@@ -0,0 +1,45 @@
<?php
require_once __DIR__.'/../Base.php';
use Kanboard\Model\TaskCreation;
use Kanboard\Model\Transition;
use Kanboard\Model\TransitionExport;
use Kanboard\Model\Project;
class TransitionExportTest extends Base
{
public function testExport()
{
$projectModel = new Project($this->container);
$taskCreationModel = new TaskCreation($this->container);
$transitionModel = new Transition($this->container);
$transitionExportModel = new TransitionExport($this->container);
$this->assertEquals(1, $projectModel->create(array('name' => 'test')));
$this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
$task_event = array(
'project_id' => 1,
'task_id' => 1,
'src_column_id' => 1,
'dst_column_id' => 2,
'date_moved' => time() - 3600
);
$this->assertTrue($transitionModel->save(1, $task_event));
$export = $transitionExportModel->export(1, date('Y-m-d'), date('Y-m-d'));
$this->assertCount(2, $export);
$this->assertEquals(
array('Id', 'Task Title', 'Source column', 'Destination column', 'Executer', 'Date', 'Time spent'),
$export[0]
);
$this->assertEquals(
array(1, 'test', 'Backlog', 'Ready', 'admin', date('m/d/Y H:i', time()), 1.0),
$export[1]
);
}
}

View File

@@ -0,0 +1,141 @@
<?php
require_once __DIR__.'/../Base.php';
use Kanboard\Model\TaskCreation;
use Kanboard\Model\Transition;
use Kanboard\Model\Project;
class TransitionTest extends Base
{
public function testSave()
{
$projectModel = new Project($this->container);
$taskCreationModel = new TaskCreation($this->container);
$transitionModel = new Transition($this->container);
$this->assertEquals(1, $projectModel->create(array('name' => 'test')));
$this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
$task_event = array(
'project_id' => 1,
'task_id' => 1,
'src_column_id' => 1,
'dst_column_id' => 2,
'date_moved' => time() - 3600
);
$this->assertTrue($transitionModel->save(1, $task_event));
$transitions = $transitionModel->getAllByTask(1);
$this->assertCount(1, $transitions);
$this->assertEquals('Backlog', $transitions[0]['src_column']);
$this->assertEquals('Ready', $transitions[0]['dst_column']);
$this->assertEquals('', $transitions[0]['name']);
$this->assertEquals('admin', $transitions[0]['username']);
$this->assertEquals(1, $transitions[0]['user_id']);
$this->assertEquals(time(), $transitions[0]['date'], '', 3);
$this->assertEquals(3600, $transitions[0]['time_spent']);
}
public function testGetTimeSpentByTask()
{
$projectModel = new Project($this->container);
$taskCreationModel = new TaskCreation($this->container);
$transitionModel = new Transition($this->container);
$this->assertEquals(1, $projectModel->create(array('name' => 'test')));
$this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test')));
$task_event = array(
'project_id' => 1,
'task_id' => 1,
'src_column_id' => 1,
'dst_column_id' => 2,
'date_moved' => time() - 3600
);
$this->assertTrue($transitionModel->save(1, $task_event));
$task_event = array(
'project_id' => 1,
'task_id' => 1,
'src_column_id' => 2,
'dst_column_id' => 3,
'date_moved' => time() - 1200
);
$this->assertTrue($transitionModel->save(1, $task_event));
$expected = array(
'1' => 3600,
'2' => 1200,
);
$this->assertEquals($expected, $transitionModel->getTimeSpentByTask(1));
}
public function testGetAllByProject()
{
$projectModel = new Project($this->container);
$taskCreationModel = new TaskCreation($this->container);
$transitionModel = new Transition($this->container);
$this->assertEquals(1, $projectModel->create(array('name' => 'test')));
$this->assertEquals(1, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test1')));
$this->assertEquals(2, $taskCreationModel->create(array('project_id' => 1, 'title' => 'test2')));
$task_event = array(
'project_id' => 1,
'src_column_id' => 1,
'dst_column_id' => 2,
'date_moved' => time() - 3600
);
$this->assertTrue($transitionModel->save(1, array('task_id' => 1) + $task_event));
$this->assertTrue($transitionModel->save(1, array('task_id' => 2) + $task_event));
$task_event = array(
'project_id' => 1,
'src_column_id' => 2,
'dst_column_id' => 3,
'date_moved' => time() - 1200
);
$this->assertTrue($transitionModel->save(1, array('task_id' => 1) + $task_event));
$this->assertTrue($transitionModel->save(1, array('task_id' => 2) + $task_event));
$transitions = $transitionModel->getAllByProjectAndDate(1, date('Y-m-d'), date('Y-m-d'));
$this->assertCount(4, $transitions);
$this->assertEquals(2, $transitions[0]['id']);
$this->assertEquals(1, $transitions[1]['id']);
$this->assertEquals(2, $transitions[2]['id']);
$this->assertEquals(1, $transitions[3]['id']);
$this->assertEquals('test2', $transitions[0]['title']);
$this->assertEquals('test1', $transitions[1]['title']);
$this->assertEquals('test2', $transitions[2]['title']);
$this->assertEquals('test1', $transitions[3]['title']);
$this->assertEquals('Ready', $transitions[0]['src_column']);
$this->assertEquals('Ready', $transitions[1]['src_column']);
$this->assertEquals('Backlog', $transitions[2]['src_column']);
$this->assertEquals('Backlog', $transitions[3]['src_column']);
$this->assertEquals('Work in progress', $transitions[0]['dst_column']);
$this->assertEquals('Work in progress', $transitions[1]['dst_column']);
$this->assertEquals('Ready', $transitions[2]['dst_column']);
$this->assertEquals('Ready', $transitions[3]['dst_column']);
$this->assertEquals('admin', $transitions[0]['username']);
$this->assertEquals('admin', $transitions[1]['username']);
$this->assertEquals('admin', $transitions[2]['username']);
$this->assertEquals('admin', $transitions[3]['username']);
$this->assertEquals(1200, $transitions[0]['time_spent']);
$this->assertEquals(1200, $transitions[1]['time_spent']);
$this->assertEquals(3600, $transitions[2]['time_spent']);
$this->assertEquals(3600, $transitions[3]['time_spent']);
}
}

View File

@@ -4,8 +4,6 @@ require_once __DIR__.'/../Base.php';
use Kanboard\Model\TaskFinder;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\Subtask;
use Kanboard\Model\Comment;
use Kanboard\Model\User;
use Kanboard\Model\Group;
use Kanboard\Model\GroupMember;
@@ -16,7 +14,6 @@ use Kanboard\Model\ProjectUserRole;
use Kanboard\Model\ProjectGroupRole;
use Kanboard\Model\UserNotification;
use Kanboard\Model\UserNotificationFilter;
use Kanboard\Model\UserNotificationType;
use Kanboard\Subscriber\UserNotificationSubscriber;
use Kanboard\Core\Security\Role;

View File

@@ -5,7 +5,6 @@ require_once __DIR__.'/../Base.php';
use Kanboard\Model\User;
use Kanboard\Model\Subtask;
use Kanboard\Model\Comment;
use Kanboard\Model\Task;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\TaskFinder;
use Kanboard\Model\Project;

View File

@@ -4,8 +4,6 @@ require_once __DIR__.'/../Base.php';
use Kanboard\Model\TaskFinder;
use Kanboard\Model\TaskCreation;
use Kanboard\Model\Subtask;
use Kanboard\Model\Comment;
use Kanboard\Model\User;
use Kanboard\Model\Task;
use Kanboard\Model\Project;