@@ -9,212 +9,212 @@ |
||
9 | 9 | |
10 | 10 | class OptimizationProblemParamsUnitTests extends \PHPUnit\Framework\TestCase |
11 | 11 | { |
12 | - public static $routeParameters = null; |
|
13 | - public static $addresses = []; |
|
14 | - |
|
15 | - public static function setUpBeforeClass() |
|
16 | - { |
|
17 | - //region Addresses |
|
18 | - self::$addresses[] = Address::fromArray([ |
|
19 | - 'address' => '11497 Columbia Park Dr W, Jacksonville, FL 32258', |
|
20 | - 'is_depot' => true, |
|
21 | - 'lat' => 30.159341812134, |
|
22 | - 'lng' => -81.538619995117, |
|
23 | - 'time' => 300, |
|
24 | - 'time_window_start' => 28800, |
|
25 | - 'time_window_end' => 32400, |
|
26 | - ]); |
|
27 | - |
|
28 | - self::$addresses[] = Address::fromArray([ |
|
29 | - 'address' => '214 Edgewater Branch Drive 32259', |
|
30 | - 'lat' => 30.103567123413, |
|
31 | - 'lng' => -81.595352172852, |
|
32 | - 'time' => 300, |
|
33 | - 'time_window_start' => 36000, |
|
34 | - 'time_window_end' => 37200, |
|
35 | - ]); |
|
36 | - |
|
37 | - self::$addresses[] = Address::fromArray([ |
|
38 | - 'address' => '756 eagle point dr 32092', |
|
39 | - 'lat' => 30.046422958374, |
|
40 | - 'lng' => -81.508758544922, |
|
41 | - 'time' => 300, |
|
42 | - 'time_window_start' => 39600, |
|
43 | - 'time_window_end' => 41400, |
|
44 | - ]); |
|
45 | - //endregion |
|
46 | - |
|
47 | - self::$routeParameters = RouteParameters::fromArray([ |
|
48 | - 'is_upload' => false, |
|
49 | - 'rt' => false, |
|
50 | - 'route_name' => 'Saturday 25th of July 2020 04 => 00 => 00 AM UTC', |
|
51 | - 'route_date' => 1595635200, |
|
52 | - 'route_time' => 25200, |
|
53 | - 'disable_optimization' => false, |
|
54 | - 'optimize' => 'Time', |
|
55 | - 'lock_last' => false, |
|
56 | - 'vehicle_capacity' => null, |
|
57 | - 'vehicle_max_cargo_weight' => null, |
|
58 | - 'vehicle_max_cargo_volume' => null, |
|
59 | - 'vehicle_max_distance_mi' => null, |
|
60 | - 'subtour_max_revenue' => null, |
|
61 | - 'distance_unit' => 'mi', |
|
62 | - 'travel_mode' => 'Driving', |
|
63 | - 'avoid' => '', |
|
64 | - 'avoidance_zones' => [], |
|
65 | - 'vehicle_id' => null, |
|
66 | - 'driver_id' => null, |
|
67 | - 'dev_lat' => null, |
|
68 | - 'dev_lng' => null, |
|
69 | - 'route_max_duration' => 86399, |
|
70 | - 'route_email' => null, |
|
71 | - 'store_route' => true, |
|
72 | - 'metric' => 4, |
|
73 | - 'algorithm_type' => 1, |
|
74 | - 'member_id' => 444333, |
|
75 | - 'ip' => 199911333, |
|
76 | - 'dm' => 12, |
|
77 | - 'dirm' => 10, |
|
78 | - 'parts' => 10, |
|
79 | - 'parts_min' => 1, |
|
80 | - 'device_id' => null, |
|
81 | - 'device_type' => 'web', |
|
82 | - 'first_drive_then_wait_between_stops' => false, |
|
83 | - 'has_trailer' => false, |
|
84 | - 'trailer_weight_t' => null, |
|
85 | - 'limited_weight_t' => null, |
|
86 | - 'weight_per_axle_t' => null, |
|
87 | - 'truck_height' => null, |
|
88 | - 'truck_width' => null, |
|
89 | - 'truck_length' => null, |
|
90 | - 'truck_hazardous_goods' => '', |
|
91 | - 'truck_axles' => 0, |
|
92 | - 'truck_toll_road_usage' => null, |
|
93 | - 'truck_avoid_ferries' => null, |
|
94 | - 'truck_hwy_only' => null, |
|
95 | - 'truck_lcv' => null, |
|
96 | - 'truck_borders' => null, |
|
97 | - 'truck_side_street_adherence' => null, |
|
98 | - 'truck_config' => null, |
|
99 | - 'truck_dim_unit' => null, |
|
100 | - 'truck_type' => null, |
|
101 | - 'truck_weight' => 0, |
|
102 | - 'optimization_quality' => 1, |
|
103 | - 'override_addresses' => [], |
|
104 | - 'max_tour_size' => null, |
|
105 | - 'min_tour_size' => 0, |
|
106 | - 'uturn' => 1, |
|
107 | - 'leftturn' => 1, |
|
108 | - 'rightturn' => 1, |
|
109 | - 'route_time_multiplier' => null, |
|
110 | - 'route_service_time_multiplier' => null, |
|
111 | - 'optimization_engine' => '2', |
|
112 | - 'is_dynamic_start_time' => false |
|
113 | - ]); |
|
114 | - } |
|
115 | - |
|
116 | - public function testFromArray() |
|
117 | - { |
|
118 | - $routeParams = self::$routeParameters; |
|
119 | - $optParams = OptimizationProblemParams::fromArray([ |
|
120 | - 'addresses' => self::$addresses, |
|
121 | - 'parameters' => $routeParams |
|
122 | - ]); |
|
123 | - |
|
124 | - $this->assertNotNull($optParams); |
|
125 | - $this->assertContainsOnlyInstancesOf(OptimizationProblemParams::class, [$optParams]); |
|
126 | - } |
|
127 | - |
|
128 | - public function testWithoutParameters() |
|
129 | - { |
|
130 | - $this->expectException(BadParam::class); |
|
131 | - |
|
132 | - OptimizationProblemParams::fromArray([ |
|
133 | - 'addresses' => self::$addresses, |
|
134 | - ]); |
|
135 | - } |
|
136 | - |
|
137 | - public function testRedefineRedirectParam() |
|
138 | - { |
|
139 | - $optimizationParameters = OptimizationProblemParams::fromArray([ |
|
140 | - 'addresses' => self::$addresses, |
|
141 | - 'parameters' => self::$routeParameters, |
|
142 | - 'redirect' => false, |
|
143 | - ]); |
|
144 | - |
|
145 | - $this->assertObjectHasAttribute('redirect', $optimizationParameters); |
|
146 | - $this->assertFalse($optimizationParameters->redirect); |
|
147 | - } |
|
148 | - |
|
149 | - public function testSetParameters() |
|
150 | - { |
|
151 | - $optimizationParameters = new OptimizationProblemParams(); |
|
152 | - |
|
153 | - $optimizationParameters->parameters = self::$routeParameters; |
|
154 | - |
|
155 | - $this->assertObjectHasAttribute('parameters', $optimizationParameters); |
|
156 | - } |
|
157 | - |
|
158 | - public function testAddAddress() |
|
159 | - { |
|
160 | - $optimizationParameters = new OptimizationProblemParams(); |
|
161 | - |
|
162 | - $optimizationParameters->addAddress(self::$addresses[0]); |
|
163 | - |
|
164 | - $address = $optimizationParameters->addresses[0]; |
|
165 | - |
|
166 | - $this->assertContainsOnlyInstancesOf(Address::class, [$address]); |
|
167 | - $this->assertEquals(self::$addresses[0],$optimizationParameters->addresses[0]); |
|
168 | - } |
|
169 | - |
|
170 | - public function testGetAddressesArray() |
|
171 | - { |
|
172 | - $optimizationParameters = new OptimizationProblemParams(); |
|
173 | - |
|
174 | - $optimizationParameters->addresses = self::$addresses; |
|
175 | - |
|
176 | - $addresses = $optimizationParameters->getAddressesArray(); |
|
177 | - |
|
178 | - $firstAddress = Address::fromArray( |
|
179 | - $addresses[0] |
|
180 | - ); |
|
181 | - |
|
182 | - $this->assertNotNull($addresses); |
|
183 | - $this->assertTrue(sizeof($addresses)>0); |
|
184 | - $this->assertContainsOnlyInstancesOf(Address::class, [$firstAddress]); |
|
185 | - } |
|
186 | - |
|
187 | - public function testGetParametersArray() |
|
188 | - { |
|
189 | - $optimizationParameters = new OptimizationProblemParams(); |
|
190 | - |
|
191 | - $optimizationParameters->parameters = self::$routeParameters; |
|
192 | - |
|
193 | - $routeParameters = RouteParameters::fromArray( |
|
194 | - $optimizationParameters->getParametersArray() |
|
195 | - ); |
|
196 | - |
|
197 | - $this->assertNotNull($optimizationParameters); |
|
198 | - $this->assertContainsOnlyInstancesOf(RouteParameters::class, [$routeParameters]); |
|
199 | - } |
|
200 | - |
|
201 | - public function testSetAddresses() |
|
202 | - { |
|
203 | - $optimizationParameters = new OptimizationProblemParams(); |
|
12 | + public static $routeParameters = null; |
|
13 | + public static $addresses = []; |
|
14 | + |
|
15 | + public static function setUpBeforeClass() |
|
16 | + { |
|
17 | + //region Addresses |
|
18 | + self::$addresses[] = Address::fromArray([ |
|
19 | + 'address' => '11497 Columbia Park Dr W, Jacksonville, FL 32258', |
|
20 | + 'is_depot' => true, |
|
21 | + 'lat' => 30.159341812134, |
|
22 | + 'lng' => -81.538619995117, |
|
23 | + 'time' => 300, |
|
24 | + 'time_window_start' => 28800, |
|
25 | + 'time_window_end' => 32400, |
|
26 | + ]); |
|
27 | + |
|
28 | + self::$addresses[] = Address::fromArray([ |
|
29 | + 'address' => '214 Edgewater Branch Drive 32259', |
|
30 | + 'lat' => 30.103567123413, |
|
31 | + 'lng' => -81.595352172852, |
|
32 | + 'time' => 300, |
|
33 | + 'time_window_start' => 36000, |
|
34 | + 'time_window_end' => 37200, |
|
35 | + ]); |
|
36 | + |
|
37 | + self::$addresses[] = Address::fromArray([ |
|
38 | + 'address' => '756 eagle point dr 32092', |
|
39 | + 'lat' => 30.046422958374, |
|
40 | + 'lng' => -81.508758544922, |
|
41 | + 'time' => 300, |
|
42 | + 'time_window_start' => 39600, |
|
43 | + 'time_window_end' => 41400, |
|
44 | + ]); |
|
45 | + //endregion |
|
46 | + |
|
47 | + self::$routeParameters = RouteParameters::fromArray([ |
|
48 | + 'is_upload' => false, |
|
49 | + 'rt' => false, |
|
50 | + 'route_name' => 'Saturday 25th of July 2020 04 => 00 => 00 AM UTC', |
|
51 | + 'route_date' => 1595635200, |
|
52 | + 'route_time' => 25200, |
|
53 | + 'disable_optimization' => false, |
|
54 | + 'optimize' => 'Time', |
|
55 | + 'lock_last' => false, |
|
56 | + 'vehicle_capacity' => null, |
|
57 | + 'vehicle_max_cargo_weight' => null, |
|
58 | + 'vehicle_max_cargo_volume' => null, |
|
59 | + 'vehicle_max_distance_mi' => null, |
|
60 | + 'subtour_max_revenue' => null, |
|
61 | + 'distance_unit' => 'mi', |
|
62 | + 'travel_mode' => 'Driving', |
|
63 | + 'avoid' => '', |
|
64 | + 'avoidance_zones' => [], |
|
65 | + 'vehicle_id' => null, |
|
66 | + 'driver_id' => null, |
|
67 | + 'dev_lat' => null, |
|
68 | + 'dev_lng' => null, |
|
69 | + 'route_max_duration' => 86399, |
|
70 | + 'route_email' => null, |
|
71 | + 'store_route' => true, |
|
72 | + 'metric' => 4, |
|
73 | + 'algorithm_type' => 1, |
|
74 | + 'member_id' => 444333, |
|
75 | + 'ip' => 199911333, |
|
76 | + 'dm' => 12, |
|
77 | + 'dirm' => 10, |
|
78 | + 'parts' => 10, |
|
79 | + 'parts_min' => 1, |
|
80 | + 'device_id' => null, |
|
81 | + 'device_type' => 'web', |
|
82 | + 'first_drive_then_wait_between_stops' => false, |
|
83 | + 'has_trailer' => false, |
|
84 | + 'trailer_weight_t' => null, |
|
85 | + 'limited_weight_t' => null, |
|
86 | + 'weight_per_axle_t' => null, |
|
87 | + 'truck_height' => null, |
|
88 | + 'truck_width' => null, |
|
89 | + 'truck_length' => null, |
|
90 | + 'truck_hazardous_goods' => '', |
|
91 | + 'truck_axles' => 0, |
|
92 | + 'truck_toll_road_usage' => null, |
|
93 | + 'truck_avoid_ferries' => null, |
|
94 | + 'truck_hwy_only' => null, |
|
95 | + 'truck_lcv' => null, |
|
96 | + 'truck_borders' => null, |
|
97 | + 'truck_side_street_adherence' => null, |
|
98 | + 'truck_config' => null, |
|
99 | + 'truck_dim_unit' => null, |
|
100 | + 'truck_type' => null, |
|
101 | + 'truck_weight' => 0, |
|
102 | + 'optimization_quality' => 1, |
|
103 | + 'override_addresses' => [], |
|
104 | + 'max_tour_size' => null, |
|
105 | + 'min_tour_size' => 0, |
|
106 | + 'uturn' => 1, |
|
107 | + 'leftturn' => 1, |
|
108 | + 'rightturn' => 1, |
|
109 | + 'route_time_multiplier' => null, |
|
110 | + 'route_service_time_multiplier' => null, |
|
111 | + 'optimization_engine' => '2', |
|
112 | + 'is_dynamic_start_time' => false |
|
113 | + ]); |
|
114 | + } |
|
115 | + |
|
116 | + public function testFromArray() |
|
117 | + { |
|
118 | + $routeParams = self::$routeParameters; |
|
119 | + $optParams = OptimizationProblemParams::fromArray([ |
|
120 | + 'addresses' => self::$addresses, |
|
121 | + 'parameters' => $routeParams |
|
122 | + ]); |
|
123 | + |
|
124 | + $this->assertNotNull($optParams); |
|
125 | + $this->assertContainsOnlyInstancesOf(OptimizationProblemParams::class, [$optParams]); |
|
126 | + } |
|
127 | + |
|
128 | + public function testWithoutParameters() |
|
129 | + { |
|
130 | + $this->expectException(BadParam::class); |
|
131 | + |
|
132 | + OptimizationProblemParams::fromArray([ |
|
133 | + 'addresses' => self::$addresses, |
|
134 | + ]); |
|
135 | + } |
|
136 | + |
|
137 | + public function testRedefineRedirectParam() |
|
138 | + { |
|
139 | + $optimizationParameters = OptimizationProblemParams::fromArray([ |
|
140 | + 'addresses' => self::$addresses, |
|
141 | + 'parameters' => self::$routeParameters, |
|
142 | + 'redirect' => false, |
|
143 | + ]); |
|
144 | + |
|
145 | + $this->assertObjectHasAttribute('redirect', $optimizationParameters); |
|
146 | + $this->assertFalse($optimizationParameters->redirect); |
|
147 | + } |
|
148 | + |
|
149 | + public function testSetParameters() |
|
150 | + { |
|
151 | + $optimizationParameters = new OptimizationProblemParams(); |
|
152 | + |
|
153 | + $optimizationParameters->parameters = self::$routeParameters; |
|
154 | + |
|
155 | + $this->assertObjectHasAttribute('parameters', $optimizationParameters); |
|
156 | + } |
|
157 | + |
|
158 | + public function testAddAddress() |
|
159 | + { |
|
160 | + $optimizationParameters = new OptimizationProblemParams(); |
|
161 | + |
|
162 | + $optimizationParameters->addAddress(self::$addresses[0]); |
|
163 | + |
|
164 | + $address = $optimizationParameters->addresses[0]; |
|
165 | + |
|
166 | + $this->assertContainsOnlyInstancesOf(Address::class, [$address]); |
|
167 | + $this->assertEquals(self::$addresses[0],$optimizationParameters->addresses[0]); |
|
168 | + } |
|
169 | + |
|
170 | + public function testGetAddressesArray() |
|
171 | + { |
|
172 | + $optimizationParameters = new OptimizationProblemParams(); |
|
173 | + |
|
174 | + $optimizationParameters->addresses = self::$addresses; |
|
175 | + |
|
176 | + $addresses = $optimizationParameters->getAddressesArray(); |
|
177 | + |
|
178 | + $firstAddress = Address::fromArray( |
|
179 | + $addresses[0] |
|
180 | + ); |
|
181 | + |
|
182 | + $this->assertNotNull($addresses); |
|
183 | + $this->assertTrue(sizeof($addresses)>0); |
|
184 | + $this->assertContainsOnlyInstancesOf(Address::class, [$firstAddress]); |
|
185 | + } |
|
186 | + |
|
187 | + public function testGetParametersArray() |
|
188 | + { |
|
189 | + $optimizationParameters = new OptimizationProblemParams(); |
|
190 | + |
|
191 | + $optimizationParameters->parameters = self::$routeParameters; |
|
192 | + |
|
193 | + $routeParameters = RouteParameters::fromArray( |
|
194 | + $optimizationParameters->getParametersArray() |
|
195 | + ); |
|
196 | + |
|
197 | + $this->assertNotNull($optimizationParameters); |
|
198 | + $this->assertContainsOnlyInstancesOf(RouteParameters::class, [$routeParameters]); |
|
199 | + } |
|
200 | + |
|
201 | + public function testSetAddresses() |
|
202 | + { |
|
203 | + $optimizationParameters = new OptimizationProblemParams(); |
|
204 | 204 | |
205 | - $optimizationParameters->setAddresses(self::$addresses); |
|
205 | + $optimizationParameters->setAddresses(self::$addresses); |
|
206 | 206 | |
207 | - $this->assertEquals(self::$addresses,$optimizationParameters->addresses); |
|
207 | + $this->assertEquals(self::$addresses,$optimizationParameters->addresses); |
|
208 | 208 | |
209 | - $address = $optimizationParameters->addresses[0]; |
|
209 | + $address = $optimizationParameters->addresses[0]; |
|
210 | 210 | |
211 | - $this->assertContainsOnlyInstancesOf(Address::class, [$address]); |
|
211 | + $this->assertContainsOnlyInstancesOf(Address::class, [$address]); |
|
212 | 212 | |
213 | - } |
|
213 | + } |
|
214 | 214 | |
215 | - public static function tearDownAfterClass() |
|
216 | - { |
|
217 | - self::$addresses[] = null; |
|
218 | - self::$routeParameters = null; |
|
219 | - } |
|
215 | + public static function tearDownAfterClass() |
|
216 | + { |
|
217 | + self::$addresses[] = null; |
|
218 | + self::$routeParameters = null; |
|
219 | + } |
|
220 | 220 | } |
221 | 221 | \ No newline at end of file |
@@ -13,425 +13,425 @@ |
||
13 | 13 | |
14 | 14 | class UserTests extends \PHPUnit\Framework\TestCase |
15 | 15 | { |
16 | - public static $createdMembers=[]; |
|
17 | - |
|
18 | - public static function setUpBeforeClass() |
|
19 | - { |
|
20 | - Route4Me::setApiKey(Constants::API_KEY); |
|
21 | - $date = new \DateTime(); |
|
22 | - |
|
23 | - $params = Member::fromArray([ |
|
24 | - 'HIDE_ROUTED_ADDRESSES' => 'FALSE', |
|
25 | - 'member_phone' => '571-259-5939', |
|
26 | - 'member_zipcode' => '22102', |
|
27 | - 'route_count' => null, |
|
28 | - 'member_email' => 'regression.autotests+'.$date->getTimestamp().'@gmail.com', |
|
29 | - 'HIDE_VISITED_ADDRESSES' => 'FALSE', |
|
30 | - 'READONLY_USER' => 'FALSE', |
|
31 | - 'member_type' => 'SUB_ACCOUNT_DRIVER', |
|
32 | - 'date_of_birth' => '1994-10-01', |
|
33 | - 'member_first_name' => 'Clay', |
|
34 | - 'member_password' => '123456', |
|
35 | - 'HIDE_NONFUTURE_ROUTES' => 'FALSE', |
|
36 | - 'member_last_name' => 'Abraham', |
|
37 | - 'SHOW_ALL_VEHICLES' => 'FALSE', |
|
38 | - 'SHOW_ALL_DRIVERS' => 'FALSE', |
|
39 | - ]); |
|
40 | - |
|
41 | - $member = new Member(); |
|
42 | - |
|
43 | - $response = $member->createMember($params); |
|
44 | - |
|
45 | - self::assertNotNull($response); |
|
46 | - self::assertInstanceOf( |
|
47 | - MemberResponseV4::class, |
|
48 | - MemberResponseV4::fromArray($response) |
|
49 | - ); |
|
50 | - |
|
51 | - self::$createdMembers[] = MemberResponseV4::fromArray($response); |
|
52 | - } |
|
53 | - |
|
54 | - public function testFromArray() |
|
55 | - { |
|
56 | - $memberResponseV4 = MemberResponseV4::fromArray([ |
|
57 | - 'member_id' => '18154', |
|
58 | - 'OWNER_MEMBER_ID' => '0', |
|
59 | - 'member_type' => 'PRIMARY_ACCOUNT', |
|
60 | - 'member_first_name' => 'Routeme', |
|
61 | - 'member_last_name' => 'QA', |
|
62 | - 'member_email' => '[email protected]', |
|
63 | - 'preferred_units' => 'MI', |
|
64 | - 'preferred_language' => 'en', |
|
65 | - 'HIDE_ROUTED_ADDRESSES' => 'FALSE', |
|
66 | - 'HIDE_VISITED_ADDRESSES' => 'FALSE', |
|
67 | - 'HIDE_NONFUTURE_ROUTES' => 'FALSE', |
|
68 | - 'SHOW_ALL_DRIVERS' => 'FALSE', |
|
69 | - 'SHOW_ALL_VEHICLES' => '0', |
|
70 | - 'READONLY_USER' => 'FALSE', |
|
71 | - 'member_phone' => null, |
|
72 | - 'member_zipcode' => '18002', |
|
73 | - 'timezone' => 'US\/Arizona', |
|
74 | - 'date_of_birth' => null, |
|
75 | - 'user_reg_state_id' => null, |
|
76 | - 'user_reg_country_id' => null, |
|
77 | - 'member_picture' => 'https => \/\/apps-static.borea.com\/uploads\/44444444444444444444444444444444\/profile_77777777777777777777777777777777.png', |
|
78 | - 'level' => 0, |
|
79 | - 'custom_data' => [ |
|
80 | - 'animal' => 'lion', |
|
81 | - 'bird' => 'eagle' |
|
82 | - ], |
|
83 | - 'api_key' => '11111111111111111111111111111111' |
|
84 | - ]); |
|
85 | - |
|
86 | - $this->assertEquals('18154', $memberResponseV4->member_id); |
|
87 | - $this->assertEquals('0', $memberResponseV4->OWNER_MEMBER_ID); |
|
88 | - $this->assertEquals('PRIMARY_ACCOUNT', $memberResponseV4->member_type); |
|
89 | - $this->assertEquals('Routeme', $memberResponseV4->member_first_name); |
|
90 | - $this->assertEquals('QA', $memberResponseV4->member_last_name); |
|
91 | - $this->assertEquals('[email protected]', $memberResponseV4->member_email); |
|
92 | - $this->assertEquals('MI', $memberResponseV4->preferred_units); |
|
93 | - $this->assertEquals('en', $memberResponseV4->preferred_language); |
|
94 | - $this->assertEquals('FALSE', $memberResponseV4->HIDE_ROUTED_ADDRESSES); |
|
95 | - $this->assertEquals('FALSE', $memberResponseV4->HIDE_VISITED_ADDRESSES); |
|
96 | - $this->assertEquals('FALSE', $memberResponseV4->HIDE_NONFUTURE_ROUTES); |
|
97 | - $this->assertEquals('FALSE', $memberResponseV4->SHOW_ALL_DRIVERS); |
|
98 | - $this->assertEquals('0', $memberResponseV4->SHOW_ALL_VEHICLES); |
|
99 | - $this->assertEquals('FALSE', $memberResponseV4->READONLY_USER); |
|
100 | - $this->assertEquals(null, $memberResponseV4->member_phone); |
|
101 | - $this->assertEquals('18002', $memberResponseV4->member_zipcode); |
|
102 | - $this->assertEquals('US\/Arizona', $memberResponseV4->timezone); |
|
103 | - $this->assertEquals(null, $memberResponseV4->date_of_birth); |
|
104 | - |
|
105 | - $this->assertEquals(null, $memberResponseV4->user_reg_state_id); |
|
106 | - $this->assertEquals(null, $memberResponseV4->user_reg_country_id); |
|
107 | - $this->assertEquals( |
|
108 | - 'https => \/\/apps-static.borea.com\/uploads\/44444444444444444444444444444444\/profile_77777777777777777777777777777777.png', |
|
109 | - $memberResponseV4->member_picture |
|
110 | - ); |
|
111 | - $this->assertEquals(0, $memberResponseV4->level); |
|
112 | - $this->assertEquals( |
|
113 | - [ |
|
114 | - 'animal' => 'lion', |
|
115 | - 'bird' => 'eagle' |
|
116 | - ], |
|
117 | - $memberResponseV4->custom_data); |
|
118 | - $this->assertEquals('11111111111111111111111111111111', $memberResponseV4->api_key); |
|
119 | - |
|
120 | - } |
|
121 | - |
|
122 | - public function testToArray() |
|
123 | - { |
|
124 | - $memberResponseV4 = MemberResponseV4::fromArray([ |
|
125 | - 'member_id' => '18154', |
|
126 | - 'OWNER_MEMBER_ID' => '0', |
|
127 | - 'member_type' => 'PRIMARY_ACCOUNT', |
|
128 | - 'member_first_name' => 'Routeme', |
|
129 | - 'member_last_name' => 'QA', |
|
130 | - 'member_email' => '[email protected]', |
|
131 | - 'preferred_units' => 'MI', |
|
132 | - 'preferred_language' => 'en', |
|
133 | - 'HIDE_ROUTED_ADDRESSES' => 'FALSE', |
|
134 | - 'HIDE_VISITED_ADDRESSES' => 'FALSE', |
|
135 | - 'HIDE_NONFUTURE_ROUTES' => 'FALSE', |
|
136 | - 'SHOW_ALL_DRIVERS' => 'FALSE', |
|
137 | - 'SHOW_ALL_VEHICLES' => '0', |
|
138 | - 'READONLY_USER' => 'FALSE', |
|
139 | - 'member_zipcode' => '18002', |
|
140 | - 'timezone' => 'US\/Arizona', |
|
141 | - 'member_picture' => 'https => \/\/apps-static.borea.com\/uploads\/44444444444444444444444444444444\/profile_77777777777777777777777777777777.png', |
|
142 | - 'level' => 0, |
|
143 | - 'custom_data' => [ |
|
144 | - 'animal' => 'lion', |
|
145 | - 'bird' => 'eagle' |
|
146 | - ], |
|
147 | - 'api_key' => '11111111111111111111111111111111' |
|
148 | - ]); |
|
149 | - |
|
150 | - $this->assertEquals($memberResponseV4->toArray(), |
|
151 | - [ |
|
152 | - 'HIDE_NONFUTURE_ROUTES' => 'FALSE', |
|
153 | - 'HIDE_ROUTED_ADDRESSES' => 'FALSE', |
|
154 | - 'HIDE_VISITED_ADDRESSES' => 'FALSE', |
|
155 | - 'member_id' => '18154', |
|
156 | - 'OWNER_MEMBER_ID' => '0', |
|
157 | - 'READONLY_USER' => 'FALSE', |
|
158 | - 'SHOW_ALL_DRIVERS' => 'FALSE', |
|
159 | - 'SHOW_ALL_VEHICLES' => '0', |
|
160 | - 'member_email' => '[email protected]', |
|
161 | - 'member_first_name' => 'Routeme', |
|
162 | - 'member_last_name' => 'QA', |
|
163 | - 'member_picture' => 'https => \/\/apps-static.borea.com\/uploads\/44444444444444444444444444444444\/profile_77777777777777777777777777777777.png', |
|
164 | - 'member_type' => 'PRIMARY_ACCOUNT', |
|
165 | - 'member_zipcode' => '18002', |
|
166 | - 'preferred_language' => 'en', |
|
167 | - 'preferred_units' => 'MI', |
|
168 | - 'timezone' => 'US\/Arizona', |
|
169 | - 'level' => 0, |
|
170 | - 'custom_data' => [ |
|
171 | - 'animal' => 'lion', |
|
172 | - 'bird' => 'eagle' |
|
173 | - ], |
|
174 | - 'api_key' => '11111111111111111111111111111111' |
|
175 | - ] |
|
176 | - ); |
|
177 | - } |
|
178 | - |
|
179 | - public function testGetUsers() |
|
180 | - { |
|
181 | - $member = new Member(); |
|
182 | - |
|
183 | - $response = $member->getUsers(); |
|
184 | - |
|
185 | - $this->assertNotNull($response); |
|
186 | - $this->assertTrue(is_array($response)); |
|
187 | - $this->assertTrue(sizeof($response)>0); |
|
188 | - $this->assertInstanceOf( |
|
189 | - ResultsResponseV4::class, |
|
190 | - ResultsResponseV4::fromArray($response) |
|
191 | - ); |
|
192 | - $this->assertTrue(isset($response['total'])); |
|
193 | - $this->assertTrue(isset($response['results'])); |
|
194 | - $this->assertTrue(is_array($response['results'])); |
|
195 | - $this->assertInstanceOf( |
|
196 | - MemberResponseV4::class, |
|
197 | - MemberResponseV4::fromArray($response['results'][0]) |
|
198 | - ); |
|
199 | - } |
|
200 | - |
|
201 | - public function testGetUserById() |
|
202 | - { |
|
203 | - $member = new Member(); |
|
204 | - |
|
205 | - $param = [ |
|
206 | - 'member_id' => self::$createdMembers[0]->member_id, |
|
207 | - ]; |
|
208 | - |
|
209 | - $response = $member->getUser($param); |
|
210 | - |
|
211 | - $this->assertNotNull($response); |
|
212 | - $this->assertInstanceOf( |
|
213 | - MemberResponseV4::class, |
|
214 | - MemberResponseV4::fromArray($response) |
|
215 | - ); |
|
216 | - } |
|
217 | - |
|
218 | - public function testUpdateMember() |
|
219 | - { |
|
220 | - $member = new Member(); |
|
221 | - |
|
222 | - $params = Member::fromArray([ |
|
223 | - 'member_id' => self::$createdMembers[0]->member_id, |
|
224 | - 'member_phone' => '555-777-888', |
|
225 | - ]); |
|
226 | - |
|
227 | - $response = $member->updateMember($params); |
|
228 | - |
|
229 | - $this->assertNotNull($response); |
|
230 | - $this->assertInstanceOf( |
|
231 | - MemberResponseV4::class, |
|
232 | - MemberResponseV4::fromArray($response) |
|
233 | - ); |
|
234 | - $this->assertEquals( |
|
235 | - '555-777-888', |
|
236 | - $response['member_phone'] |
|
237 | - ); |
|
238 | - } |
|
239 | - |
|
240 | - public function testAddEditCustomDataToUser() |
|
241 | - { |
|
242 | - $member = new Member(); |
|
243 | - |
|
244 | - $params = Member::fromArray([ |
|
245 | - 'member_id' => self::$createdMembers[0]->member_id, |
|
246 | - 'custom_data' => ['Custom Key 2' => 'Custom Value 2'], |
|
247 | - ]); |
|
248 | - |
|
249 | - $response = $member->updateMember($params); |
|
250 | - |
|
251 | - $this->assertNotNull($response); |
|
252 | - $this->assertInstanceOf( |
|
253 | - MemberResponseV4::class, |
|
254 | - MemberResponseV4::fromArray($response) |
|
255 | - ); |
|
256 | - $this->assertEquals( |
|
257 | - ['Custom Key 2' => 'Custom Value 2'], |
|
258 | - $response['custom_data'] |
|
259 | - ); |
|
260 | - } |
|
261 | - |
|
262 | - public function testUserAuthentication() |
|
263 | - { |
|
264 | - $Parameters = Member::fromArray([ |
|
265 | - 'strEmail' => self::$createdMembers[0]->member_email, |
|
266 | - 'strPassword' => '123456', |
|
267 | - 'format' => 'json', |
|
268 | - ]); |
|
269 | - |
|
270 | - $member = new Member(); |
|
271 | - |
|
272 | - $response = $member->memberAuthentication($Parameters); |
|
273 | - |
|
274 | - $this->assertNotNull($response); |
|
275 | - $this->assertInstanceOf( |
|
276 | - MemberResponse::class, |
|
277 | - MemberResponse::fromArray($response) |
|
278 | - ); |
|
279 | - } |
|
280 | - |
|
281 | - public function testValidateSession() |
|
282 | - { |
|
283 | - $member = new Member(); |
|
284 | - |
|
285 | - //region -- Authenticate a user and get session guid -- |
|
286 | - |
|
287 | - $recordParameters = Member::fromArray([ |
|
288 | - 'strEmail' => self::$createdMembers[0]->member_email, |
|
289 | - 'strPassword' => '123456', |
|
290 | - 'format' => 'json', |
|
291 | - ]); |
|
292 | - |
|
293 | - $response = $member->memberAuthentication($recordParameters); |
|
294 | - |
|
295 | - $this->assertNotNull($response); |
|
296 | - $this->assertInstanceOf( |
|
297 | - MemberAuthenticationResponse::class, |
|
298 | - MemberAuthenticationResponse::fromArray($response) |
|
299 | - ); |
|
300 | - |
|
301 | - //endregion |
|
302 | - |
|
303 | - $sessionGuid = $response['session_guid']; |
|
304 | - $memberID = $response['member_id']; |
|
305 | - |
|
306 | - // Validate the session |
|
307 | - $params = Member::fromArray([ |
|
308 | - 'session_guid' => $sessionGuid, |
|
309 | - 'format' => 'json', |
|
310 | - 'user_key' => 1, |
|
311 | - ]); |
|
312 | - |
|
313 | - $result = $member->validateSession($params); |
|
314 | - |
|
315 | - $this->assertNotNull($result); |
|
316 | - $this->assertInstanceOf( |
|
317 | - MemberResponse::class, |
|
318 | - MemberResponse::fromArray($result) |
|
319 | - ); |
|
320 | - } |
|
321 | - |
|
322 | - public function testUserRegistration() |
|
323 | - { |
|
324 | - $this->markTestSkipped('must be revisited.'); // This test requires valid user email |
|
325 | - $registrParameters = Member::fromArray([ |
|
326 | - 'strEmail' => '[email protected]', |
|
327 | - 'strPassword_1' => 'ooo111111', |
|
328 | - 'strPassword_2' => 'ooo111111', |
|
329 | - 'strFirstName' => 'Driver', |
|
330 | - 'strLastName' => 'Driverson', |
|
331 | - 'format' => 'json', |
|
332 | - 'strIndustry' => 'Gifting', |
|
333 | - 'chkTerms' => 1, |
|
334 | - 'device_type' => 'web', |
|
335 | - 'plan' => 'free', |
|
336 | - ]); |
|
337 | - |
|
338 | - $member = new Member(); |
|
339 | - $errorText = ""; |
|
340 | - |
|
341 | - $response = $member->newAccountRegistration($registrParameters, $errorText); |
|
342 | - |
|
343 | - $this->assertNotNull($response); |
|
344 | - $this->assertInstanceOf(MemberResponse::class, $response); |
|
345 | - } |
|
346 | - |
|
347 | - public function testCreateUser() |
|
348 | - { |
|
349 | - $date = new \DateTime(); |
|
350 | - |
|
351 | - $params = Member::fromArray([ |
|
352 | - 'HIDE_ROUTED_ADDRESSES' => 'FALSE', |
|
353 | - 'member_phone' => '571-259-5939', |
|
354 | - 'member_zipcode' => '22102', |
|
355 | - 'route_count' => null, |
|
356 | - 'member_email' => 'regression.autotests+'.$date->getTimestamp().'@gmail.com', |
|
357 | - 'HIDE_VISITED_ADDRESSES' => 'FALSE', |
|
358 | - 'READONLY_USER' => 'FALSE', |
|
359 | - 'member_type' => 'SUB_ACCOUNT_DRIVER', |
|
360 | - 'date_of_birth' => '1994-10-01', |
|
361 | - 'member_first_name' => 'John', |
|
362 | - 'member_password' => '123456', |
|
363 | - 'HIDE_NONFUTURE_ROUTES' => 'FALSE', |
|
364 | - 'member_last_name' => 'Doe', |
|
365 | - 'SHOW_ALL_VEHICLES' => 'FALSE', |
|
366 | - 'SHOW_ALL_DRIVERS' => 'FALSE', |
|
367 | - ]); |
|
368 | - |
|
369 | - $member = new Member(); |
|
370 | - |
|
371 | - $response = $member->createMember($params); |
|
372 | - |
|
373 | - self::assertNotNull($response); |
|
374 | - self::assertInstanceOf( |
|
375 | - MemberResponseV4::class, |
|
376 | - MemberResponseV4::fromArray($response) |
|
377 | - ); |
|
378 | - |
|
379 | - self::$createdMembers[] = MemberResponseV4::fromArray($response); |
|
380 | - } |
|
381 | - |
|
382 | - public function testDeleteUser() |
|
383 | - { |
|
384 | - $member = new Member(); |
|
385 | - $errorText = ""; |
|
386 | - |
|
387 | - $memberID = self::$createdMembers[sizeof(self::$createdMembers)-1]->member_id; |
|
388 | - |
|
389 | - // Delete member from the user's account |
|
390 | - $params = Member::fromArray([ |
|
391 | - 'member_id' => $memberID, |
|
392 | - ]); |
|
393 | - |
|
394 | - $response = $member->deleteMember($params, $errorText); |
|
395 | - |
|
396 | - $this->assertNotNull($response, $errorText); |
|
397 | - $this->assertTrue(isset($response['status'])); |
|
398 | - $this->assertTrue($response['status']); |
|
399 | - |
|
400 | - self::$createdMembers[] = array_pop(self::$createdMembers); |
|
401 | - } |
|
402 | - |
|
403 | - public function testGetMemberCapabilities() |
|
404 | - { |
|
405 | - $member = new Member(); |
|
406 | - |
|
407 | - $memberCapabalities = member::getMemberCapabilities(); |
|
408 | - |
|
409 | - $this->assertNotNull($memberCapabalities); |
|
410 | - $this->assertInstanceOf( |
|
411 | - MemberCapabilities::class, |
|
412 | - MemberCapabilities::fromArray($memberCapabalities) |
|
413 | - ); |
|
414 | - } |
|
415 | - |
|
416 | - public static function tearDownAfterClass() |
|
417 | - { |
|
418 | - if (sizeof(self::$createdMembers)>0) { |
|
419 | - $member = new Member(); |
|
420 | - $errorText = ""; |
|
421 | - |
|
422 | - foreach (self::$createdMembers as $createdMember) { |
|
423 | - $params = Member::fromArray([ |
|
424 | - 'member_id' => $createdMember->member_id, |
|
425 | - ]); |
|
426 | - |
|
427 | - $response = $member->deleteMember($params, $errorText); |
|
428 | - |
|
429 | - if (!is_null($response) && isset($response['status']) && $response['status']) { |
|
430 | - echo "The member ".$createdMember->member_id." removed <br>"; |
|
431 | - } else { |
|
432 | - echo "Cannot remove the member ".$createdMember->member_id." <br>".$errorText; |
|
433 | - } |
|
434 | - } |
|
435 | - } |
|
436 | - } |
|
16 | + public static $createdMembers=[]; |
|
17 | + |
|
18 | + public static function setUpBeforeClass() |
|
19 | + { |
|
20 | + Route4Me::setApiKey(Constants::API_KEY); |
|
21 | + $date = new \DateTime(); |
|
22 | + |
|
23 | + $params = Member::fromArray([ |
|
24 | + 'HIDE_ROUTED_ADDRESSES' => 'FALSE', |
|
25 | + 'member_phone' => '571-259-5939', |
|
26 | + 'member_zipcode' => '22102', |
|
27 | + 'route_count' => null, |
|
28 | + 'member_email' => 'regression.autotests+'.$date->getTimestamp().'@gmail.com', |
|
29 | + 'HIDE_VISITED_ADDRESSES' => 'FALSE', |
|
30 | + 'READONLY_USER' => 'FALSE', |
|
31 | + 'member_type' => 'SUB_ACCOUNT_DRIVER', |
|
32 | + 'date_of_birth' => '1994-10-01', |
|
33 | + 'member_first_name' => 'Clay', |
|
34 | + 'member_password' => '123456', |
|
35 | + 'HIDE_NONFUTURE_ROUTES' => 'FALSE', |
|
36 | + 'member_last_name' => 'Abraham', |
|
37 | + 'SHOW_ALL_VEHICLES' => 'FALSE', |
|
38 | + 'SHOW_ALL_DRIVERS' => 'FALSE', |
|
39 | + ]); |
|
40 | + |
|
41 | + $member = new Member(); |
|
42 | + |
|
43 | + $response = $member->createMember($params); |
|
44 | + |
|
45 | + self::assertNotNull($response); |
|
46 | + self::assertInstanceOf( |
|
47 | + MemberResponseV4::class, |
|
48 | + MemberResponseV4::fromArray($response) |
|
49 | + ); |
|
50 | + |
|
51 | + self::$createdMembers[] = MemberResponseV4::fromArray($response); |
|
52 | + } |
|
53 | + |
|
54 | + public function testFromArray() |
|
55 | + { |
|
56 | + $memberResponseV4 = MemberResponseV4::fromArray([ |
|
57 | + 'member_id' => '18154', |
|
58 | + 'OWNER_MEMBER_ID' => '0', |
|
59 | + 'member_type' => 'PRIMARY_ACCOUNT', |
|
60 | + 'member_first_name' => 'Routeme', |
|
61 | + 'member_last_name' => 'QA', |
|
62 | + 'member_email' => '[email protected]', |
|
63 | + 'preferred_units' => 'MI', |
|
64 | + 'preferred_language' => 'en', |
|
65 | + 'HIDE_ROUTED_ADDRESSES' => 'FALSE', |
|
66 | + 'HIDE_VISITED_ADDRESSES' => 'FALSE', |
|
67 | + 'HIDE_NONFUTURE_ROUTES' => 'FALSE', |
|
68 | + 'SHOW_ALL_DRIVERS' => 'FALSE', |
|
69 | + 'SHOW_ALL_VEHICLES' => '0', |
|
70 | + 'READONLY_USER' => 'FALSE', |
|
71 | + 'member_phone' => null, |
|
72 | + 'member_zipcode' => '18002', |
|
73 | + 'timezone' => 'US\/Arizona', |
|
74 | + 'date_of_birth' => null, |
|
75 | + 'user_reg_state_id' => null, |
|
76 | + 'user_reg_country_id' => null, |
|
77 | + 'member_picture' => 'https => \/\/apps-static.borea.com\/uploads\/44444444444444444444444444444444\/profile_77777777777777777777777777777777.png', |
|
78 | + 'level' => 0, |
|
79 | + 'custom_data' => [ |
|
80 | + 'animal' => 'lion', |
|
81 | + 'bird' => 'eagle' |
|
82 | + ], |
|
83 | + 'api_key' => '11111111111111111111111111111111' |
|
84 | + ]); |
|
85 | + |
|
86 | + $this->assertEquals('18154', $memberResponseV4->member_id); |
|
87 | + $this->assertEquals('0', $memberResponseV4->OWNER_MEMBER_ID); |
|
88 | + $this->assertEquals('PRIMARY_ACCOUNT', $memberResponseV4->member_type); |
|
89 | + $this->assertEquals('Routeme', $memberResponseV4->member_first_name); |
|
90 | + $this->assertEquals('QA', $memberResponseV4->member_last_name); |
|
91 | + $this->assertEquals('[email protected]', $memberResponseV4->member_email); |
|
92 | + $this->assertEquals('MI', $memberResponseV4->preferred_units); |
|
93 | + $this->assertEquals('en', $memberResponseV4->preferred_language); |
|
94 | + $this->assertEquals('FALSE', $memberResponseV4->HIDE_ROUTED_ADDRESSES); |
|
95 | + $this->assertEquals('FALSE', $memberResponseV4->HIDE_VISITED_ADDRESSES); |
|
96 | + $this->assertEquals('FALSE', $memberResponseV4->HIDE_NONFUTURE_ROUTES); |
|
97 | + $this->assertEquals('FALSE', $memberResponseV4->SHOW_ALL_DRIVERS); |
|
98 | + $this->assertEquals('0', $memberResponseV4->SHOW_ALL_VEHICLES); |
|
99 | + $this->assertEquals('FALSE', $memberResponseV4->READONLY_USER); |
|
100 | + $this->assertEquals(null, $memberResponseV4->member_phone); |
|
101 | + $this->assertEquals('18002', $memberResponseV4->member_zipcode); |
|
102 | + $this->assertEquals('US\/Arizona', $memberResponseV4->timezone); |
|
103 | + $this->assertEquals(null, $memberResponseV4->date_of_birth); |
|
104 | + |
|
105 | + $this->assertEquals(null, $memberResponseV4->user_reg_state_id); |
|
106 | + $this->assertEquals(null, $memberResponseV4->user_reg_country_id); |
|
107 | + $this->assertEquals( |
|
108 | + 'https => \/\/apps-static.borea.com\/uploads\/44444444444444444444444444444444\/profile_77777777777777777777777777777777.png', |
|
109 | + $memberResponseV4->member_picture |
|
110 | + ); |
|
111 | + $this->assertEquals(0, $memberResponseV4->level); |
|
112 | + $this->assertEquals( |
|
113 | + [ |
|
114 | + 'animal' => 'lion', |
|
115 | + 'bird' => 'eagle' |
|
116 | + ], |
|
117 | + $memberResponseV4->custom_data); |
|
118 | + $this->assertEquals('11111111111111111111111111111111', $memberResponseV4->api_key); |
|
119 | + |
|
120 | + } |
|
121 | + |
|
122 | + public function testToArray() |
|
123 | + { |
|
124 | + $memberResponseV4 = MemberResponseV4::fromArray([ |
|
125 | + 'member_id' => '18154', |
|
126 | + 'OWNER_MEMBER_ID' => '0', |
|
127 | + 'member_type' => 'PRIMARY_ACCOUNT', |
|
128 | + 'member_first_name' => 'Routeme', |
|
129 | + 'member_last_name' => 'QA', |
|
130 | + 'member_email' => '[email protected]', |
|
131 | + 'preferred_units' => 'MI', |
|
132 | + 'preferred_language' => 'en', |
|
133 | + 'HIDE_ROUTED_ADDRESSES' => 'FALSE', |
|
134 | + 'HIDE_VISITED_ADDRESSES' => 'FALSE', |
|
135 | + 'HIDE_NONFUTURE_ROUTES' => 'FALSE', |
|
136 | + 'SHOW_ALL_DRIVERS' => 'FALSE', |
|
137 | + 'SHOW_ALL_VEHICLES' => '0', |
|
138 | + 'READONLY_USER' => 'FALSE', |
|
139 | + 'member_zipcode' => '18002', |
|
140 | + 'timezone' => 'US\/Arizona', |
|
141 | + 'member_picture' => 'https => \/\/apps-static.borea.com\/uploads\/44444444444444444444444444444444\/profile_77777777777777777777777777777777.png', |
|
142 | + 'level' => 0, |
|
143 | + 'custom_data' => [ |
|
144 | + 'animal' => 'lion', |
|
145 | + 'bird' => 'eagle' |
|
146 | + ], |
|
147 | + 'api_key' => '11111111111111111111111111111111' |
|
148 | + ]); |
|
149 | + |
|
150 | + $this->assertEquals($memberResponseV4->toArray(), |
|
151 | + [ |
|
152 | + 'HIDE_NONFUTURE_ROUTES' => 'FALSE', |
|
153 | + 'HIDE_ROUTED_ADDRESSES' => 'FALSE', |
|
154 | + 'HIDE_VISITED_ADDRESSES' => 'FALSE', |
|
155 | + 'member_id' => '18154', |
|
156 | + 'OWNER_MEMBER_ID' => '0', |
|
157 | + 'READONLY_USER' => 'FALSE', |
|
158 | + 'SHOW_ALL_DRIVERS' => 'FALSE', |
|
159 | + 'SHOW_ALL_VEHICLES' => '0', |
|
160 | + 'member_email' => '[email protected]', |
|
161 | + 'member_first_name' => 'Routeme', |
|
162 | + 'member_last_name' => 'QA', |
|
163 | + 'member_picture' => 'https => \/\/apps-static.borea.com\/uploads\/44444444444444444444444444444444\/profile_77777777777777777777777777777777.png', |
|
164 | + 'member_type' => 'PRIMARY_ACCOUNT', |
|
165 | + 'member_zipcode' => '18002', |
|
166 | + 'preferred_language' => 'en', |
|
167 | + 'preferred_units' => 'MI', |
|
168 | + 'timezone' => 'US\/Arizona', |
|
169 | + 'level' => 0, |
|
170 | + 'custom_data' => [ |
|
171 | + 'animal' => 'lion', |
|
172 | + 'bird' => 'eagle' |
|
173 | + ], |
|
174 | + 'api_key' => '11111111111111111111111111111111' |
|
175 | + ] |
|
176 | + ); |
|
177 | + } |
|
178 | + |
|
179 | + public function testGetUsers() |
|
180 | + { |
|
181 | + $member = new Member(); |
|
182 | + |
|
183 | + $response = $member->getUsers(); |
|
184 | + |
|
185 | + $this->assertNotNull($response); |
|
186 | + $this->assertTrue(is_array($response)); |
|
187 | + $this->assertTrue(sizeof($response)>0); |
|
188 | + $this->assertInstanceOf( |
|
189 | + ResultsResponseV4::class, |
|
190 | + ResultsResponseV4::fromArray($response) |
|
191 | + ); |
|
192 | + $this->assertTrue(isset($response['total'])); |
|
193 | + $this->assertTrue(isset($response['results'])); |
|
194 | + $this->assertTrue(is_array($response['results'])); |
|
195 | + $this->assertInstanceOf( |
|
196 | + MemberResponseV4::class, |
|
197 | + MemberResponseV4::fromArray($response['results'][0]) |
|
198 | + ); |
|
199 | + } |
|
200 | + |
|
201 | + public function testGetUserById() |
|
202 | + { |
|
203 | + $member = new Member(); |
|
204 | + |
|
205 | + $param = [ |
|
206 | + 'member_id' => self::$createdMembers[0]->member_id, |
|
207 | + ]; |
|
208 | + |
|
209 | + $response = $member->getUser($param); |
|
210 | + |
|
211 | + $this->assertNotNull($response); |
|
212 | + $this->assertInstanceOf( |
|
213 | + MemberResponseV4::class, |
|
214 | + MemberResponseV4::fromArray($response) |
|
215 | + ); |
|
216 | + } |
|
217 | + |
|
218 | + public function testUpdateMember() |
|
219 | + { |
|
220 | + $member = new Member(); |
|
221 | + |
|
222 | + $params = Member::fromArray([ |
|
223 | + 'member_id' => self::$createdMembers[0]->member_id, |
|
224 | + 'member_phone' => '555-777-888', |
|
225 | + ]); |
|
226 | + |
|
227 | + $response = $member->updateMember($params); |
|
228 | + |
|
229 | + $this->assertNotNull($response); |
|
230 | + $this->assertInstanceOf( |
|
231 | + MemberResponseV4::class, |
|
232 | + MemberResponseV4::fromArray($response) |
|
233 | + ); |
|
234 | + $this->assertEquals( |
|
235 | + '555-777-888', |
|
236 | + $response['member_phone'] |
|
237 | + ); |
|
238 | + } |
|
239 | + |
|
240 | + public function testAddEditCustomDataToUser() |
|
241 | + { |
|
242 | + $member = new Member(); |
|
243 | + |
|
244 | + $params = Member::fromArray([ |
|
245 | + 'member_id' => self::$createdMembers[0]->member_id, |
|
246 | + 'custom_data' => ['Custom Key 2' => 'Custom Value 2'], |
|
247 | + ]); |
|
248 | + |
|
249 | + $response = $member->updateMember($params); |
|
250 | + |
|
251 | + $this->assertNotNull($response); |
|
252 | + $this->assertInstanceOf( |
|
253 | + MemberResponseV4::class, |
|
254 | + MemberResponseV4::fromArray($response) |
|
255 | + ); |
|
256 | + $this->assertEquals( |
|
257 | + ['Custom Key 2' => 'Custom Value 2'], |
|
258 | + $response['custom_data'] |
|
259 | + ); |
|
260 | + } |
|
261 | + |
|
262 | + public function testUserAuthentication() |
|
263 | + { |
|
264 | + $Parameters = Member::fromArray([ |
|
265 | + 'strEmail' => self::$createdMembers[0]->member_email, |
|
266 | + 'strPassword' => '123456', |
|
267 | + 'format' => 'json', |
|
268 | + ]); |
|
269 | + |
|
270 | + $member = new Member(); |
|
271 | + |
|
272 | + $response = $member->memberAuthentication($Parameters); |
|
273 | + |
|
274 | + $this->assertNotNull($response); |
|
275 | + $this->assertInstanceOf( |
|
276 | + MemberResponse::class, |
|
277 | + MemberResponse::fromArray($response) |
|
278 | + ); |
|
279 | + } |
|
280 | + |
|
281 | + public function testValidateSession() |
|
282 | + { |
|
283 | + $member = new Member(); |
|
284 | + |
|
285 | + //region -- Authenticate a user and get session guid -- |
|
286 | + |
|
287 | + $recordParameters = Member::fromArray([ |
|
288 | + 'strEmail' => self::$createdMembers[0]->member_email, |
|
289 | + 'strPassword' => '123456', |
|
290 | + 'format' => 'json', |
|
291 | + ]); |
|
292 | + |
|
293 | + $response = $member->memberAuthentication($recordParameters); |
|
294 | + |
|
295 | + $this->assertNotNull($response); |
|
296 | + $this->assertInstanceOf( |
|
297 | + MemberAuthenticationResponse::class, |
|
298 | + MemberAuthenticationResponse::fromArray($response) |
|
299 | + ); |
|
300 | + |
|
301 | + //endregion |
|
302 | + |
|
303 | + $sessionGuid = $response['session_guid']; |
|
304 | + $memberID = $response['member_id']; |
|
305 | + |
|
306 | + // Validate the session |
|
307 | + $params = Member::fromArray([ |
|
308 | + 'session_guid' => $sessionGuid, |
|
309 | + 'format' => 'json', |
|
310 | + 'user_key' => 1, |
|
311 | + ]); |
|
312 | + |
|
313 | + $result = $member->validateSession($params); |
|
314 | + |
|
315 | + $this->assertNotNull($result); |
|
316 | + $this->assertInstanceOf( |
|
317 | + MemberResponse::class, |
|
318 | + MemberResponse::fromArray($result) |
|
319 | + ); |
|
320 | + } |
|
321 | + |
|
322 | + public function testUserRegistration() |
|
323 | + { |
|
324 | + $this->markTestSkipped('must be revisited.'); // This test requires valid user email |
|
325 | + $registrParameters = Member::fromArray([ |
|
326 | + 'strEmail' => '[email protected]', |
|
327 | + 'strPassword_1' => 'ooo111111', |
|
328 | + 'strPassword_2' => 'ooo111111', |
|
329 | + 'strFirstName' => 'Driver', |
|
330 | + 'strLastName' => 'Driverson', |
|
331 | + 'format' => 'json', |
|
332 | + 'strIndustry' => 'Gifting', |
|
333 | + 'chkTerms' => 1, |
|
334 | + 'device_type' => 'web', |
|
335 | + 'plan' => 'free', |
|
336 | + ]); |
|
337 | + |
|
338 | + $member = new Member(); |
|
339 | + $errorText = ""; |
|
340 | + |
|
341 | + $response = $member->newAccountRegistration($registrParameters, $errorText); |
|
342 | + |
|
343 | + $this->assertNotNull($response); |
|
344 | + $this->assertInstanceOf(MemberResponse::class, $response); |
|
345 | + } |
|
346 | + |
|
347 | + public function testCreateUser() |
|
348 | + { |
|
349 | + $date = new \DateTime(); |
|
350 | + |
|
351 | + $params = Member::fromArray([ |
|
352 | + 'HIDE_ROUTED_ADDRESSES' => 'FALSE', |
|
353 | + 'member_phone' => '571-259-5939', |
|
354 | + 'member_zipcode' => '22102', |
|
355 | + 'route_count' => null, |
|
356 | + 'member_email' => 'regression.autotests+'.$date->getTimestamp().'@gmail.com', |
|
357 | + 'HIDE_VISITED_ADDRESSES' => 'FALSE', |
|
358 | + 'READONLY_USER' => 'FALSE', |
|
359 | + 'member_type' => 'SUB_ACCOUNT_DRIVER', |
|
360 | + 'date_of_birth' => '1994-10-01', |
|
361 | + 'member_first_name' => 'John', |
|
362 | + 'member_password' => '123456', |
|
363 | + 'HIDE_NONFUTURE_ROUTES' => 'FALSE', |
|
364 | + 'member_last_name' => 'Doe', |
|
365 | + 'SHOW_ALL_VEHICLES' => 'FALSE', |
|
366 | + 'SHOW_ALL_DRIVERS' => 'FALSE', |
|
367 | + ]); |
|
368 | + |
|
369 | + $member = new Member(); |
|
370 | + |
|
371 | + $response = $member->createMember($params); |
|
372 | + |
|
373 | + self::assertNotNull($response); |
|
374 | + self::assertInstanceOf( |
|
375 | + MemberResponseV4::class, |
|
376 | + MemberResponseV4::fromArray($response) |
|
377 | + ); |
|
378 | + |
|
379 | + self::$createdMembers[] = MemberResponseV4::fromArray($response); |
|
380 | + } |
|
381 | + |
|
382 | + public function testDeleteUser() |
|
383 | + { |
|
384 | + $member = new Member(); |
|
385 | + $errorText = ""; |
|
386 | + |
|
387 | + $memberID = self::$createdMembers[sizeof(self::$createdMembers)-1]->member_id; |
|
388 | + |
|
389 | + // Delete member from the user's account |
|
390 | + $params = Member::fromArray([ |
|
391 | + 'member_id' => $memberID, |
|
392 | + ]); |
|
393 | + |
|
394 | + $response = $member->deleteMember($params, $errorText); |
|
395 | + |
|
396 | + $this->assertNotNull($response, $errorText); |
|
397 | + $this->assertTrue(isset($response['status'])); |
|
398 | + $this->assertTrue($response['status']); |
|
399 | + |
|
400 | + self::$createdMembers[] = array_pop(self::$createdMembers); |
|
401 | + } |
|
402 | + |
|
403 | + public function testGetMemberCapabilities() |
|
404 | + { |
|
405 | + $member = new Member(); |
|
406 | + |
|
407 | + $memberCapabalities = member::getMemberCapabilities(); |
|
408 | + |
|
409 | + $this->assertNotNull($memberCapabalities); |
|
410 | + $this->assertInstanceOf( |
|
411 | + MemberCapabilities::class, |
|
412 | + MemberCapabilities::fromArray($memberCapabalities) |
|
413 | + ); |
|
414 | + } |
|
415 | + |
|
416 | + public static function tearDownAfterClass() |
|
417 | + { |
|
418 | + if (sizeof(self::$createdMembers)>0) { |
|
419 | + $member = new Member(); |
|
420 | + $errorText = ""; |
|
421 | + |
|
422 | + foreach (self::$createdMembers as $createdMember) { |
|
423 | + $params = Member::fromArray([ |
|
424 | + 'member_id' => $createdMember->member_id, |
|
425 | + ]); |
|
426 | + |
|
427 | + $response = $member->deleteMember($params, $errorText); |
|
428 | + |
|
429 | + if (!is_null($response) && isset($response['status']) && $response['status']) { |
|
430 | + echo "The member ".$createdMember->member_id." removed <br>"; |
|
431 | + } else { |
|
432 | + echo "Cannot remove the member ".$createdMember->member_id." <br>".$errorText; |
|
433 | + } |
|
434 | + } |
|
435 | + } |
|
436 | + } |
|
437 | 437 | } |
438 | 438 | \ No newline at end of file |
@@ -9,10 +9,10 @@ |
||
9 | 9 | Route4Me::setApiKey(Constants::API_KEY); |
10 | 10 | |
11 | 11 | $AddressBookLocationParameters = AddressBookLocation::fromArray([ |
12 | - 'first_name' => 'Test FirstName '.strval(rand(10000, 99999)), |
|
13 | - 'address_1' => 'Test Address1 '.strval(rand(10000, 99999)), |
|
14 | - 'cached_lat' => 38.024654, |
|
15 | - 'cached_lng' => -77.338814, |
|
12 | + 'first_name' => 'Test FirstName '.strval(rand(10000, 99999)), |
|
13 | + 'address_1' => 'Test Address1 '.strval(rand(10000, 99999)), |
|
14 | + 'cached_lat' => 38.024654, |
|
15 | + 'cached_lng' => -77.338814, |
|
16 | 16 | ]); |
17 | 17 | |
18 | 18 | $abContacts = new AddressBookLocation(); |
@@ -11,8 +11,8 @@ discard block |
||
11 | 11 | Route4Me::setApiKey(Constants::API_KEY); |
12 | 12 | |
13 | 13 | $gcParameters = (array) Geocoding::fromArray([ |
14 | - 'offset' => 0, |
|
15 | - 'limit' => 5, |
|
14 | + 'offset' => 0, |
|
15 | + 'limit' => 5, |
|
16 | 16 | ]); |
17 | 17 | |
18 | 18 | $geoCoding = new Geocoding(); |
@@ -20,6 +20,6 @@ discard block |
||
20 | 20 | $response = $geoCoding->getStreetData($gcParameters); |
21 | 21 | |
22 | 22 | foreach ($response as $gCode) { |
23 | - Route4Me::simplePrint($gCode); |
|
24 | - echo '<br>'; |
|
23 | + Route4Me::simplePrint($gCode); |
|
24 | + echo '<br>'; |
|
25 | 25 | } |
@@ -11,10 +11,10 @@ discard block |
||
11 | 11 | Route4Me::setApiKey(Constants::API_KEY); |
12 | 12 | |
13 | 13 | $gcParameters = (array) Geocoding::fromArray([ |
14 | - 'zipcode' => '00601', |
|
15 | - 'housenumber' => 17, |
|
16 | - 'offset' => 0, |
|
17 | - 'limit' => 10, |
|
14 | + 'zipcode' => '00601', |
|
15 | + 'housenumber' => 17, |
|
16 | + 'offset' => 0, |
|
17 | + 'limit' => 10, |
|
18 | 18 | ]); |
19 | 19 | |
20 | 20 | $geoCoding = new Geocoding(); |
@@ -22,6 +22,6 @@ discard block |
||
22 | 22 | $response = $geoCoding->getService($gcParameters); |
23 | 23 | |
24 | 24 | foreach ($response as $gCode) { |
25 | - Route4Me::simplePrint($gCode); |
|
26 | - echo '<br>'; |
|
25 | + Route4Me::simplePrint($gCode); |
|
26 | + echo '<br>'; |
|
27 | 27 | } |
@@ -11,8 +11,8 @@ discard block |
||
11 | 11 | Route4Me::setApiKey(Constants::API_KEY); |
12 | 12 | |
13 | 13 | $gcParameters = (array) Geocoding::fromArray([ |
14 | - 'zipcode' => '00601', |
|
15 | - 'housenumber' => 17, |
|
14 | + 'zipcode' => '00601', |
|
15 | + 'housenumber' => 17, |
|
16 | 16 | ]); |
17 | 17 | |
18 | 18 | $geoCoding = new Geocoding(); |
@@ -20,6 +20,6 @@ discard block |
||
20 | 20 | $response = $geoCoding->getService($gcParameters); |
21 | 21 | |
22 | 22 | foreach ($response as $gCode) { |
23 | - Route4Me::simplePrint($gCode); |
|
24 | - echo '<br>'; |
|
23 | + Route4Me::simplePrint($gCode); |
|
24 | + echo '<br>'; |
|
25 | 25 | } |
@@ -11,7 +11,7 @@ |
||
11 | 11 | Route4Me::setApiKey(Constants::API_KEY); |
12 | 12 | |
13 | 13 | $gcParameters = (array) Geocoding::fromArray([ |
14 | - 'pk' => 4, |
|
14 | + 'pk' => 4, |
|
15 | 15 | ]); |
16 | 16 | |
17 | 17 | $geoCoding = new Geocoding(); |
@@ -11,9 +11,9 @@ discard block |
||
11 | 11 | Route4Me::setApiKey(Constants::API_KEY); |
12 | 12 | |
13 | 13 | $gcParameters = (array) Geocoding::fromArray([ |
14 | - 'zipcode' => '00601', |
|
15 | - 'offset' => 0, |
|
16 | - 'limit' => 20, |
|
14 | + 'zipcode' => '00601', |
|
15 | + 'offset' => 0, |
|
16 | + 'limit' => 20, |
|
17 | 17 | ]); |
18 | 18 | |
19 | 19 | $geoCoding = new Geocoding(); |
@@ -21,6 +21,6 @@ discard block |
||
21 | 21 | $response = $geoCoding->getZipCode($gcParameters); |
22 | 22 | |
23 | 23 | foreach ($response as $gCode) { |
24 | - Route4Me::simplePrint($gCode); |
|
25 | - echo '<br>'; |
|
24 | + Route4Me::simplePrint($gCode); |
|
25 | + echo '<br>'; |
|
26 | 26 | } |
@@ -11,16 +11,16 @@ discard block |
||
11 | 11 | Route4Me::setApiKey(Constants::API_KEY); |
12 | 12 | |
13 | 13 | $addressList = [ |
14 | - 'Los Angeles International Airport, CA', |
|
15 | - 'n512, Florida Pl, Barberton, OH,44203', |
|
16 | - '3495, Purdue St, Cuyahoga Falls,OH,44221', |
|
14 | + 'Los Angeles International Airport, CA', |
|
15 | + 'n512, Florida Pl, Barberton, OH,44203', |
|
16 | + '3495, Purdue St, Cuyahoga Falls,OH,44221', |
|
17 | 17 | ]; |
18 | 18 | |
19 | 19 | $addressesString = implode('\n', $addressList); |
20 | 20 | |
21 | 21 | $geoCodingParameters = [ |
22 | - 'strExportFormat' => 'json', |
|
23 | - 'addresses' => $addressesString, |
|
22 | + 'strExportFormat' => 'json', |
|
23 | + 'addresses' => $addressesString, |
|
24 | 24 | ]; |
25 | 25 | |
26 | 26 | $fGeoCoding = new Geocoding(); |
@@ -28,13 +28,13 @@ discard block |
||
28 | 28 | $bgResults = $fGeoCoding->forwardGeocoding($geoCodingParameters); |
29 | 29 | |
30 | 30 | if ('json' == $geoCodingParameters['strExportFormat']) { |
31 | - foreach ($bgResults as $bgResult) { |
|
32 | - Route4Me::simplePrint($bgResult); |
|
33 | - echo '<br>'; |
|
34 | - } |
|
31 | + foreach ($bgResults as $bgResult) { |
|
32 | + Route4Me::simplePrint($bgResult); |
|
33 | + echo '<br>'; |
|
34 | + } |
|
35 | 35 | } else { |
36 | - foreach ($bgResults['destination'] as $bgResult) { |
|
37 | - Route4Me::simplePrint($bgResult); |
|
38 | - echo '<br>'; |
|
39 | - } |
|
36 | + foreach ($bgResults['destination'] as $bgResult) { |
|
37 | + Route4Me::simplePrint($bgResult); |
|
38 | + echo '<br>'; |
|
39 | + } |
|
40 | 40 | } |