Skip to content

Commit b1b30b3

Browse files
authored
Merge branch 'master' into add_address_book
2 parents 8fac1ab + 84c959e commit b1b30b3

File tree

15 files changed

+957
-194
lines changed

15 files changed

+957
-194
lines changed
Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
<?php
2+
3+
namespace UnitTestFiles\Test;
4+
5+
use Route4Me\Constants;
6+
use Route4Me\Route4Me;
7+
use Route4Me\Members\Member;
8+
use Route4Me\V5\TeamManagement\Option;
9+
use Route4Me\V5\TeamManagement\Permission;
10+
use Route4Me\V5\TeamManagement\ResponseTeam;
11+
use Route4Me\V5\TeamManagement\TeamManagement;
12+
13+
final class TeamManagementUnitTests extends \PHPUnit\Framework\TestCase
14+
{
15+
public static ?int $member_id = null;
16+
public static ?int $owner_member_id = null;
17+
18+
public static function setUpBeforeClass() : void
19+
{
20+
Route4Me::setApiKey(Constants::API_KEY);
21+
}
22+
23+
public function testOwnerMemberMustExists() : void
24+
{
25+
$member = new Member();
26+
$res_members = $member->getUsers();
27+
28+
if (is_array($res_members) && isset($res_members['results'])) {
29+
foreach ($res_members['results'] as $key => $value) {
30+
if ($value['OWNER_MEMBER_ID'] == 0) {
31+
self::$owner_member_id = $value['member_id'];
32+
break;
33+
}
34+
}
35+
}
36+
$this->assertNotNull(self::$owner_member_id);
37+
}
38+
39+
public function testOptionCanBeCreateEmpty() : void
40+
{
41+
$this->assertInstanceOf(Option::class, new Option());
42+
}
43+
44+
public function testOptionCanBeCreateFromArray() : void
45+
{
46+
$this->assertInstanceOf(Option::class, new Option([
47+
'value' => '1',
48+
'title' => '2'
49+
]));
50+
}
51+
52+
public function testPermissionCanBeCreateEmpty() : void
53+
{
54+
$this->assertInstanceOf(Permission::class, new Permission());
55+
}
56+
57+
public function testPermissionCanBeCreateFromArray() : void
58+
{
59+
$this->assertInstanceOf(Permission::class, new Permission([
60+
'id' => '1',
61+
'options' => [
62+
[
63+
'value' => '2',
64+
'title' => '3'
65+
], [
66+
'value' => '4',
67+
'title' => '5'
68+
]
69+
]
70+
]));
71+
}
72+
73+
public function testResponseTeamCanBeCreateEmpty() : void
74+
{
75+
$this->assertInstanceOf(ResponseTeam::class, new ResponseTeam());
76+
}
77+
78+
public function testResponseTeamCanBeCreateFromArray() : void
79+
{
80+
$this->assertInstanceOf(ResponseTeam::class, new ResponseTeam([
81+
'member_id' => '1',
82+
'member_first_name' => '2'
83+
]));
84+
}
85+
86+
public function testTeamManagementCanBeCreateEmpty() : void
87+
{
88+
$this->assertInstanceOf(TeamManagement::class, new TeamManagement());
89+
}
90+
91+
public function testCreateMustReturnResponseTeam() : void
92+
{
93+
$team_mng = new TeamManagement();
94+
$res_team = $team_mng->create([
95+
'new_password' => '12345&Qwerty',
96+
'member_first_name' => 'Tusha I',
97+
'member_last_name' => 'Pupkindzes',
98+
'member_email' => '[email protected]',
99+
'member_type' => 'SUB_ACCOUNT_DRIVER',
100+
'OWNER_MEMBER_ID' => self::$owner_member_id
101+
]);
102+
103+
$this->assertInstanceOf(ResponseTeam::class, $res_team);
104+
$this->assertNotNull($res_team->member_id);
105+
$this->assertEquals($res_team->member_first_name, 'Tusha I');
106+
107+
self::$member_id = $res_team->member_id;
108+
}
109+
110+
public function testGetUserMustReturnResponseTeam() : void
111+
{
112+
$team_mng = new TeamManagement();
113+
$res_team = $team_mng->getUser(self::$member_id);
114+
115+
$this->assertInstanceOf(ResponseTeam::class, $res_team);
116+
$this->assertNotNull($res_team->member_id);
117+
$this->assertEquals($res_team->member_first_name, 'Tusha I');
118+
}
119+
120+
public function testGetUsersMustReturnArrayOfResponseTeam() : void
121+
{
122+
$team_mng = new TeamManagement();
123+
$result = $team_mng->getUsers();
124+
125+
$this->assertIsArray($result);
126+
if (count($result) > 0) {
127+
$this->assertInstanceOf(ResponseTeam::class, $result[0]);
128+
}
129+
}
130+
131+
public function testUpdateMustReturnUpdatedResponseTeam() : void
132+
{
133+
$team_mng = new TeamManagement();
134+
$res_team = $team_mng->update(self::$member_id, [
135+
'HIDE_ROUTED_ADDRESSES' => true,
136+
'member_type' => 'SUB_ACCOUNT_DISPATCHER'
137+
]);
138+
139+
$this->assertInstanceOf(ResponseTeam::class, $res_team);
140+
$this->assertEquals($res_team->HIDE_ROUTED_ADDRESSES, 1);
141+
$this->assertEquals($res_team->member_type, 'SUB_ACCOUNT_DISPATCHER');
142+
}
143+
144+
public function testDeleteMustReturnDeletedResponseTeam() : void
145+
{
146+
$team_mng = new TeamManagement();
147+
$res_team = $team_mng->delete(self::$member_id);
148+
149+
$this->assertInstanceOf(ResponseTeam::class, $res_team);
150+
$this->assertNotNull($res_team->member_id);
151+
$this->assertEquals($res_team->member_first_name, 'Tusha I');
152+
}
153+
154+
public function testBulkInsertMustAddNewMembers() : void
155+
{
156+
$team_mng = new TeamManagement();
157+
$result = $team_mng->bulkInsert([
158+
[
159+
'new_password' => '12345&Qwerty',
160+
'member_first_name' => 'Tusha I',
161+
'member_last_name' => 'Pupkindzes',
162+
'member_email' => '[email protected]',
163+
'member_type' => 'SUB_ACCOUNT_DRIVER',
164+
'OWNER_MEMBER_ID' => self::$owner_member_id
165+
], [
166+
'new_password' => '12345&Qwerty',
167+
'member_first_name' => 'Tusha II',
168+
'member_last_name' => 'Pupkindzes',
169+
'member_email' => '[email protected]',
170+
'member_type' => 'SUB_ACCOUNT_DRIVER',
171+
'OWNER_MEMBER_ID' => self::$owner_member_id
172+
]
173+
], [
174+
'conflicts' => 'overwrite'
175+
]);
176+
177+
$this->assertIsArray($result);
178+
}
179+
180+
public static function tearDownAfterClass() : void
181+
{
182+
sleep(5);
183+
184+
$team_mng = new TeamManagement();
185+
$result = $team_mng->getUsers();
186+
187+
if (is_array($result)) {
188+
foreach ($result as $key => $member) {
189+
if ($member->member_last_name == 'Pupkindzes') {
190+
$team_mng->delete($member->member_id);
191+
}
192+
}
193+
}
194+
}
195+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<?php
2+
3+
//**********************************************************************
4+
// Add multiple sub-users to the User account by sending the corresponding
5+
// body payload with the array of the sub-users' parameters
6+
//**********************************************************************
7+
8+
namespace Route4Me;
9+
10+
$root = realpath(dirname(__FILE__).'/../../');
11+
require $root.'/vendor/autoload.php';
12+
13+
use Exception;
14+
use Route4Me\Exception\ApiError;
15+
use Route4Me\Members\Member;
16+
use Route4Me\V5\TeamManagement\TeamManagement;
17+
18+
// Set the api key in the Route4me class
19+
Route4Me::setApiKey(Constants::API_KEY);
20+
21+
try {
22+
// get OWNER_MEMBER_ID
23+
$owner_member_id = null;
24+
$member = new Member();
25+
$res_members = $member->getUsers();
26+
27+
if (is_array($res_members) && isset($res_members['results'])) {
28+
foreach ($res_members['results'] as $key => $value) {
29+
if ($value['OWNER_MEMBER_ID'] == 0) {
30+
$owner_member_id = $value['member_id'];
31+
break;
32+
}
33+
}
34+
}
35+
36+
if (!$owner_member_id) {
37+
throw new Exception("Cannot find OWNER_MEMBER_ID.");
38+
}
39+
40+
// insert new sub-users
41+
$params = [
42+
[
43+
'new_password' => '12345&Qwerty',
44+
'member_first_name' => 'Tusha I',
45+
'member_last_name' => 'Pupkindzes',
46+
'member_email' => '[email protected]',
47+
'member_type' => 'SUB_ACCOUNT_DRIVER',
48+
'OWNER_MEMBER_ID' => $owner_member_id
49+
], [
50+
'new_password' => '12345&Qwerty',
51+
'member_first_name' => 'Tusha II',
52+
'member_last_name' => 'Pupkindzes',
53+
'member_email' => '[email protected]',
54+
'member_type' => 'SUB_ACCOUNT_DRIVER',
55+
'OWNER_MEMBER_ID' => $owner_member_id
56+
]
57+
];
58+
59+
$options = [
60+
'conflicts' => 'overwrite'
61+
];
62+
63+
$tm = new TeamManagement();
64+
$res = $tm->bulkInsert($params, $options);
65+
//print_r($res);
66+
echo "Insert two sub-users." . PHP_EOL;
67+
} catch (Exception | ApiError $e) {
68+
echo $e->getMessage() . PHP_EOL;
69+
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<?php
2+
3+
//**********************************************************************
4+
// Add a new sub-user to the User account
5+
//**********************************************************************
6+
7+
namespace Route4Me;
8+
9+
$root = realpath(dirname(__FILE__).'/../../');
10+
require $root.'/vendor/autoload.php';
11+
12+
use Exception;
13+
use Route4Me\Exception\ApiError;
14+
use Route4Me\Members\Member;
15+
use Route4Me\V5\TeamManagement\TeamManagement;
16+
17+
// Set the api key in the Route4me class
18+
Route4Me::setApiKey(Constants::API_KEY);
19+
20+
try {
21+
// get OWNER_MEMBER_ID
22+
$owner_member_id = null;
23+
$member = new Member();
24+
$res_members = $member->getUsers();
25+
26+
if (is_array($res_members) && isset($res_members['results'])) {
27+
foreach ($res_members['results'] as $key => $value) {
28+
if ($value['OWNER_MEMBER_ID'] == 0) {
29+
$owner_member_id = $value['member_id'];
30+
break;
31+
}
32+
}
33+
}
34+
35+
if (!$owner_member_id) {
36+
throw new Exception("Cannot find OWNER_MEMBER_ID.");
37+
}
38+
39+
// new sub-user
40+
$params = [
41+
'new_password' => '12345#Tusha',
42+
'member_first_name' => 'Tusha I',
43+
'member_last_name' => 'Pupkindzes',
44+
'member_email' => '[email protected]',
45+
'member_type' => 'SUB_ACCOUNT_DRIVER',
46+
'OWNER_MEMBER_ID' => $owner_member_id
47+
];
48+
49+
$tm = new TeamManagement();
50+
$res = $tm->create($params);
51+
print_r($res);
52+
} catch (Exception | ApiError $e) {
53+
echo $e->getMessage() . PHP_EOL;
54+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
//**********************************************************************
4+
// Delete the sub-user by specifying the path parameter ID.
5+
//**********************************************************************
6+
7+
namespace Route4Me;
8+
9+
$root = realpath(dirname(__FILE__).'/../../');
10+
require $root.'/vendor/autoload.php';
11+
12+
use Route4Me\Exception\ApiError;
13+
use Route4Me\V5\TeamManagement\TeamManagement;
14+
15+
// Set the api key in the Route4me class
16+
Route4Me::setApiKey(Constants::API_KEY);
17+
18+
$userId = 2567512;
19+
20+
try {
21+
$tm = new TeamManagement();
22+
$res = $tm->delete($userId);
23+
print_r($res);
24+
} catch (ApiError $e) {
25+
echo 'Cannot delete user with ID: ' . $userId . PHP_EOL;
26+
}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
<?php
2+
3+
//**********************************************************************
4+
// Get the sub-user by specifying the path parameter ID.
5+
//**********************************************************************
6+
7+
namespace Route4Me;
8+
9+
$root = realpath(dirname(__FILE__).'/../../');
10+
require $root.'/vendor/autoload.php';
11+
12+
use Route4Me\Exception\ApiError;
13+
use Route4Me\V5\TeamManagement\TeamManagement;
14+
15+
// Set the api key in the Route4me class
16+
Route4Me::setApiKey(Constants::API_KEY);
17+
18+
$userId = 2565363;
19+
20+
try {
21+
$tm = new TeamManagement();
22+
$res = $tm->getUser($userId);
23+
print_r($res);
24+
} catch (ApiError $e) {
25+
echo 'Cannot get user with ID: ' . $userId . PHP_EOL;
26+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
<?php
2+
3+
//**********************************************************************
4+
// View all existing sub-users associated with the Member’s account.
5+
//**********************************************************************
6+
7+
namespace Route4Me;
8+
9+
$root = realpath(dirname(__FILE__).'/../../');
10+
require $root.'/vendor/autoload.php';
11+
12+
use Route4Me\Exception\ApiError;
13+
use Route4Me\V5\TeamManagement\TeamManagement;
14+
15+
// Set the api key in the Route4me class
16+
Route4Me::setApiKey(Constants::API_KEY);
17+
18+
try {
19+
$tm = new TeamManagement();
20+
$res = $tm->getUsers();
21+
print_r($res);
22+
} catch (ApiError $e) {
23+
echo $e->getMessage() . PHP_EOL;
24+
}

0 commit comments

Comments
 (0)