1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
<?php
require_once __DIR__.'/../../vendor/autoload.php';
abstract class BaseIntegrationTest 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 $groupName1 = 'My Group A';
protected $groupName2 = 'My Group B';
protected $groupId1;
protected $groupId2;
protected $username = 'test-user';
protected $userId;
public function setUp()
{
$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);
}
}
|