diff options
author | Frederic Guillot <fred@kanboard.net> | 2016-12-03 12:56:12 -0500 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2016-12-03 12:56:12 -0500 |
commit | 23d862aef8891130bc7eaeaa25513a9895b44c95 (patch) | |
tree | 85331881d6d36e3e358e3b6eb02ec32cf451648e /tests/units/Filter | |
parent | 4b22db5400cc5b30696560cd4fc5e44ec845168c (diff) |
Add suggest menu for task ID
Diffstat (limited to 'tests/units/Filter')
-rw-r--r-- | tests/units/Filter/TaskStartsWithIdFilterTest.php | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/tests/units/Filter/TaskStartsWithIdFilterTest.php b/tests/units/Filter/TaskStartsWithIdFilterTest.php new file mode 100644 index 00000000..e911a6a1 --- /dev/null +++ b/tests/units/Filter/TaskStartsWithIdFilterTest.php @@ -0,0 +1,103 @@ +<?php + +use Kanboard\Filter\TaskStartsWithIdFilter; +use Kanboard\Model\ProjectModel; +use Kanboard\Model\TaskCreationModel; +use Kanboard\Model\TaskFinderModel; + +require_once __DIR__.'/../Base.php'; + +class TaskStartsWithIdFilterTest extends Base +{ + public function testManyResults() + { + $taskFinderModel = new TaskFinderModel($this->container); + $projectModel = new ProjectModel($this->container); + $taskCreationModel = new TaskCreationModel($this->container); + $query = $taskFinderModel->getExtendedQuery(); + + $this->assertEquals(1, $projectModel->create(array('name' => 'Test'))); + + for ($i = 1; $i <= 20; $i++) { + $this->assertNotFalse($taskCreationModel->create(array('project_id' => 1, 'title' => 'Task #'.$i))); + } + + $filter = new TaskStartsWithIdFilter(); + $filter->withQuery($query); + $filter->withValue(1); + $filter->apply(); + + $tasks = $query->findAll(); + $this->assertCount(11, $tasks); + $this->assertEquals('Task #1', $tasks[0]['title']); + $this->assertEquals('Task #19', $tasks[10]['title']); + } + + public function testOneResult() + { + $taskFinderModel = new TaskFinderModel($this->container); + $projectModel = new ProjectModel($this->container); + $taskCreationModel = new TaskCreationModel($this->container); + $query = $taskFinderModel->getExtendedQuery(); + + $this->assertEquals(1, $projectModel->create(array('name' => 'Test'))); + + for ($i = 1; $i <= 20; $i++) { + $this->assertNotFalse($taskCreationModel->create(array('project_id' => 1, 'title' => 'Task #'.$i))); + } + + $filter = new TaskStartsWithIdFilter(); + $filter->withQuery($query); + $filter->withValue(3); + $filter->apply(); + + $tasks = $query->findAll(); + $this->assertCount(1, $tasks); + $this->assertEquals('Task #3', $tasks[0]['title']); + } + + public function testEmptyResult() + { + $taskFinderModel = new TaskFinderModel($this->container); + $projectModel = new ProjectModel($this->container); + $taskCreationModel = new TaskCreationModel($this->container); + $query = $taskFinderModel->getExtendedQuery(); + + $this->assertEquals(1, $projectModel->create(array('name' => 'Test'))); + + for ($i = 1; $i <= 20; $i++) { + $this->assertNotFalse($taskCreationModel->create(array('project_id' => 1, 'title' => 'Task #'.$i))); + } + + $filter = new TaskStartsWithIdFilter(); + $filter->withQuery($query); + $filter->withValue(30); + $filter->apply(); + + $tasks = $query->findAll(); + $this->assertCount(0, $tasks); + } + + public function testWithTwoDigits() + { + $taskFinderModel = new TaskFinderModel($this->container); + $projectModel = new ProjectModel($this->container); + $taskCreationModel = new TaskCreationModel($this->container); + $query = $taskFinderModel->getExtendedQuery(); + + $this->assertEquals(1, $projectModel->create(array('name' => 'Test'))); + + for ($i = 1; $i <= 20; $i++) { + $this->assertNotFalse($taskCreationModel->create(array('project_id' => 1, 'title' => 'Task #'.$i))); + } + + $filter = new TaskStartsWithIdFilter(); + $filter->withQuery($query); + $filter->withValue(11); + $filter->apply(); + + $tasks = $query->findAll(); + $this->assertCount(1, $tasks); + $this->assertEquals('Task #11', $tasks[0]['title']); + } +} |