diff options
author | Frederic Guillot <fred@kanboard.net> | 2015-09-05 23:30:56 -0400 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2015-09-05 23:30:56 -0400 |
commit | 710f2c7bb046b43ec9878ae795a181101f6d7515 (patch) | |
tree | b62723b6b49c3b6bf2b3ca41a772f552464a9031 /tests/units/Action/TaskEmailTest.php | |
parent | 94b38dd94bd819168163003beec8ef693f9d9839 (diff) |
Improve unit tests
Diffstat (limited to 'tests/units/Action/TaskEmailTest.php')
-rw-r--r-- | tests/units/Action/TaskEmailTest.php | 149 |
1 files changed, 149 insertions, 0 deletions
diff --git a/tests/units/Action/TaskEmailTest.php b/tests/units/Action/TaskEmailTest.php new file mode 100644 index 00000000..d74e1af2 --- /dev/null +++ b/tests/units/Action/TaskEmailTest.php @@ -0,0 +1,149 @@ +<?php + +require_once __DIR__.'/../Base.php'; + +use Event\GenericEvent; +use Model\Task; +use Model\TaskCreation; +use Model\TaskFinder; +use Model\Project; +use Model\User; + +class TaskEmailTest extends Base +{ + public function testNoEmail() + { + $action = new Action\TaskEmail($this->container, 1, Task::EVENT_MOVE_COLUMN); + $action->setParam('column_id', 2); + $action->setParam('user_id', 1); + $action->setParam('subject', 'My email subject'); + + // We create a task in the first column + $tc = new TaskCreation($this->container); + $tf = new TaskFinder($this->container); + $p = new Project($this->container); + $u = new User($this->container); + + $this->assertEquals(1, $p->create(array('name' => 'test'))); + $this->assertEquals(1, $tc->create(array('title' => 'test', 'project_id' => 1, 'column_id' => 1))); + + // We create an event to move the task to the 2nd column + $event = array( + 'project_id' => 1, + 'task_id' => 1, + 'column_id' => 2, + ); + + // Email should be not be sent + $this->container['emailClient']->expects($this->never())->method('send'); + + // Our event should be executed + $this->assertFalse($action->execute(new GenericEvent($event))); + } + + public function testWrongColumn() + { + $action = new Action\TaskEmail($this->container, 1, Task::EVENT_MOVE_COLUMN); + $action->setParam('column_id', 2); + $action->setParam('user_id', 1); + $action->setParam('subject', 'My email subject'); + + // We create a task in the first column + $tc = new TaskCreation($this->container); + $tf = new TaskFinder($this->container); + $p = new Project($this->container); + $u = new User($this->container); + + $this->assertEquals(1, $p->create(array('name' => 'test'))); + $this->assertEquals(1, $tc->create(array('title' => 'test', 'project_id' => 1, 'column_id' => 1))); + + // We create an event to move the task to the 2nd column + $event = array( + 'project_id' => 1, + 'task_id' => 1, + 'column_id' => 3, + ); + + // Email should be not be sent + $this->container['emailClient']->expects($this->never())->method('send'); + + // Our event should be executed + $this->assertFalse($action->execute(new GenericEvent($event))); + } + + public function testMoveColumn() + { + $action = new Action\TaskEmail($this->container, 1, Task::EVENT_MOVE_COLUMN); + $action->setParam('column_id', 2); + $action->setParam('user_id', 1); + $action->setParam('subject', 'My email subject'); + + // We create a task in the first column + $tc = new TaskCreation($this->container); + $tf = new TaskFinder($this->container); + $p = new Project($this->container); + $u = new User($this->container); + + $this->assertEquals(1, $p->create(array('name' => 'test'))); + $this->assertEquals(1, $tc->create(array('title' => 'test', 'project_id' => 1, 'column_id' => 1))); + $this->assertTrue($u->update(array('id' => 1, 'email' => 'admin@localhost'))); + + // We create an event to move the task to the 2nd column + $event = array( + 'project_id' => 1, + 'task_id' => 1, + 'column_id' => 2, + ); + + // Email should be sent + $this->container['emailClient']->expects($this->once()) + ->method('send') + ->with( + $this->equalTo('admin@localhost'), + $this->equalTo('admin'), + $this->equalTo('My email subject'), + $this->stringContains('test') + ); + + // Our event should be executed + $this->assertTrue($action->execute(new GenericEvent($event))); + } + + public function testTaskClose() + { + $action = new Action\TaskEmail($this->container, 1, Task::EVENT_CLOSE); + $action->setParam('column_id', 2); + $action->setParam('user_id', 1); + $action->setParam('subject', 'My email subject'); + + // We create a task in the first column + $tc = new TaskCreation($this->container); + $tf = new TaskFinder($this->container); + $p = new Project($this->container); + $u = new User($this->container); + + $this->assertEquals(1, $p->create(array('name' => 'test'))); + $this->assertEquals(1, $tc->create(array('title' => 'test', 'project_id' => 1, 'column_id' => 1))); + $this->assertTrue($u->update(array('id' => 1, 'email' => 'admin@localhost'))); + + // We create an event + $event = array( + 'project_id' => 1, + 'task_id' => 1, + 'column_id' => 2, + ); + + // Email should be sent + $this->container['emailClient']->expects($this->once()) + ->method('send') + ->with( + $this->equalTo('admin@localhost'), + $this->equalTo('admin'), + $this->equalTo('My email subject'), + $this->stringContains('test') + ); + + // Our event should be executed + $this->assertTrue($action->execute(new GenericEvent($event))); + } +}
\ No newline at end of file |