summaryrefslogtreecommitdiff
path: root/tests/units/Model/ActionModelTest.php
diff options
context:
space:
mode:
authori00171 <anton.delitsch@implema.se>2016-06-26 18:35:25 +0200
committeri00171 <anton.delitsch@implema.se>2016-06-26 18:35:25 +0200
commit47039d32c84ba699867920d2c3cb47a34b199b9d (patch)
tree4fbc2ec34889baeab00085e0509055dca7daee6a /tests/units/Model/ActionModelTest.php
parent911be6ed00c1ece5d9ef2c16e80899bb7bffad67 (diff)
parentc110dffefe259c13e60193fb81ebb9d4b79504de (diff)
Merge branch 'master' of https://github.com/fguillot/kanboard
Diffstat (limited to 'tests/units/Model/ActionModelTest.php')
-rw-r--r--tests/units/Model/ActionModelTest.php527
1 files changed, 527 insertions, 0 deletions
diff --git a/tests/units/Model/ActionModelTest.php b/tests/units/Model/ActionModelTest.php
new file mode 100644
index 00000000..4e21a999
--- /dev/null
+++ b/tests/units/Model/ActionModelTest.php
@@ -0,0 +1,527 @@
+<?php
+
+require_once __DIR__.'/../Base.php';
+
+use Kanboard\Model\ActionModel;
+use Kanboard\Model\ProjectModel;
+use Kanboard\Model\TaskModel;
+use Kanboard\Model\UserModel;
+use Kanboard\Model\ColumnModel;
+use Kanboard\Model\CategoryModel;
+use Kanboard\Model\ProjectUserRoleModel;
+use Kanboard\Core\Security\Role;
+
+class ActionModelTest extends Base
+{
+ public function testCreate()
+ {
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test')));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_CREATE,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorColumn',
+ 'params' => array('column_id' => 1, 'color_id' => 'red'),
+ )));
+ }
+
+ public function testRemove()
+ {
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test')));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_CREATE,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorColumn',
+ 'params' => array('column_id' => 1, 'color_id' => 'red'),
+ )));
+
+ $this->assertNotEmpty($actionModel->getById(1));
+ $this->assertTrue($actionModel->remove(1));
+ $this->assertEmpty($actionModel->getById(1));
+ }
+
+ public function testGetById()
+ {
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test')));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_CREATE,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorColumn',
+ 'params' => array('column_id' => 1, 'color_id' => 'red'),
+ )));
+
+ $action = $actionModel->getById(1);
+ $this->assertNotEmpty($action);
+ $this->assertEquals(1, $action['project_id']);
+ $this->assertEquals('\Kanboard\Action\TaskAssignColorColumn', $action['action_name']);
+ $this->assertEquals(TaskModel::EVENT_CREATE, $action['event_name']);
+ $this->assertEquals(array('column_id' => 1, 'color_id' => 'red'), $action['params']);
+ }
+
+ public function testGetProjectId()
+ {
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test')));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_CREATE,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorColumn',
+ 'params' => array('column_id' => 1, 'color_id' => 'red'),
+ )));
+
+ $this->assertEquals(1, $actionModel->getProjectId(1));
+ $this->assertSame(0, $actionModel->getProjectId(42));
+ }
+
+ public function testGetAll()
+ {
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
+ $this->assertEquals(2, $projectModel->create(array('name' => 'test2')));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_CREATE,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorColumn',
+ 'params' => array('column_id' => 1, 'color_id' => 'red'),
+ )));
+
+ $this->assertEquals(2, $actionModel->create(array(
+ 'project_id' => 2,
+ 'event_name' => TaskModel::EVENT_MOVE_COLUMN,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorColumn',
+ 'params' => array('column_id' => 6, 'color_id' => 'blue'),
+ )));
+
+ $actions = $actionModel->getAll();
+ $this->assertCount(2, $actions);
+
+ $this->assertEquals(1, $actions[0]['project_id']);
+ $this->assertEquals('\Kanboard\Action\TaskAssignColorColumn', $actions[0]['action_name']);
+ $this->assertEquals(TaskModel::EVENT_CREATE, $actions[0]['event_name']);
+ $this->assertEquals(array('column_id' => 1, 'color_id' => 'red'), $actions[0]['params']);
+
+ $this->assertEquals(2, $actions[1]['project_id']);
+ $this->assertEquals('\Kanboard\Action\TaskAssignColorColumn', $actions[1]['action_name']);
+ $this->assertEquals(TaskModel::EVENT_MOVE_COLUMN, $actions[1]['event_name']);
+ $this->assertEquals(array('column_id' => 6, 'color_id' => 'blue'), $actions[1]['params']);
+ }
+
+ public function testGetAllByProject()
+ {
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
+ $this->assertEquals(2, $projectModel->create(array('name' => 'test2')));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_CREATE,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorColumn',
+ 'params' => array('column_id' => 1, 'color_id' => 'red'),
+ )));
+
+ $this->assertEquals(2, $actionModel->create(array(
+ 'project_id' => 2,
+ 'event_name' => TaskModel::EVENT_MOVE_COLUMN,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorColumn',
+ 'params' => array('column_id' => 6, 'color_id' => 'blue'),
+ )));
+
+ $actions = $actionModel->getAllByProject(1);
+ $this->assertCount(1, $actions);
+
+ $this->assertEquals(1, $actions[0]['project_id']);
+ $this->assertEquals('\Kanboard\Action\TaskAssignColorColumn', $actions[0]['action_name']);
+ $this->assertEquals(TaskModel::EVENT_CREATE, $actions[0]['event_name']);
+ $this->assertEquals(array('column_id' => 1, 'color_id' => 'red'), $actions[0]['params']);
+
+
+ $actions = $actionModel->getAllByProject(2);
+ $this->assertCount(1, $actions);
+
+ $this->assertEquals(2, $actions[0]['project_id']);
+ $this->assertEquals('\Kanboard\Action\TaskAssignColorColumn', $actions[0]['action_name']);
+ $this->assertEquals(TaskModel::EVENT_MOVE_COLUMN, $actions[0]['event_name']);
+ $this->assertEquals(array('column_id' => 6, 'color_id' => 'blue'), $actions[0]['params']);
+ }
+
+ public function testGetAllByUser()
+ {
+ $projectModel = new ProjectModel($this->container);
+ $projectUserRoleModel = new ProjectUserRoleModel($this->container);
+ $userModel = new UserModel($this->container);
+ $actionModel = new ActionModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
+ $this->assertEquals(2, $projectModel->create(array('name' => 'test2')));
+ $this->assertEquals(3, $projectModel->create(array('name' => 'test4', 'is_active' => 0)));
+
+ $this->assertEquals(2, $userModel->create(array('username' => 'user1')));
+ $this->assertEquals(3, $userModel->create(array('username' => 'user2')));
+
+ $this->assertTrue($projectUserRoleModel->addUser(1, 2, Role::PROJECT_VIEWER));
+ $this->assertTrue($projectUserRoleModel->addUser(2, 3, Role::PROJECT_MANAGER));
+ $this->assertTrue($projectUserRoleModel->addUser(3, 3, Role::PROJECT_MANAGER));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_CREATE,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorColumn',
+ 'params' => array('column_id' => 1, 'color_id' => 'red'),
+ )));
+
+ $this->assertEquals(2, $actionModel->create(array(
+ 'project_id' => 2,
+ 'event_name' => TaskModel::EVENT_MOVE_COLUMN,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorColumn',
+ 'params' => array('column_id' => 6, 'color_id' => 'blue'),
+ )));
+
+ $this->assertEquals(3, $actionModel->create(array(
+ 'project_id' => 3,
+ 'event_name' => TaskModel::EVENT_MOVE_COLUMN,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorColumn',
+ 'params' => array('column_id' => 10, 'color_id' => 'green'),
+ )));
+
+ $actions = $actionModel->getAllByUser(1);
+ $this->assertCount(0, $actions);
+
+ $actions = $actionModel->getAllByUser(2);
+ $this->assertCount(1, $actions);
+
+ $this->assertEquals(1, $actions[0]['project_id']);
+ $this->assertEquals('\Kanboard\Action\TaskAssignColorColumn', $actions[0]['action_name']);
+ $this->assertEquals(TaskModel::EVENT_CREATE, $actions[0]['event_name']);
+ $this->assertEquals(array('column_id' => 1, 'color_id' => 'red'), $actions[0]['params']);
+
+ $actions = $actionModel->getAllByUser(3);
+ $this->assertCount(1, $actions);
+
+ $this->assertEquals(2, $actions[0]['project_id']);
+ $this->assertEquals('\Kanboard\Action\TaskAssignColorColumn', $actions[0]['action_name']);
+ $this->assertEquals(TaskModel::EVENT_MOVE_COLUMN, $actions[0]['event_name']);
+ $this->assertEquals(array('column_id' => 6, 'color_id' => 'blue'), $actions[0]['params']);
+ }
+
+ public function testDuplicateWithColumnAndColorParameter()
+ {
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
+ $this->assertEquals(2, $projectModel->create(array('name' => 'test2')));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_CREATE,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorColumn',
+ 'params' => array('column_id' => 1, 'color_id' => 'red'),
+ )));
+
+ $this->assertTrue($actionModel->duplicate(1, 2));
+
+ $actions = $actionModel->getAllByProject(2);
+ $this->assertCount(1, $actions);
+
+ $this->assertEquals(2, $actions[0]['project_id']);
+ $this->assertEquals('\Kanboard\Action\TaskAssignColorColumn', $actions[0]['action_name']);
+ $this->assertEquals(TaskModel::EVENT_CREATE, $actions[0]['event_name']);
+ $this->assertEquals(array('column_id' => 5, 'color_id' => 'red'), $actions[0]['params']);
+ }
+
+ public function testDuplicateWithColumnsParameter()
+ {
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
+ $this->assertEquals(2, $projectModel->create(array('name' => 'test2')));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_CREATE,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorColumn',
+ 'params' => array('src_column_id' => 1, 'dst_column_id' => 2, 'dest_column_id' => 3),
+ )));
+
+ $this->assertTrue($actionModel->duplicate(1, 2));
+
+ $actions = $actionModel->getAllByProject(2);
+ $this->assertCount(1, $actions);
+
+ $this->assertEquals(2, $actions[0]['project_id']);
+ $this->assertEquals('\Kanboard\Action\TaskAssignColorColumn', $actions[0]['action_name']);
+ $this->assertEquals(TaskModel::EVENT_CREATE, $actions[0]['event_name']);
+ $this->assertEquals(array('src_column_id' => 5, 'dst_column_id' => 6, 'dest_column_id' => 7), $actions[0]['params']);
+ }
+
+ public function testDuplicateWithColumnParameterNotfound()
+ {
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+ $columnModel = new ColumnModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
+ $this->assertEquals(2, $projectModel->create(array('name' => 'test2')));
+
+ $this->assertTrue($columnModel->update(2, 'My unique column'));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_CREATE,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorColumn',
+ 'params' => array('column_id' => 1, 'color_id' => 'red'),
+ )));
+
+ $this->assertEquals(2, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_MOVE_COLUMN,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorColumn',
+ 'params' => array('column_id' => 2, 'color_id' => 'green'),
+ )));
+
+ $this->assertTrue($actionModel->duplicate(1, 2));
+
+ $actions = $actionModel->getAllByProject(2);
+ $this->assertCount(1, $actions);
+
+ $this->assertEquals(2, $actions[0]['project_id']);
+ $this->assertEquals('\Kanboard\Action\TaskAssignColorColumn', $actions[0]['action_name']);
+ $this->assertEquals(TaskModel::EVENT_CREATE, $actions[0]['event_name']);
+ $this->assertEquals(array('column_id' => 5, 'color_id' => 'red'), $actions[0]['params']);
+ }
+
+ public function testDuplicateWithProjectParameter()
+ {
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
+ $this->assertEquals(2, $projectModel->create(array('name' => 'test2')));
+ $this->assertEquals(3, $projectModel->create(array('name' => 'test2')));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_CLOSE,
+ 'action_name' => '\Kanboard\Action\TaskDuplicateAnotherProject',
+ 'params' => array('column_id' => 1, 'project_id' => 3),
+ )));
+
+ $this->assertTrue($actionModel->duplicate(1, 2));
+
+ $actions = $actionModel->getAllByProject(2);
+ $this->assertCount(1, $actions);
+
+ $this->assertEquals(2, $actions[0]['project_id']);
+ $this->assertEquals('\Kanboard\Action\TaskDuplicateAnotherProject', $actions[0]['action_name']);
+ $this->assertEquals(TaskModel::EVENT_CLOSE, $actions[0]['event_name']);
+ $this->assertEquals(array('column_id' => 5, 'project_id' => 3), $actions[0]['params']);
+ }
+
+ public function testDuplicateWithProjectParameterIdenticalToDestination()
+ {
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
+ $this->assertEquals(2, $projectModel->create(array('name' => 'test2')));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_CLOSE,
+ 'action_name' => '\Kanboard\Action\TaskDuplicateAnotherProject',
+ 'params' => array('column_id' => 1, 'project_id' => 2),
+ )));
+
+ $this->assertTrue($actionModel->duplicate(1, 2));
+
+ $actions = $actionModel->getAllByProject(2);
+ $this->assertCount(0, $actions);
+ }
+
+ public function testDuplicateWithUserParameter()
+ {
+ $projectUserRoleModel = new ProjectUserRoleModel($this->container);
+ $userModel = new UserModel($this->container);
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
+ $this->assertEquals(2, $projectModel->create(array('name' => 'test2')));
+
+ $this->assertEquals(2, $userModel->create(array('username' => 'user1')));
+
+ $this->assertTrue($projectUserRoleModel->addUser(1, 2, Role::PROJECT_MEMBER));
+ $this->assertTrue($projectUserRoleModel->addUser(2, 2, Role::PROJECT_MEMBER));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_MOVE_COLUMN,
+ 'action_name' => '\Kanboard\Action\TaskAssignSpecificUser',
+ 'params' => array('column_id' => 1, 'user_id' => 2),
+ )));
+
+ $this->assertTrue($actionModel->duplicate(1, 2));
+
+ $actions = $actionModel->getAllByProject(2);
+ $this->assertCount(1, $actions);
+
+ $this->assertEquals(2, $actions[0]['project_id']);
+ $this->assertEquals('\Kanboard\Action\TaskAssignSpecificUser', $actions[0]['action_name']);
+ $this->assertEquals(TaskModel::EVENT_MOVE_COLUMN, $actions[0]['event_name']);
+ $this->assertEquals(array('column_id' => 5, 'user_id' => 2), $actions[0]['params']);
+ }
+
+ public function testDuplicateWithUserParameterButNotAssignable()
+ {
+ $projectUserRoleModel = new ProjectUserRoleModel($this->container);
+ $userModel = new UserModel($this->container);
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
+ $this->assertEquals(2, $projectModel->create(array('name' => 'test2')));
+
+ $this->assertEquals(2, $userModel->create(array('username' => 'user1')));
+
+ $this->assertTrue($projectUserRoleModel->addUser(1, 2, Role::PROJECT_MEMBER));
+ $this->assertTrue($projectUserRoleModel->addUser(2, 2, Role::PROJECT_VIEWER));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_MOVE_COLUMN,
+ 'action_name' => '\Kanboard\Action\TaskAssignSpecificUser',
+ 'params' => array('column_id' => 1, 'user_id' => 2),
+ )));
+
+ $this->assertTrue($actionModel->duplicate(1, 2));
+
+ $actions = $actionModel->getAllByProject(2);
+ $this->assertCount(0, $actions);
+ }
+
+ public function testDuplicateWithUserParameterButNotAvailable()
+ {
+ $projectUserRoleModel = new ProjectUserRoleModel($this->container);
+ $userModel = new UserModel($this->container);
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
+ $this->assertEquals(2, $projectModel->create(array('name' => 'test2')));
+
+ $this->assertEquals(2, $userModel->create(array('username' => 'user1')));
+
+ $this->assertTrue($projectUserRoleModel->addUser(1, 2, Role::PROJECT_MEMBER));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_MOVE_COLUMN,
+ 'action_name' => '\Kanboard\Action\TaskAssignSpecificUser',
+ 'params' => array('column_id' => 1, 'owner_id' => 2),
+ )));
+
+ $this->assertTrue($actionModel->duplicate(1, 2));
+
+ $actions = $actionModel->getAllByProject(2);
+ $this->assertCount(0, $actions);
+ }
+
+ public function testDuplicateWithCategoryParameter()
+ {
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+ $categoryModel = new CategoryModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
+ $this->assertEquals(2, $projectModel->create(array('name' => 'test2')));
+
+ $this->assertEquals(1, $categoryModel->create(array('name' => 'c1', 'project_id' => 1)));
+ $this->assertEquals(2, $categoryModel->create(array('name' => 'c1', 'project_id' => 2)));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_CREATE_UPDATE,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorCategory',
+ 'params' => array('column_id' => 1, 'category_id' => 1),
+ )));
+
+ $this->assertTrue($actionModel->duplicate(1, 2));
+
+ $actions = $actionModel->getAllByProject(2);
+ $this->assertCount(1, $actions);
+
+ $this->assertEquals(2, $actions[0]['project_id']);
+ $this->assertEquals('\Kanboard\Action\TaskAssignColorCategory', $actions[0]['action_name']);
+ $this->assertEquals(TaskModel::EVENT_CREATE_UPDATE, $actions[0]['event_name']);
+ $this->assertEquals(array('column_id' => 5, 'category_id' => 2), $actions[0]['params']);
+ }
+
+ public function testDuplicateWithCategoryParameterButDifferentName()
+ {
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+ $categoryModel = new CategoryModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
+ $this->assertEquals(2, $projectModel->create(array('name' => 'test2')));
+
+ $this->assertEquals(1, $categoryModel->create(array('name' => 'c1', 'project_id' => 1)));
+ $this->assertEquals(2, $categoryModel->create(array('name' => 'c2', 'project_id' => 2)));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_CREATE_UPDATE,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorCategory',
+ 'params' => array('column_id' => 1, 'category_id' => 1),
+ )));
+
+ $this->assertTrue($actionModel->duplicate(1, 2));
+
+ $actions = $actionModel->getAllByProject(2);
+ $this->assertCount(0, $actions);
+ }
+
+ public function testDuplicateWithCategoryParameterButNotFound()
+ {
+ $projectModel = new ProjectModel($this->container);
+ $actionModel = new ActionModel($this->container);
+ $categoryModel = new CategoryModel($this->container);
+
+ $this->assertEquals(1, $projectModel->create(array('name' => 'test1')));
+ $this->assertEquals(2, $projectModel->create(array('name' => 'test2')));
+
+ $this->assertEquals(1, $categoryModel->create(array('name' => 'c1', 'project_id' => 1)));
+
+ $this->assertEquals(1, $actionModel->create(array(
+ 'project_id' => 1,
+ 'event_name' => TaskModel::EVENT_CREATE_UPDATE,
+ 'action_name' => '\Kanboard\Action\TaskAssignColorCategory',
+ 'params' => array('column_id' => 1, 'category_id' => 1),
+ )));
+
+ $this->assertTrue($actionModel->duplicate(1, 2));
+
+ $actions = $actionModel->getAllByProject(2);
+ $this->assertCount(0, $actions);
+ }
+}