Add new search attribute for swimlane

This commit is contained in:
Frederic Guillot
2015-07-18 11:33:51 -04:00
parent d75a0a9d45
commit dfd7972227
8 changed files with 138 additions and 25 deletions

View File

@@ -6,6 +6,31 @@ use Core\Lexer;
class LexerTest extends Base
{
public function testSwimlaneQuery()
{
$lexer = new Lexer;
$this->assertEquals(
array(array('match' => 'swimlane:', 'token' => 'T_SWIMLANE'), array('match' => 'Version 42', 'token' => 'T_STRING')),
$lexer->tokenize('swimlane:"Version 42"')
);
$this->assertEquals(
array(array('match' => 'swimlane:', 'token' => 'T_SWIMLANE'), array('match' => 'v3', 'token' => 'T_STRING')),
$lexer->tokenize('swimlane:v3')
);
$this->assertEquals(
array('T_SWIMLANE' => array('v3')),
$lexer->map($lexer->tokenize('swimlane:v3'))
);
$this->assertEquals(
array('T_SWIMLANE' => array('Version 42', 'v3')),
$lexer->map($lexer->tokenize('swimlane:"Version 42" swimlane:v3'))
);
}
public function testAssigneeQuery()
{
$lexer = new Lexer;

View File

@@ -9,6 +9,7 @@ use Model\TaskCreation;
use Model\DateParser;
use Model\Category;
use Model\Config;
use Model\Swimlane;
class TaskFilterTest extends Base
{
@@ -286,6 +287,64 @@ class TaskFilterTest extends Base
$this->assertEmpty($tasks);
}
public function testSearchWithSwimlane()
{
$p = new Project($this->container);
$tc = new TaskCreation($this->container);
$tf = new TaskFilter($this->container);
$s = new Swimlane($this->container);
$this->assertEquals(1, $p->create(array('name' => 'My project A')));
$this->assertEquals(1, $s->create(1, 'Version 1.1'));
$this->assertEquals(2, $s->create(1, 'Version 1.2'));
$this->assertNotFalse($tc->create(array('project_id' => 1, 'title' => 'task1', 'swimlane_id' => 1)));
$this->assertNotFalse($tc->create(array('project_id' => 1, 'title' => 'task2', 'swimlane_id' => 2)));
$this->assertNotFalse($tc->create(array('project_id' => 1, 'title' => 'task3', 'swimlane_id' => 0)));
$tf->search('swimlane:"Version 1.1"');
$tasks = $tf->findAll();
$this->assertNotEmpty($tasks);
$this->assertCount(1, $tasks);
$this->assertEquals('task1', $tasks[0]['title']);
$this->assertEquals('Version 1.1', $tasks[0]['swimlane_name']);
$tf->search('swimlane:"versioN 1.2"');
$tasks = $tf->findAll();
$this->assertNotEmpty($tasks);
$this->assertCount(1, $tasks);
$this->assertEquals('task2', $tasks[0]['title']);
$this->assertEquals('Version 1.2', $tasks[0]['swimlane_name']);
$tf->search('swimlane:"Default swimlane"');
$tasks = $tf->findAll();
$this->assertNotEmpty($tasks);
$this->assertCount(1, $tasks);
$this->assertEquals('task3', $tasks[0]['title']);
$this->assertEquals('Default swimlane', $tasks[0]['default_swimlane']);
$this->assertEquals('', $tasks[0]['swimlane_name']);
$tf->search('swimlane:default');
$tasks = $tf->findAll();
$this->assertNotEmpty($tasks);
$this->assertCount(1, $tasks);
$this->assertEquals('task3', $tasks[0]['title']);
$this->assertEquals('Default swimlane', $tasks[0]['default_swimlane']);
$this->assertEquals('', $tasks[0]['swimlane_name']);
$tf->search('swimlane:"Version 1.1" swimlane:"Version 1.2"');
$tasks = $tf->findAll();
$this->assertNotEmpty($tasks);
$this->assertCount(2, $tasks);
$this->assertEquals('task1', $tasks[0]['title']);
$this->assertEquals('Version 1.1', $tasks[0]['swimlane_name']);
$this->assertEquals('task2', $tasks[1]['title']);
$this->assertEquals('Version 1.2', $tasks[1]['swimlane_name']);
$tf->search('swimlane:"not found"');
$tasks = $tf->findAll();
$this->assertEmpty($tasks);
}
public function testSearchWithColumn()
{
$p = new Project($this->container);