summaryrefslogtreecommitdiff
path: root/tests/units/Model/ActionTest.php
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2016-06-26 10:25:13 -0400
committerFrederic Guillot <fred@kanboard.net>2016-06-26 10:25:13 -0400
commit4a230d331ec220fc32a48525afb308af0d9787fa (patch)
tree514aa3d703155b7f97a2c77147c9fd74cef60f84 /tests/units/Model/ActionTest.php
parent922e0fb6de06a98774418612e0b0f75af72b6dbb (diff)
Added application and project roles validation for API procedure calls
Diffstat (limited to 'tests/units/Model/ActionTest.php')
-rw-r--r--tests/units/Model/ActionTest.php509
1 files changed, 0 insertions, 509 deletions
diff --git a/tests/units/Model/ActionTest.php b/tests/units/Model/ActionTest.php
deleted file mode 100644
index 5db18983..00000000
--- a/tests/units/Model/ActionTest.php
+++ /dev/null
@@ -1,509 +0,0 @@
-<?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 ActionTest 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 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);
- }
-}