| | <?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); |
| | } |
| | } |
| |
|