GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Test Failed
Push — master ( 84c959...e5b8eb )
by Igor
10:00 queued 12s
created
src/Route4Me/AddressNoteResponse.php 1 patch
Indentation   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -9,23 +9,23 @@
 block discarded – undo
9 9
  */
10 10
 class AddressNoteResponse extends Common
11 11
 {
12
-    public $status;
13
-    public $note_id;
14
-    public $upload_id;
15
-    public $note;
12
+	public $status;
13
+	public $note_id;
14
+	public $upload_id;
15
+	public $note;
16 16
 
17
-    public static function fromArray(array $params)
18
-    {
19
-        $addressNoteResponse = new self();
17
+	public static function fromArray(array $params)
18
+	{
19
+		$addressNoteResponse = new self();
20 20
 
21
-        foreach ($params as $key => $value) {
22
-            if (property_exists($addressNoteResponse, $key)) {
23
-                $addressNoteResponse->{$key} = $value;
24
-            } else {
25
-                throw new BadParam("Correct parameter must be provided. Wrong Parameter: $key");
26
-            }
27
-        }
21
+		foreach ($params as $key => $value) {
22
+			if (property_exists($addressNoteResponse, $key)) {
23
+				$addressNoteResponse->{$key} = $value;
24
+			} else {
25
+				throw new BadParam("Correct parameter must be provided. Wrong Parameter: $key");
26
+			}
27
+		}
28 28
 
29
-        return $addressNoteResponse;
30
-    }
29
+		return $addressNoteResponse;
30
+	}
31 31
 }
32 32
\ No newline at end of file
Please login to merge, or discard this patch.
src/Route4Me/ScheduleCalendarResponse.php 1 patch
Indentation   +20 added lines, -20 removed lines patch added patch discarded remove patch
@@ -10,36 +10,36 @@
 block discarded – undo
10 10
  */
11 11
 class ScheduleCalendarResponse extends Common
12 12
 {
13
-    /**
14
-     * The address book contact quantity by dates
15
-     * (dates are in the string format, e.g. 2020-10-18).
16
-     * @var array
17
-     */
18
-    public $address_book = [];
13
+	/**
14
+	 * The address book contact quantity by dates
15
+	 * (dates are in the string format, e.g. 2020-10-18).
16
+	 * @var array
17
+	 */
18
+	public $address_book = [];
19 19
 
20
-    /*
20
+	/*
21 21
      * The order quantity by dates
22 22
      * (dates are in the string format, e.g. 2020-10-18).
23 23
      * @var array
24 24
      */
25
-    public $orders = [];
25
+	public $orders = [];
26 26
 
27
-    /*
27
+	/*
28 28
      * The order quantity by dates
29 29
      * (dates are in the string format, e.g. 2020-10-18).
30 30
      * @var array
31 31
      */
32
-    public $routes_count = [];
32
+	public $routes_count = [];
33 33
 
34
-    public static function fromArray(array $params)
35
-    {
36
-        $order = new self();
37
-        foreach ($params as $key => $value) {
38
-            if (property_exists($order, $key)) {
39
-                $order->{$key} = $value;
40
-            }
41
-        }
34
+	public static function fromArray(array $params)
35
+	{
36
+		$order = new self();
37
+		foreach ($params as $key => $value) {
38
+			if (property_exists($order, $key)) {
39
+				$order->{$key} = $value;
40
+			}
41
+		}
42 42
 
43
-        return $order;
44
-    }
43
+		return $order;
44
+	}
45 45
 }
Please login to merge, or discard this patch.
UnitTestFiles/Test/AdvancedConstraintsUnitTests.php 1 patch
Indentation   +64 added lines, -64 removed lines patch added patch discarded remove patch
@@ -14,79 +14,79 @@
 block discarded – undo
14 14
 use Route4Me\V5\Addresses\RouteAdvancedConstraints;
15 15
 
16 16
 class AdvancedConstraintsUnitTests extends \PHPUnit\Framework\TestCase {
17
-    public static $problem;
17
+	public static $problem;
18 18
 
19
-    public static function setUpBeforeClass()
20
-    {
21
-        Route4Me::setApiKey(Constants::API_KEY);
22
-        self::$problem = null;
23
-    }
19
+	public static function setUpBeforeClass()
20
+	{
21
+		Route4Me::setApiKey(Constants::API_KEY);
22
+		self::$problem = null;
23
+	}
24 24
 
25
-    public function testAdvancedConstraintsExample12()
26
-    {
27
-        $addresses = array_map('str_getcsv', file(dirname(__FILE__).'/data/locations.csv'));
28
-        array_walk($addresses, function(&$a) use ($addresses) { $a = Address::fromArray(array_combine($addresses[0], $a)); });
29
-        array_shift($addresses);
25
+	public function testAdvancedConstraintsExample12()
26
+	{
27
+		$addresses = array_map('str_getcsv', file(dirname(__FILE__).'/data/locations.csv'));
28
+		array_walk($addresses, function(&$a) use ($addresses) { $a = Address::fromArray(array_combine($addresses[0], $a)); });
29
+		array_shift($addresses);
30 30
 
31
-        $parameters = RouteParameters::fromArray([
32
-            'algorithm_type' => AlgorithmType::ADVANCED_CVRP_TW,
33
-            'store_route' => false,
34
-            'rt' => true,
35
-            'parts' => 30,
36
-            'metric' => Metric::MATRIX,
37
-            'member_id' => 444333,
38
-            'route_name' => "Drivers Schedules - 3 Territories",
39
-            'optimize' => "Distance",
40
-            'distance_unit' => "mi",
41
-            'device_type' => DeviceType::WEB,
42
-            'travel_mode' => "Driving",
43
-            'advanced_constraints' => []
44
-        ]);
31
+		$parameters = RouteParameters::fromArray([
32
+			'algorithm_type' => AlgorithmType::ADVANCED_CVRP_TW,
33
+			'store_route' => false,
34
+			'rt' => true,
35
+			'parts' => 30,
36
+			'metric' => Metric::MATRIX,
37
+			'member_id' => 444333,
38
+			'route_name' => "Drivers Schedules - 3 Territories",
39
+			'optimize' => "Distance",
40
+			'distance_unit' => "mi",
41
+			'device_type' => DeviceType::WEB,
42
+			'travel_mode' => "Driving",
43
+			'advanced_constraints' => []
44
+		]);
45 45
 
46
-        $zones = [["ZONE 01"], ["ZONE 02"], ["ZONE 03"]];
46
+		$zones = [["ZONE 01"], ["ZONE 02"], ["ZONE 03"]];
47 47
 
48
-        for($i = 0; $i < 30; ++$i)
49
-        {
50
-            $parameters->advanced_constraints[] = RouteAdvancedConstraints::fromArray([
51
-                'tags' => [$zones[$i % 3]],
52
-                'members_count' => 1,
53
-                'available_time_windows' => [[(8 + 5) * 3600, (11 + 5) * 3600]],
54
-                'location_sequence_pattern' => [Address::fromArray([
55
-                    'address' => "RETAIL LOCATION",
56
-                    'alias' => "RETAIL LOCATION",
57
-                    'lat' => 25.8741751,
58
-                    'lng' => -80.1288583,
59
-                    'time' => 300
60
-                ])]
61
-            ]);
62
-        }
48
+		for($i = 0; $i < 30; ++$i)
49
+		{
50
+			$parameters->advanced_constraints[] = RouteAdvancedConstraints::fromArray([
51
+				'tags' => [$zones[$i % 3]],
52
+				'members_count' => 1,
53
+				'available_time_windows' => [[(8 + 5) * 3600, (11 + 5) * 3600]],
54
+				'location_sequence_pattern' => [Address::fromArray([
55
+					'address' => "RETAIL LOCATION",
56
+					'alias' => "RETAIL LOCATION",
57
+					'lat' => 25.8741751,
58
+					'lng' => -80.1288583,
59
+					'time' => 300
60
+				])]
61
+			]);
62
+		}
63 63
     
64
-        $optimizationParameters = new OptimizationProblemParams();
65
-        $optimizationParameters->setAddresses($addresses);
66
-        $optimizationParameters->setParameters($parameters);
64
+		$optimizationParameters = new OptimizationProblemParams();
65
+		$optimizationParameters->setAddresses($addresses);
66
+		$optimizationParameters->setParameters($parameters);
67 67
 
68
-        self::$problem = OptimizationProblem::optimize($optimizationParameters);
68
+		self::$problem = OptimizationProblem::optimize($optimizationParameters);
69 69
 
70
-        $this->assertNotNull(self::$problem->optimization_problem_id);
71
-        $this->assertEquals(self::$problem->parameters->route_name, 'Drivers Schedules - 3 Territories');
72
-    }
70
+		$this->assertNotNull(self::$problem->optimization_problem_id);
71
+		$this->assertEquals(self::$problem->parameters->route_name, 'Drivers Schedules - 3 Territories');
72
+	}
73 73
 
74
-    public static function tearDownAfterClass()
75
-    {
76
-        if(!is_null(self::$problem->optimization_problem_id))
77
-        {
78
-            $params = [
79
-                'optimization_problem_ids' => ['0' => self::$problem->optimization_problem_id],
80
-                'redirect' => 0,
81
-            ];
74
+	public static function tearDownAfterClass()
75
+	{
76
+		if(!is_null(self::$problem->optimization_problem_id))
77
+		{
78
+			$params = [
79
+				'optimization_problem_ids' => ['0' => self::$problem->optimization_problem_id],
80
+				'redirect' => 0,
81
+			];
82 82
 
83
-            $result = self::$problem->removeOptimization($params);
83
+			$result = self::$problem->removeOptimization($params);
84 84
 
85
-            if ($result != null && $result['status'] == true) {
86
-                echo "The test optimization was removed <br>";
87
-            } else {
88
-                echo "Cannot remove the test optimization <br>";
89
-            }
90
-        }
91
-    }
85
+			if ($result != null && $result['status'] == true) {
86
+				echo "The test optimization was removed <br>";
87
+			} else {
88
+				echo "Cannot remove the test optimization <br>";
89
+			}
90
+		}
91
+	}
92 92
 }
Please login to merge, or discard this patch.
UnitTestFiles/Test/OrderTests.php 1 patch
Indentation   +541 added lines, -541 removed lines patch added patch discarded remove patch
@@ -20,545 +20,545 @@
 block discarded – undo
20 20
 
21 21
 class OrderTests extends \PHPUnit\Framework\TestCase
22 22
 {
23
-    public static $createdOrders = [];
24
-    public static $createdProblems = [];
25
-
26
-    public static function setUpBeforeClass()
27
-    {
28
-        Route4Me::setApiKey(Constants::API_KEY);
29
-
30
-        //region -- Create Test Optimization --
31
-
32
-        // Huge list of addresses
33
-        $json = json_decode(file_get_contents(dirname(__FILE__).'/data/addresses.json'), true);
34
-        $json = array_slice($json, 0, 10);
35
-
36
-        $addresses = [];
37
-        foreach ($json as $address) {
38
-            $addresses[] = Address::fromArray($address);
39
-        }
40
-
41
-        $parameters = RouteParameters::fromArray([
42
-            'algorithm_type'    => Algorithmtype::TSP,
43
-            'route_name'        => 'Single Driver Multiple TW 10 Stops '.date('Y-m-d H:i'),
44
-            'route_date'        => time() + 24 * 60 * 60,
45
-            'route_time'        => 5 * 3600 + 30 * 60,
46
-            'distance_unit'     => DistanceUnit::MILES,
47
-            'device_type'       => DeviceType::WEB,
48
-            'optimize'          => OptimizationType::DISTANCE,
49
-            'metric'            => Metric::GEODESIC,
50
-        ]);
51
-
52
-        $optimizationParams = new OptimizationProblemParams();
53
-        $optimizationParams->setAddresses($addresses);
54
-        $optimizationParams->setParameters($parameters);
55
-
56
-        $problem = OptimizationProblem::optimize($optimizationParams);
57
-
58
-        self::$createdProblems[] = $problem;
59
-
60
-        //endregion
61
-
62
-        //region -- Create Test Order --
63
-
64
-        $orderParameters = Order::fromArray([
65
-            'address_1'                 => '1358 E Luzerne St, Philadelphia, PA 19124, US',
66
-            'cached_lat'                => 48.335991,
67
-            'cached_lng'                => 31.18287,
68
-            'address_alias'             => 'Auto test address',
69
-            'address_city'              => 'Philadelphia',
70
-            'day_scheduled_for_YYMMDD'  => date('Y-m-d'),
71
-            'EXT_FIELD_first_name'      => 'Igor',
72
-            'EXT_FIELD_last_name'       => 'Progman',
73
-            'EXT_FIELD_email'           => '[email protected]',
74
-            'EXT_FIELD_phone'           => '380380380380',
75
-            'EXT_FIELD_custom_data'     => [
76
-                0 => [
77
-                    'order_id'  => '10',
78
-                    'name'      => 'Bill Soul',
79
-                ],
80
-            ],
81
-        ]);
82
-
83
-        $order = new Order();
84
-
85
-        $response = $order->addOrder($orderParameters);
86
-
87
-        self::assertNotNull($response);
88
-        self::assertInstanceOf(Order::class, Order::fromArray($response));
89
-
90
-        self::$createdOrders[] = $response;
91
-
92
-        //endregion
93
-    }
94
-
95
-    public function testFromArray()
96
-    {
97
-        $orderParameters = Order::fromArray([
98
-            'address_1'                 => '1358 E Luzerne St, Philadelphia, PA 19124, US',
99
-            'cached_lat'                => 48.335991,
100
-            'cached_lng'                => 31.18287,
101
-            'address_alias'             => 'Auto test address',
102
-            'address_city'              => 'Philadelphia',
103
-            'day_scheduled_for_YYMMDD'  => date('Y-m-d'),
104
-            'EXT_FIELD_first_name'      => 'Igor',
105
-            'EXT_FIELD_last_name'       => 'Progman',
106
-            'EXT_FIELD_email'           => '[email protected]',
107
-            'EXT_FIELD_phone'           => '380380380380',
108
-            'EXT_FIELD_custom_data'     => [
109
-                0 => [
110
-                    'order_id'  => '10',
111
-                    'name'      => 'Bill Soul',
112
-                ],
113
-            ],
114
-        ]);
115
-
116
-        $this->assertEquals('1358 E Luzerne St, Philadelphia, PA 19124, US', $orderParameters->address_1);
117
-        $this->assertEquals(48.335991, $orderParameters->cached_lat);
118
-        $this->assertEquals(31.18287, $orderParameters->cached_lng);
119
-        $this->assertEquals('Auto test address', $orderParameters->address_alias);
120
-        $this->assertEquals('Philadelphia', $orderParameters->address_city);
121
-        $this->assertEquals(date('Y-m-d'), $orderParameters->day_scheduled_for_YYMMDD);
122
-        $this->assertEquals('Igor', $orderParameters->EXT_FIELD_first_name);
123
-        $this->assertEquals('Progman', $orderParameters->EXT_FIELD_last_name);
124
-        $this->assertEquals('[email protected]', $orderParameters->EXT_FIELD_email);
125
-        $this->assertEquals('380380380380', $orderParameters->EXT_FIELD_phone);
126
-        $this->assertEquals([
127
-            0 => [
128
-                'order_id'  => '10',
129
-                'name'      => 'Bill Soul',
130
-            ],
131
-        ], $orderParameters->EXT_FIELD_custom_data);
132
-    }
133
-
134
-    public function testToArray()
135
-    {
136
-        $orderParameters = Order::fromArray([
137
-            'address_1'                 => '1358 E Luzerne St, Philadelphia, PA 19124, US',
138
-            'cached_lat'                => 48.335991,
139
-            'cached_lng'                => 31.18287,
140
-            'address_alias'             => 'Auto test address',
141
-            'address_city'              => 'Philadelphia',
142
-            'day_scheduled_for_YYMMDD'  => date('Y-m-d'),
143
-            'EXT_FIELD_first_name'      => 'Igor',
144
-            'EXT_FIELD_last_name'       => 'Progman',
145
-            'EXT_FIELD_email'           => '[email protected]',
146
-            'EXT_FIELD_phone'           => '380380380380',
147
-            'EXT_FIELD_custom_data'     => [
148
-                0 => [
149
-                    'order_id'  => '10',
150
-                    'name'      => 'Bill Soul',
151
-                ],
152
-            ],
153
-        ]);
154
-
155
-        $this->assertEquals($orderParameters->toArray(),
156
-            [
157
-                'address_1'                 => '1358 E Luzerne St, Philadelphia, PA 19124, US',
158
-                'cached_lat'                => 48.335991,
159
-                'cached_lng'                => 31.18287,
160
-                'address_alias'             => 'Auto test address',
161
-                'address_city'              => 'Philadelphia',
162
-                'day_scheduled_for_YYMMDD'  => date('Y-m-d'),
163
-                'EXT_FIELD_first_name'      => 'Igor',
164
-                'EXT_FIELD_last_name'       => 'Progman',
165
-                'EXT_FIELD_email'           => '[email protected]',
166
-                'EXT_FIELD_phone'           => '380380380380',
167
-                'EXT_FIELD_custom_data'     => [
168
-                    0 => [
169
-                        'order_id'  => '10',
170
-                        'name'      => 'Bill Soul',
171
-                    ],
172
-                ],
173
-            ]
174
-        );
175
-    }
176
-
177
-    public function testGetOrders()
178
-    {
179
-        $order = new Order();
180
-
181
-        $orderParameters = Order::fromArray([
182
-            'offset'    => 0,
183
-            'limit'     => 5,
184
-        ]);
185
-
186
-        $response = $order->getOrders($orderParameters);
187
-
188
-        $this->assertNotNull($response);
189
-        $this->assertTrue(is_array($response));
190
-        $this->assertTrue(isset($response['total']));
191
-        $this->assertTrue(isset($response['results']));
192
-        $this->assertInstanceOf(
193
-            Order::class,
194
-            Order::fromArray($response['results'][0])
195
-        );
196
-    }
197
-
198
-    public function testCreateNewOrder()
199
-    {
200
-        $orderParameters = Order::fromArray([
201
-            'address_1'                 => '106 Liberty St, New York, NY 10006, USA',
202
-            'address_alias'             => 'BK Restaurant #: 2446',
203
-            'cached_lat'                => 40.709637,
204
-            'cached_lng'                => -74.011912,
205
-            'curbside_lat'              => 40.709637,
206
-            'curbside_lng'              => -74.011912,
207
-            'address_city'              => 'New York',
208
-            'EXT_FIELD_first_name'      => 'Lui',
209
-            'EXT_FIELD_last_name'       => 'Carol',
210
-            'EXT_FIELD_email'           => '[email protected]',
211
-            'EXT_FIELD_phone'           => '897946541',
212
-            'local_time_window_end'     => 39000,
213
-            'local_time_window_end_2'   => 46200,
214
-            'local_time_window_start'   => 37800,
215
-            'local_time_window_start_2' => 45000,
216
-            'local_timezone_string'     => 'America/New_York',
217
-            'order_icon'                => 'emoji/emoji-bank',
218
-        ]);
219
-
220
-        $order = new Order();
221
-
222
-        $response = $order->addOrder($orderParameters);
223
-
224
-        self::assertNotNull($response);
225
-        self::assertInstanceOf(Order::class, Order::fromArray($response));
226
-
227
-        self::$createdOrders[] = $response;
228
-    }
229
-
230
-    public function testAddOrdersToOptimization()
231
-    {
232
-        $body = json_decode(file_get_contents(dirname(__FILE__).'/data/add_order_to_optimization_data.json'), true);
233
-
234
-        $optimizationProblemId = self::$createdProblems[0]->optimization_problem_id;
235
-
236
-        $orderParameters = [
237
-            'optimization_problem_id'   => $optimizationProblemId,
238
-            'redirect'                  => 0,
239
-            'device_type'               => 'web',
240
-            'addresses'                 => $body['addresses'],
241
-        ];
242
-
243
-        $order = new Order();
244
-
245
-        $response = $order->addOrder2Optimization($orderParameters);
246
-
247
-        self::assertNotNull($response);
248
-        self::assertInstanceOf(OptimizationProblem::class, OptimizationProblem::fromArray($response));
249
-    }
250
-
251
-    public function testAddOrdersToRoute()
252
-    {
253
-        $body = json_decode(file_get_contents(dirname(__FILE__).'/data/add_order_to_route_data.json'), true);
254
-
255
-        $routeId = self::$createdProblems[0]->routes[0]->route_id;
256
-
257
-        $orderParameters = Order::fromArray([
258
-            'route_id'  => $routeId,
259
-            'redirect'  => 0,
260
-            'addresses' => $body['addresses'],
261
-        ]);
262
-
263
-        $order = new Order();
264
-
265
-        $response = $order->addOrder2Route($orderParameters);
266
-
267
-        self::assertNotNull($response);
268
-        self::assertInstanceOf(Route::class, Route::fromArray($response));
269
-    }
270
-
271
-    public function testAddScheduledOrder()
272
-    {
273
-        $orderParameters = Order::fromArray([
274
-            'address_1'                 => '318 S 39th St, Louisville, KY 40212, USA',
275
-            'cached_lat'                => 38.259326,
276
-            'cached_lng'                => -85.814979,
277
-            'curbside_lat'              => 38.259326,
278
-            'curbside_lng'              => -85.814979,
279
-            'address_alias'             => '318 S 39th St 40212',
280
-            'address_city'              => 'Louisville',
281
-            'EXT_FIELD_first_name'      => 'Lui',
282
-            'EXT_FIELD_last_name'       => 'Carol',
283
-            'EXT_FIELD_email'           => '[email protected]',
284
-            'EXT_FIELD_phone'           => '897946541',
285
-            'EXT_FIELD_custom_data'     => ['order_type' => 'scheduled order'],
286
-            'day_scheduled_for_YYMMDD'  => date('Y-m-d'),
287
-            'local_time_window_end'     => 39000,
288
-            'local_time_window_end_2'   => 46200,
289
-            'local_time_window_start'   => 37800,
290
-            'local_time_window_start_2' => 45000,
291
-            'local_timezone_string'     => 'America/New_York',
292
-            'order_icon'                => 'emoji/emoji-bank',
293
-        ]);
294
-
295
-        $order = new Order();
296
-
297
-        $response = $order->addOrder($orderParameters);
298
-
299
-        self::assertNotNull($response);
300
-        self::assertInstanceOf(Order::class, Order::fromArray($response));
301
-
302
-        self::$createdOrders[] = $response;
303
-    }
304
-
305
-    public function testCreateOrderWithCustomField()
306
-    {
307
-        $orderParameters = Order::fromArray([
308
-            'address_1'                => '1358 E Luzerne St, Philadelphia, PA 19124, US',
309
-            'cached_lat'               => 48.335991,
310
-            'cached_lng'               => 31.18287,
311
-            'day_scheduled_for_YYMMDD' => '2019-10-11',
312
-            'address_alias'            => 'Auto test address',
313
-            'custom_user_fields' => [
314
-                OrderCustomField::fromArray([
315
-                    'order_custom_field_id'    => 93,
316
-                    'order_custom_field_value' => 'false'
317
-                ])
318
-            ]
319
-        ]);
320
-
321
-        $order = new Order();
322
-
323
-        $response = $order->addOrder($orderParameters);
324
-
325
-        self::assertNotNull($response);
326
-        self::assertInstanceOf(Order::class, Order::fromArray($response));
327
-        $this->assertEquals(93,$response['custom_user_fields'][0]['order_custom_field_id']);
328
-        $this->assertEquals(false,$response['custom_user_fields'][0]['order_custom_field_value']);
329
-
330
-        self::$createdOrders[] = $response;
331
-    }
332
-
333
-    public function testGetOrderByID()
334
-    {
335
-        $order = new Order();
336
-
337
-        $orderID = self::$createdOrders[0]['order_id'];
338
-
339
-        // Get an order
340
-        $orderParameters = Order::fromArray([
341
-            'order_id' => $orderID,
342
-        ]);
343
-
344
-        $response = $order->getOrder($orderParameters);
345
-
346
-        self::assertNotNull($response);
347
-        self::assertInstanceOf(Order::class, Order::fromArray($response));
348
-    }
349
-
350
-    public function testGetOrderByInsertedDate()
351
-    {
352
-        $orderParameters = Order::fromArray([
353
-            'day_added_YYMMDD'  => date('Y-m-d', strtotime('0 days')),
354
-            'offset'            => 0,
355
-            'limit'             => 5,
356
-        ]);
357
-
358
-        $order = new Order();
359
-
360
-        $response = $order->getOrder($orderParameters);
361
-
362
-        $this->assertNotNull($response);
363
-        $this->assertTrue(is_array($response));
364
-        $this->assertTrue(isset($response['total']));
365
-        $this->assertTrue(isset($response['results']));
366
-        $this->assertInstanceOf(
367
-            Order::class,
368
-            Order::fromArray($response['results'][0])
369
-        );
370
-    }
371
-
372
-    public function testGetOrderByScheduledDate()
373
-    {
374
-        $orderParameters = Order::fromArray([
375
-            'day_scheduled_for_YYMMDD'  => date('Y-m-d', strtotime('0 days')),
376
-            'offset'                    => 0,
377
-            'limit'                     => 5,
378
-        ]);
379
-
380
-        $order = new Order();
381
-
382
-        $response = $order->getOrder($orderParameters);
383
-
384
-        $this->assertNotNull($response);
385
-        $this->assertTrue(is_array($response));
386
-        $this->assertTrue(isset($response['total']));
387
-        $this->assertTrue(isset($response['results']));
388
-        $this->assertInstanceOf(
389
-            Order::class,
390
-            Order::fromArray($response['results'][0])
391
-        );
392
-    }
393
-
394
-    public function testGetOrdersByCustomFields()
395
-    {
396
-        $orderParameters = Order::fromArray([
397
-            'fields'    => 'order_id,member_id',
398
-            'offset'    => 0,
399
-            'limit'     => 5,
400
-        ]);
401
-
402
-        $order = new Order();
403
-
404
-        $response = $order->getOrder($orderParameters);
405
-
406
-        $response = $order->getOrder($orderParameters);
407
-
408
-        $this->assertNotNull($response);
409
-        $this->assertTrue(is_array($response));
410
-        $this->assertTrue(isset($response['total']));
411
-        $this->assertTrue(isset($response['results']));
412
-        $this->assertTrue(isset($response['fields']));
413
-        $this->assertInstanceOf(
414
-            Order::class,
415
-            Order::fromArray($response['results'][0])
416
-        );
417
-    }
418
-
419
-    public function testGetOrdersByScheduleFilter()
420
-    {
421
-        $orderParameters = Order::fromArray([
422
-            'limit'  => 5,
423
-            'filter' => [
424
-                'display'               => 'all',
425
-                'scheduled_for_YYMMDD'  => [
426
-                    date('Y-m-d', strtotime('-1 days')),
427
-                    date('Y-m-d', strtotime('1 days'))
428
-                ]
429
-            ]
430
-        ]);
431
-
432
-        $order = new Order();
433
-
434
-        $response = $order->getOrder($orderParameters);
435
-
436
-        $this->assertNotNull($response);
437
-        $this->assertTrue(is_array($response));
438
-        $this->assertTrue(isset($response['total']));
439
-        $this->assertTrue(isset($response['results']));
440
-        $this->assertInstanceOf(
441
-            Order::class,
442
-            Order::fromArray($response['results'][0])
443
-        );
444
-    }
445
-
446
-    public function testGetOrdersBySpecifiedText()
447
-    {
448
-        $orderParameters = Order::fromArray([
449
-            'query'     => 'Auto test',
450
-            'offset'    => 0,
451
-            'limit'     => 5,
452
-        ]);
453
-
454
-        $order = new Order();
455
-
456
-        $response = $order->getOrder($orderParameters);
457
-
458
-        $this->assertNotNull($response);
459
-        $this->assertTrue(is_array($response));
460
-        $this->assertTrue(isset($response['total']));
461
-        $this->assertTrue(isset($response['results']));
462
-        $this->assertInstanceOf(
463
-            Order::class,
464
-            Order::fromArray($response['results'][0])
465
-        );
466
-    }
467
-
468
-    public function testUpdateOrder()
469
-    {
470
-        $order = new Order();
471
-
472
-        // Update the order
473
-        self::$createdOrders[0]['address_2'] = 'Lviv';
474
-        self::$createdOrders[0]['EXT_FIELD_phone'] = '032268593';
475
-        self::$createdOrders[0]['EXT_FIELD_custom_data'] = [
476
-            0 => [
477
-                'customer_no' => '11',
478
-            ],
479
-        ];
480
-
481
-        $response = $order->updateOrder(self::$createdOrders[0]);
482
-
483
-        $this->assertNotNull($response);
484
-        $this->assertInstanceOf(Order::class, Order::fromArray($response));
485
-        $this->assertEquals('Lviv', $response['address_2']);
486
-        $this->assertEquals('032268593', $response['EXT_FIELD_phone']);
487
-        $this->assertEquals([
488
-                0 => '{"order_id":"10","name":"Bill Soul"}'
489
-            ],
490
-            $response['EXT_FIELD_custom_data']
491
-        );
492
-    }
493
-
494
-    public function testUpdateOrderWithCustomFiel()
495
-    {
496
-        $orderParameters = Order::fromArray([
497
-            'order_id'              => self::$createdOrders[0]['order_id'],
498
-            'custom_user_fields'    => [
499
-                OrderCustomField::fromArray([
500
-                    'order_custom_field_id'    => 93,
501
-                    'order_custom_field_value' => 'true'
502
-                ])
503
-            ]
504
-        ]);
505
-
506
-        $order = new Order();
507
-
508
-        $response = $order->updateOrder($orderParameters);
509
-
510
-        $this->assertNotNull($response);
511
-        $this->assertInstanceOf(Order::class, Order::fromArray($response));
512
-        $this->assertEquals(93, $response['custom_user_fields'][0]['order_custom_field_id']);
513
-        $this->assertEquals(true, $response['custom_user_fields'][0]['order_custom_field_value']);
514
-    }
515
-
516
-    public static function tearDownAfterClass()
517
-    {
518
-        if (sizeof(self::$createdOrders)) {
519
-            $orderIDs = [];
520
-
521
-            foreach (self::$createdOrders as $ord) {
522
-                $orderIDs[] = $ord['order_id'];
523
-            }
524
-
525
-            $orderParameters = Order::fromArray([
526
-                'order_ids' => $orderIDs
527
-            ]);
528
-
529
-            $order = new Order();
530
-
531
-            $response = $order->removeOrder($orderParameters);
532
-
533
-            if (!is_null($response) &&
534
-                isset($response['status']) &&
535
-                $response['status']) {
536
-                echo "The test orders removed <br>";
537
-            }
538
-        }
539
-
540
-        if (sizeof(self::$createdProblems)>0) {
541
-            $optimizationProblemIDs = [];
542
-
543
-            foreach (self::$createdProblems as $problem) {
544
-                $optimizationProblemId = $problem->optimization_problem_id;
545
-
546
-                $optimizationProblemIDs[] = $optimizationProblemId;
547
-            }
548
-
549
-            $params = [
550
-                'optimization_problem_ids' => $optimizationProblemIDs,
551
-                'redirect'                 => 0,
552
-            ];
553
-
554
-            $problem = new OptimizationProblem();
555
-            $result = $problem->removeOptimization($params);
556
-
557
-            if ($result!=null && $result['status']==true) {
558
-                echo "The test optimizations were removed <br>";
559
-            } else {
560
-                echo "Cannot remove the test optimizations <br>";
561
-            }
562
-        }
563
-    }
23
+	public static $createdOrders = [];
24
+	public static $createdProblems = [];
25
+
26
+	public static function setUpBeforeClass()
27
+	{
28
+		Route4Me::setApiKey(Constants::API_KEY);
29
+
30
+		//region -- Create Test Optimization --
31
+
32
+		// Huge list of addresses
33
+		$json = json_decode(file_get_contents(dirname(__FILE__).'/data/addresses.json'), true);
34
+		$json = array_slice($json, 0, 10);
35
+
36
+		$addresses = [];
37
+		foreach ($json as $address) {
38
+			$addresses[] = Address::fromArray($address);
39
+		}
40
+
41
+		$parameters = RouteParameters::fromArray([
42
+			'algorithm_type'    => Algorithmtype::TSP,
43
+			'route_name'        => 'Single Driver Multiple TW 10 Stops '.date('Y-m-d H:i'),
44
+			'route_date'        => time() + 24 * 60 * 60,
45
+			'route_time'        => 5 * 3600 + 30 * 60,
46
+			'distance_unit'     => DistanceUnit::MILES,
47
+			'device_type'       => DeviceType::WEB,
48
+			'optimize'          => OptimizationType::DISTANCE,
49
+			'metric'            => Metric::GEODESIC,
50
+		]);
51
+
52
+		$optimizationParams = new OptimizationProblemParams();
53
+		$optimizationParams->setAddresses($addresses);
54
+		$optimizationParams->setParameters($parameters);
55
+
56
+		$problem = OptimizationProblem::optimize($optimizationParams);
57
+
58
+		self::$createdProblems[] = $problem;
59
+
60
+		//endregion
61
+
62
+		//region -- Create Test Order --
63
+
64
+		$orderParameters = Order::fromArray([
65
+			'address_1'                 => '1358 E Luzerne St, Philadelphia, PA 19124, US',
66
+			'cached_lat'                => 48.335991,
67
+			'cached_lng'                => 31.18287,
68
+			'address_alias'             => 'Auto test address',
69
+			'address_city'              => 'Philadelphia',
70
+			'day_scheduled_for_YYMMDD'  => date('Y-m-d'),
71
+			'EXT_FIELD_first_name'      => 'Igor',
72
+			'EXT_FIELD_last_name'       => 'Progman',
73
+			'EXT_FIELD_email'           => '[email protected]',
74
+			'EXT_FIELD_phone'           => '380380380380',
75
+			'EXT_FIELD_custom_data'     => [
76
+				0 => [
77
+					'order_id'  => '10',
78
+					'name'      => 'Bill Soul',
79
+				],
80
+			],
81
+		]);
82
+
83
+		$order = new Order();
84
+
85
+		$response = $order->addOrder($orderParameters);
86
+
87
+		self::assertNotNull($response);
88
+		self::assertInstanceOf(Order::class, Order::fromArray($response));
89
+
90
+		self::$createdOrders[] = $response;
91
+
92
+		//endregion
93
+	}
94
+
95
+	public function testFromArray()
96
+	{
97
+		$orderParameters = Order::fromArray([
98
+			'address_1'                 => '1358 E Luzerne St, Philadelphia, PA 19124, US',
99
+			'cached_lat'                => 48.335991,
100
+			'cached_lng'                => 31.18287,
101
+			'address_alias'             => 'Auto test address',
102
+			'address_city'              => 'Philadelphia',
103
+			'day_scheduled_for_YYMMDD'  => date('Y-m-d'),
104
+			'EXT_FIELD_first_name'      => 'Igor',
105
+			'EXT_FIELD_last_name'       => 'Progman',
106
+			'EXT_FIELD_email'           => '[email protected]',
107
+			'EXT_FIELD_phone'           => '380380380380',
108
+			'EXT_FIELD_custom_data'     => [
109
+				0 => [
110
+					'order_id'  => '10',
111
+					'name'      => 'Bill Soul',
112
+				],
113
+			],
114
+		]);
115
+
116
+		$this->assertEquals('1358 E Luzerne St, Philadelphia, PA 19124, US', $orderParameters->address_1);
117
+		$this->assertEquals(48.335991, $orderParameters->cached_lat);
118
+		$this->assertEquals(31.18287, $orderParameters->cached_lng);
119
+		$this->assertEquals('Auto test address', $orderParameters->address_alias);
120
+		$this->assertEquals('Philadelphia', $orderParameters->address_city);
121
+		$this->assertEquals(date('Y-m-d'), $orderParameters->day_scheduled_for_YYMMDD);
122
+		$this->assertEquals('Igor', $orderParameters->EXT_FIELD_first_name);
123
+		$this->assertEquals('Progman', $orderParameters->EXT_FIELD_last_name);
124
+		$this->assertEquals('[email protected]', $orderParameters->EXT_FIELD_email);
125
+		$this->assertEquals('380380380380', $orderParameters->EXT_FIELD_phone);
126
+		$this->assertEquals([
127
+			0 => [
128
+				'order_id'  => '10',
129
+				'name'      => 'Bill Soul',
130
+			],
131
+		], $orderParameters->EXT_FIELD_custom_data);
132
+	}
133
+
134
+	public function testToArray()
135
+	{
136
+		$orderParameters = Order::fromArray([
137
+			'address_1'                 => '1358 E Luzerne St, Philadelphia, PA 19124, US',
138
+			'cached_lat'                => 48.335991,
139
+			'cached_lng'                => 31.18287,
140
+			'address_alias'             => 'Auto test address',
141
+			'address_city'              => 'Philadelphia',
142
+			'day_scheduled_for_YYMMDD'  => date('Y-m-d'),
143
+			'EXT_FIELD_first_name'      => 'Igor',
144
+			'EXT_FIELD_last_name'       => 'Progman',
145
+			'EXT_FIELD_email'           => '[email protected]',
146
+			'EXT_FIELD_phone'           => '380380380380',
147
+			'EXT_FIELD_custom_data'     => [
148
+				0 => [
149
+					'order_id'  => '10',
150
+					'name'      => 'Bill Soul',
151
+				],
152
+			],
153
+		]);
154
+
155
+		$this->assertEquals($orderParameters->toArray(),
156
+			[
157
+				'address_1'                 => '1358 E Luzerne St, Philadelphia, PA 19124, US',
158
+				'cached_lat'                => 48.335991,
159
+				'cached_lng'                => 31.18287,
160
+				'address_alias'             => 'Auto test address',
161
+				'address_city'              => 'Philadelphia',
162
+				'day_scheduled_for_YYMMDD'  => date('Y-m-d'),
163
+				'EXT_FIELD_first_name'      => 'Igor',
164
+				'EXT_FIELD_last_name'       => 'Progman',
165
+				'EXT_FIELD_email'           => '[email protected]',
166
+				'EXT_FIELD_phone'           => '380380380380',
167
+				'EXT_FIELD_custom_data'     => [
168
+					0 => [
169
+						'order_id'  => '10',
170
+						'name'      => 'Bill Soul',
171
+					],
172
+				],
173
+			]
174
+		);
175
+	}
176
+
177
+	public function testGetOrders()
178
+	{
179
+		$order = new Order();
180
+
181
+		$orderParameters = Order::fromArray([
182
+			'offset'    => 0,
183
+			'limit'     => 5,
184
+		]);
185
+
186
+		$response = $order->getOrders($orderParameters);
187
+
188
+		$this->assertNotNull($response);
189
+		$this->assertTrue(is_array($response));
190
+		$this->assertTrue(isset($response['total']));
191
+		$this->assertTrue(isset($response['results']));
192
+		$this->assertInstanceOf(
193
+			Order::class,
194
+			Order::fromArray($response['results'][0])
195
+		);
196
+	}
197
+
198
+	public function testCreateNewOrder()
199
+	{
200
+		$orderParameters = Order::fromArray([
201
+			'address_1'                 => '106 Liberty St, New York, NY 10006, USA',
202
+			'address_alias'             => 'BK Restaurant #: 2446',
203
+			'cached_lat'                => 40.709637,
204
+			'cached_lng'                => -74.011912,
205
+			'curbside_lat'              => 40.709637,
206
+			'curbside_lng'              => -74.011912,
207
+			'address_city'              => 'New York',
208
+			'EXT_FIELD_first_name'      => 'Lui',
209
+			'EXT_FIELD_last_name'       => 'Carol',
210
+			'EXT_FIELD_email'           => '[email protected]',
211
+			'EXT_FIELD_phone'           => '897946541',
212
+			'local_time_window_end'     => 39000,
213
+			'local_time_window_end_2'   => 46200,
214
+			'local_time_window_start'   => 37800,
215
+			'local_time_window_start_2' => 45000,
216
+			'local_timezone_string'     => 'America/New_York',
217
+			'order_icon'                => 'emoji/emoji-bank',
218
+		]);
219
+
220
+		$order = new Order();
221
+
222
+		$response = $order->addOrder($orderParameters);
223
+
224
+		self::assertNotNull($response);
225
+		self::assertInstanceOf(Order::class, Order::fromArray($response));
226
+
227
+		self::$createdOrders[] = $response;
228
+	}
229
+
230
+	public function testAddOrdersToOptimization()
231
+	{
232
+		$body = json_decode(file_get_contents(dirname(__FILE__).'/data/add_order_to_optimization_data.json'), true);
233
+
234
+		$optimizationProblemId = self::$createdProblems[0]->optimization_problem_id;
235
+
236
+		$orderParameters = [
237
+			'optimization_problem_id'   => $optimizationProblemId,
238
+			'redirect'                  => 0,
239
+			'device_type'               => 'web',
240
+			'addresses'                 => $body['addresses'],
241
+		];
242
+
243
+		$order = new Order();
244
+
245
+		$response = $order->addOrder2Optimization($orderParameters);
246
+
247
+		self::assertNotNull($response);
248
+		self::assertInstanceOf(OptimizationProblem::class, OptimizationProblem::fromArray($response));
249
+	}
250
+
251
+	public function testAddOrdersToRoute()
252
+	{
253
+		$body = json_decode(file_get_contents(dirname(__FILE__).'/data/add_order_to_route_data.json'), true);
254
+
255
+		$routeId = self::$createdProblems[0]->routes[0]->route_id;
256
+
257
+		$orderParameters = Order::fromArray([
258
+			'route_id'  => $routeId,
259
+			'redirect'  => 0,
260
+			'addresses' => $body['addresses'],
261
+		]);
262
+
263
+		$order = new Order();
264
+
265
+		$response = $order->addOrder2Route($orderParameters);
266
+
267
+		self::assertNotNull($response);
268
+		self::assertInstanceOf(Route::class, Route::fromArray($response));
269
+	}
270
+
271
+	public function testAddScheduledOrder()
272
+	{
273
+		$orderParameters = Order::fromArray([
274
+			'address_1'                 => '318 S 39th St, Louisville, KY 40212, USA',
275
+			'cached_lat'                => 38.259326,
276
+			'cached_lng'                => -85.814979,
277
+			'curbside_lat'              => 38.259326,
278
+			'curbside_lng'              => -85.814979,
279
+			'address_alias'             => '318 S 39th St 40212',
280
+			'address_city'              => 'Louisville',
281
+			'EXT_FIELD_first_name'      => 'Lui',
282
+			'EXT_FIELD_last_name'       => 'Carol',
283
+			'EXT_FIELD_email'           => '[email protected]',
284
+			'EXT_FIELD_phone'           => '897946541',
285
+			'EXT_FIELD_custom_data'     => ['order_type' => 'scheduled order'],
286
+			'day_scheduled_for_YYMMDD'  => date('Y-m-d'),
287
+			'local_time_window_end'     => 39000,
288
+			'local_time_window_end_2'   => 46200,
289
+			'local_time_window_start'   => 37800,
290
+			'local_time_window_start_2' => 45000,
291
+			'local_timezone_string'     => 'America/New_York',
292
+			'order_icon'                => 'emoji/emoji-bank',
293
+		]);
294
+
295
+		$order = new Order();
296
+
297
+		$response = $order->addOrder($orderParameters);
298
+
299
+		self::assertNotNull($response);
300
+		self::assertInstanceOf(Order::class, Order::fromArray($response));
301
+
302
+		self::$createdOrders[] = $response;
303
+	}
304
+
305
+	public function testCreateOrderWithCustomField()
306
+	{
307
+		$orderParameters = Order::fromArray([
308
+			'address_1'                => '1358 E Luzerne St, Philadelphia, PA 19124, US',
309
+			'cached_lat'               => 48.335991,
310
+			'cached_lng'               => 31.18287,
311
+			'day_scheduled_for_YYMMDD' => '2019-10-11',
312
+			'address_alias'            => 'Auto test address',
313
+			'custom_user_fields' => [
314
+				OrderCustomField::fromArray([
315
+					'order_custom_field_id'    => 93,
316
+					'order_custom_field_value' => 'false'
317
+				])
318
+			]
319
+		]);
320
+
321
+		$order = new Order();
322
+
323
+		$response = $order->addOrder($orderParameters);
324
+
325
+		self::assertNotNull($response);
326
+		self::assertInstanceOf(Order::class, Order::fromArray($response));
327
+		$this->assertEquals(93,$response['custom_user_fields'][0]['order_custom_field_id']);
328
+		$this->assertEquals(false,$response['custom_user_fields'][0]['order_custom_field_value']);
329
+
330
+		self::$createdOrders[] = $response;
331
+	}
332
+
333
+	public function testGetOrderByID()
334
+	{
335
+		$order = new Order();
336
+
337
+		$orderID = self::$createdOrders[0]['order_id'];
338
+
339
+		// Get an order
340
+		$orderParameters = Order::fromArray([
341
+			'order_id' => $orderID,
342
+		]);
343
+
344
+		$response = $order->getOrder($orderParameters);
345
+
346
+		self::assertNotNull($response);
347
+		self::assertInstanceOf(Order::class, Order::fromArray($response));
348
+	}
349
+
350
+	public function testGetOrderByInsertedDate()
351
+	{
352
+		$orderParameters = Order::fromArray([
353
+			'day_added_YYMMDD'  => date('Y-m-d', strtotime('0 days')),
354
+			'offset'            => 0,
355
+			'limit'             => 5,
356
+		]);
357
+
358
+		$order = new Order();
359
+
360
+		$response = $order->getOrder($orderParameters);
361
+
362
+		$this->assertNotNull($response);
363
+		$this->assertTrue(is_array($response));
364
+		$this->assertTrue(isset($response['total']));
365
+		$this->assertTrue(isset($response['results']));
366
+		$this->assertInstanceOf(
367
+			Order::class,
368
+			Order::fromArray($response['results'][0])
369
+		);
370
+	}
371
+
372
+	public function testGetOrderByScheduledDate()
373
+	{
374
+		$orderParameters = Order::fromArray([
375
+			'day_scheduled_for_YYMMDD'  => date('Y-m-d', strtotime('0 days')),
376
+			'offset'                    => 0,
377
+			'limit'                     => 5,
378
+		]);
379
+
380
+		$order = new Order();
381
+
382
+		$response = $order->getOrder($orderParameters);
383
+
384
+		$this->assertNotNull($response);
385
+		$this->assertTrue(is_array($response));
386
+		$this->assertTrue(isset($response['total']));
387
+		$this->assertTrue(isset($response['results']));
388
+		$this->assertInstanceOf(
389
+			Order::class,
390
+			Order::fromArray($response['results'][0])
391
+		);
392
+	}
393
+
394
+	public function testGetOrdersByCustomFields()
395
+	{
396
+		$orderParameters = Order::fromArray([
397
+			'fields'    => 'order_id,member_id',
398
+			'offset'    => 0,
399
+			'limit'     => 5,
400
+		]);
401
+
402
+		$order = new Order();
403
+
404
+		$response = $order->getOrder($orderParameters);
405
+
406
+		$response = $order->getOrder($orderParameters);
407
+
408
+		$this->assertNotNull($response);
409
+		$this->assertTrue(is_array($response));
410
+		$this->assertTrue(isset($response['total']));
411
+		$this->assertTrue(isset($response['results']));
412
+		$this->assertTrue(isset($response['fields']));
413
+		$this->assertInstanceOf(
414
+			Order::class,
415
+			Order::fromArray($response['results'][0])
416
+		);
417
+	}
418
+
419
+	public function testGetOrdersByScheduleFilter()
420
+	{
421
+		$orderParameters = Order::fromArray([
422
+			'limit'  => 5,
423
+			'filter' => [
424
+				'display'               => 'all',
425
+				'scheduled_for_YYMMDD'  => [
426
+					date('Y-m-d', strtotime('-1 days')),
427
+					date('Y-m-d', strtotime('1 days'))
428
+				]
429
+			]
430
+		]);
431
+
432
+		$order = new Order();
433
+
434
+		$response = $order->getOrder($orderParameters);
435
+
436
+		$this->assertNotNull($response);
437
+		$this->assertTrue(is_array($response));
438
+		$this->assertTrue(isset($response['total']));
439
+		$this->assertTrue(isset($response['results']));
440
+		$this->assertInstanceOf(
441
+			Order::class,
442
+			Order::fromArray($response['results'][0])
443
+		);
444
+	}
445
+
446
+	public function testGetOrdersBySpecifiedText()
447
+	{
448
+		$orderParameters = Order::fromArray([
449
+			'query'     => 'Auto test',
450
+			'offset'    => 0,
451
+			'limit'     => 5,
452
+		]);
453
+
454
+		$order = new Order();
455
+
456
+		$response = $order->getOrder($orderParameters);
457
+
458
+		$this->assertNotNull($response);
459
+		$this->assertTrue(is_array($response));
460
+		$this->assertTrue(isset($response['total']));
461
+		$this->assertTrue(isset($response['results']));
462
+		$this->assertInstanceOf(
463
+			Order::class,
464
+			Order::fromArray($response['results'][0])
465
+		);
466
+	}
467
+
468
+	public function testUpdateOrder()
469
+	{
470
+		$order = new Order();
471
+
472
+		// Update the order
473
+		self::$createdOrders[0]['address_2'] = 'Lviv';
474
+		self::$createdOrders[0]['EXT_FIELD_phone'] = '032268593';
475
+		self::$createdOrders[0]['EXT_FIELD_custom_data'] = [
476
+			0 => [
477
+				'customer_no' => '11',
478
+			],
479
+		];
480
+
481
+		$response = $order->updateOrder(self::$createdOrders[0]);
482
+
483
+		$this->assertNotNull($response);
484
+		$this->assertInstanceOf(Order::class, Order::fromArray($response));
485
+		$this->assertEquals('Lviv', $response['address_2']);
486
+		$this->assertEquals('032268593', $response['EXT_FIELD_phone']);
487
+		$this->assertEquals([
488
+				0 => '{"order_id":"10","name":"Bill Soul"}'
489
+			],
490
+			$response['EXT_FIELD_custom_data']
491
+		);
492
+	}
493
+
494
+	public function testUpdateOrderWithCustomFiel()
495
+	{
496
+		$orderParameters = Order::fromArray([
497
+			'order_id'              => self::$createdOrders[0]['order_id'],
498
+			'custom_user_fields'    => [
499
+				OrderCustomField::fromArray([
500
+					'order_custom_field_id'    => 93,
501
+					'order_custom_field_value' => 'true'
502
+				])
503
+			]
504
+		]);
505
+
506
+		$order = new Order();
507
+
508
+		$response = $order->updateOrder($orderParameters);
509
+
510
+		$this->assertNotNull($response);
511
+		$this->assertInstanceOf(Order::class, Order::fromArray($response));
512
+		$this->assertEquals(93, $response['custom_user_fields'][0]['order_custom_field_id']);
513
+		$this->assertEquals(true, $response['custom_user_fields'][0]['order_custom_field_value']);
514
+	}
515
+
516
+	public static function tearDownAfterClass()
517
+	{
518
+		if (sizeof(self::$createdOrders)) {
519
+			$orderIDs = [];
520
+
521
+			foreach (self::$createdOrders as $ord) {
522
+				$orderIDs[] = $ord['order_id'];
523
+			}
524
+
525
+			$orderParameters = Order::fromArray([
526
+				'order_ids' => $orderIDs
527
+			]);
528
+
529
+			$order = new Order();
530
+
531
+			$response = $order->removeOrder($orderParameters);
532
+
533
+			if (!is_null($response) &&
534
+				isset($response['status']) &&
535
+				$response['status']) {
536
+				echo "The test orders removed <br>";
537
+			}
538
+		}
539
+
540
+		if (sizeof(self::$createdProblems)>0) {
541
+			$optimizationProblemIDs = [];
542
+
543
+			foreach (self::$createdProblems as $problem) {
544
+				$optimizationProblemId = $problem->optimization_problem_id;
545
+
546
+				$optimizationProblemIDs[] = $optimizationProblemId;
547
+			}
548
+
549
+			$params = [
550
+				'optimization_problem_ids' => $optimizationProblemIDs,
551
+				'redirect'                 => 0,
552
+			];
553
+
554
+			$problem = new OptimizationProblem();
555
+			$result = $problem->removeOptimization($params);
556
+
557
+			if ($result!=null && $result['status']==true) {
558
+				echo "The test optimizations were removed <br>";
559
+			} else {
560
+				echo "Cannot remove the test optimizations <br>";
561
+			}
562
+		}
563
+	}
564 564
 }
Please login to merge, or discard this patch.
examples/Territories/AddTerritory.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -18,14 +18,14 @@
 block discarded – undo
18 18
 
19 19
 $territoryParams['type'] = TerritoryTypes::CIRCLE;
20 20
 $territoryParams['data'] = [
21
-    '37.569752822786455,-77.47833251953125',
22
-    '5000',
21
+	'37.569752822786455,-77.47833251953125',
22
+	'5000',
23 23
 ];
24 24
 
25 25
 $TerritoryParameters = Territory::fromArray([
26
-    'territory_name'    => 'Test Territory '.strval(rand(10000, 99999)),
27
-    'territory_color'   => 'ff7700',
28
-    'territory'         => $territoryParams,
26
+	'territory_name'    => 'Test Territory '.strval(rand(10000, 99999)),
27
+	'territory_color'   => 'ff7700',
28
+	'territory'         => $territoryParams,
29 29
 ]);
30 30
 
31 31
 $territory = new Territory();
Please login to merge, or discard this patch.
examples/AddressBook/AddAddressBookLocation.php 1 patch
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -9,10 +9,10 @@
 block discarded – undo
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();
Please login to merge, or discard this patch.
examples/AddressBook/RemoveAddressBookLocations.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -12,10 +12,10 @@  discard block
 block discarded – undo
12 12
 Route4Me::setApiKey(Constants::API_KEY);
13 13
 
14 14
 $AddressBookLocationParameters = AddressBookLocation::fromArray([
15
-    'first_name'    => 'Test FirstName '.strval(rand(10000, 99999)),
16
-    'address_1'     => 'Test Address1 '.strval(rand(10000, 99999)),
17
-    'cached_lat'    => 38.024654,
18
-    'cached_lng'    => -77.338814,
15
+	'first_name'    => 'Test FirstName '.strval(rand(10000, 99999)),
16
+	'address_1'     => 'Test Address1 '.strval(rand(10000, 99999)),
17
+	'cached_lat'    => 38.024654,
18
+	'cached_lng'    => -77.338814,
19 19
 ]);
20 20
 
21 21
 $abContacts = new AddressBookLocation();
@@ -25,7 +25,7 @@  discard block
 block discarded – undo
25 25
 $address_id = -1;
26 26
 
27 27
 if (isset($createdContact['address_id'])) {
28
-    $address_id = $createdContact['address_id'];
28
+	$address_id = $createdContact['address_id'];
29 29
 }
30 30
 
31 31
 assert($address_id != -1, 'Creating of Address Book Location was failed. Try again!.. <br>');
Please login to merge, or discard this patch.
examples/AddressBook/UpdateAddressBookLocation.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -12,10 +12,10 @@  discard block
 block discarded – undo
12 12
 Route4Me::setApiKey(Constants::API_KEY);
13 13
 
14 14
 $AddressBookLocationParameters = AddressBookLocation::fromArray([
15
-    'first_name'    => 'Test FirstName '.strval(rand(10000, 99999)),
16
-    'address_1'     => 'Test Address1 '.strval(rand(10000, 99999)),
17
-    'cached_lat'    => 38.024654,
18
-    'cached_lng'    => -77.338814,
15
+	'first_name'    => 'Test FirstName '.strval(rand(10000, 99999)),
16
+	'address_1'     => 'Test Address1 '.strval(rand(10000, 99999)),
17
+	'cached_lat'    => 38.024654,
18
+	'cached_lng'    => -77.338814,
19 19
 ]);
20 20
 
21 21
 $abLocation = new AddressBookLocation();
@@ -27,7 +27,7 @@  discard block
 block discarded – undo
27 27
 assert(isset($abcResult['address_id']), 'Cannot create an address book location. <br><br>');
28 28
 
29 29
 if (isset($abcResult['address_id'])) {
30
-    $address_id = $abcResult['address_id'];
30
+	$address_id = $abcResult['address_id'];
31 31
 }
32 32
 
33 33
 assert($address_id != -1, 'Cannot create an address book location. <br><br>');
Please login to merge, or discard this patch.
examples/AddressBook/GetAddressBookLocations.php 1 patch
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -11,8 +11,8 @@  discard block
 block discarded – undo
11 11
 // Example refers to getting the address book locations
12 12
 
13 13
 $AddressBookLocationParameters = [
14
-    'limit'     => 30,
15
-    'offset'    => 0,
14
+	'limit'     => 30,
15
+	'offset'    => 0,
16 16
 ];
17 17
 
18 18
 $abContacts = new AddressBookLocation();
@@ -22,6 +22,6 @@  discard block
 block discarded – undo
22 22
 $results = $abContacts->getValue($abcResults, 'results');
23 23
 
24 24
 foreach ($results as $result) {
25
-    Route4Me::simplePrint($result);
26
-    echo '<br>';
25
+	Route4Me::simplePrint($result);
26
+	echo '<br>';
27 27
 }
Please login to merge, or discard this patch.