|
|
<?php |
|
|
|
|
|
require_once __DIR__.'/../../vendor/autoload.php'; |
|
|
|
|
|
abstract class BaseProcedureTest extends PHPUnit\Framework\TestCase |
|
|
{ |
|
|
protected $app = null; |
|
|
protected $admin = null; |
|
|
protected $manager = null; |
|
|
protected $user = null; |
|
|
|
|
|
protected $adminUserId = 0; |
|
|
protected $managerUserId = 0; |
|
|
protected $userUserId = 0; |
|
|
|
|
|
protected $projectName = ''; |
|
|
protected $projectId = 0; |
|
|
protected $taskTitle = 'My task'; |
|
|
protected $taskId = 0; |
|
|
protected $subtaskId = 0; |
|
|
|
|
|
protected $groupName1 = 'My Group A'; |
|
|
protected $groupName2 = 'My Group B'; |
|
|
protected $groupId1; |
|
|
protected $groupId2; |
|
|
|
|
|
protected $username = 'test-user'; |
|
|
protected $userId; |
|
|
|
|
|
protected function setUp(): void |
|
|
{ |
|
|
$this->setUpAppClient(); |
|
|
$this->setUpAdminUser(); |
|
|
$this->setUpManagerUser(); |
|
|
$this->setUpStandardUser(); |
|
|
} |
|
|
|
|
|
public function setUpAppClient() |
|
|
{ |
|
|
$this->app = new JsonRPC\Client(API_URL); |
|
|
$this->app->authentication('jsonrpc', API_KEY); |
|
|
$this->app->getHttpClient()->withDebug()->withTimeout(10); |
|
|
} |
|
|
|
|
|
public function setUpAdminUser() |
|
|
{ |
|
|
$this->adminUserId = $this->getUserId('superuser'); |
|
|
|
|
|
if (! $this->adminUserId) { |
|
|
$this->adminUserId = $this->app->createUser('superuser', 'password', 'Admin User', 'user@localhost', 'app-admin'); |
|
|
$this->assertNotFalse($this->adminUserId); |
|
|
} |
|
|
|
|
|
$this->admin = new JsonRPC\Client(API_URL); |
|
|
$this->admin->authentication('superuser', 'password'); |
|
|
$this->admin->getHttpClient()->withDebug(); |
|
|
} |
|
|
|
|
|
public function setUpManagerUser() |
|
|
{ |
|
|
$this->managerUserId = $this->getUserId('manager'); |
|
|
|
|
|
if (! $this->managerUserId) { |
|
|
$this->managerUserId = $this->app->createUser('manager', 'password', 'Manager User', 'user@localhost', 'app-manager'); |
|
|
$this->assertNotFalse($this->managerUserId); |
|
|
} |
|
|
|
|
|
$this->manager = new JsonRPC\Client(API_URL); |
|
|
$this->manager->authentication('manager', 'password'); |
|
|
$this->manager->getHttpClient()->withDebug(); |
|
|
} |
|
|
|
|
|
public function setUpStandardUser() |
|
|
{ |
|
|
$this->userUserId = $this->getUserId('user'); |
|
|
|
|
|
if (! $this->userUserId) { |
|
|
$this->userUserId = $this->app->createUser('user', 'password', 'Standard User', 'user@localhost', 'app-user'); |
|
|
$this->assertNotFalse($this->userUserId); |
|
|
} |
|
|
|
|
|
$this->user = new JsonRPC\Client(API_URL); |
|
|
$this->user->authentication('user', 'password'); |
|
|
$this->user->getHttpClient()->withDebug(); |
|
|
} |
|
|
|
|
|
public function getUserId($username) |
|
|
{ |
|
|
$user = $this->app->getUserByName($username); |
|
|
|
|
|
if (! empty($user)) { |
|
|
return $user['id']; |
|
|
} |
|
|
|
|
|
return 0; |
|
|
} |
|
|
|
|
|
public function assertCreateTeamProject() |
|
|
{ |
|
|
$this->projectId = $this->app->createProject($this->projectName, 'Description'); |
|
|
$this->assertNotFalse($this->projectId); |
|
|
} |
|
|
|
|
|
public function assertCreateUser() |
|
|
{ |
|
|
$this->userId = $this->app->createUser($this->username, 'password'); |
|
|
$this->assertNotFalse($this->userId); |
|
|
} |
|
|
|
|
|
public function assertCreateGroups() |
|
|
{ |
|
|
$this->groupId1 = $this->app->createGroup($this->groupName1); |
|
|
$this->groupId2 = $this->app->createGroup($this->groupName2, 'External ID'); |
|
|
$this->assertNotFalse($this->groupId1); |
|
|
$this->assertNotFalse($this->groupId2); |
|
|
} |
|
|
|
|
|
public function assertCreateTask() |
|
|
{ |
|
|
$this->taskId = $this->app->createTask(array('title' => $this->taskTitle, 'project_id' => $this->projectId)); |
|
|
$this->assertNotFalse($this->taskId); |
|
|
} |
|
|
|
|
|
public function assertCreateSubtask() |
|
|
{ |
|
|
$this->subtaskId = $this->app->createSubtask(array( |
|
|
'task_id' => $this->taskId, |
|
|
'title' => 'subtask #1', |
|
|
)); |
|
|
|
|
|
$this->assertNotFalse($this->subtaskId); |
|
|
} |
|
|
} |
|
|
|