Skip to content

Commit 748fc91

Browse files
committed
2 parents c397496 + 17f5a34 commit 748fc91

File tree

268 files changed

+13364
-1513
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

268 files changed

+13364
-1513
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,213 @@
1+
<?php
2+
3+
namespace UnitTestFiles\Test;
4+
5+
use Route4Me\Address;
6+
use Route4Me\Constants;
7+
use Route4Me\Enum\ActivityTypes;
8+
use Route4Me\Enum\DeviceType;
9+
use Route4Me\OptimizationProblem;
10+
use Route4Me\OptimizationProblemParams;
11+
use Route4Me\Route4Me;
12+
use Route4Me\ActivityParameters;
13+
use Route4Me\RouteParameters;
14+
15+
class ActivityParametersUntTests extends \PHPUnit\Framework\TestCase
16+
{
17+
public static $route_id = null;
18+
public static $problem = null;
19+
20+
public static function setUpBeforeClass()
21+
{
22+
Route4Me::setApiKey(Constants::API_KEY);
23+
24+
$addresses = [];
25+
$addresses[] = Address::fromArray([
26+
'address' => '11497 Columbia Park Dr W, Jacksonville, FL 32258',
27+
'is_depot' => true,
28+
'lat' => 30.159341812134,
29+
'lng' => -81.538619995117,
30+
'time' => 300,
31+
'time_window_start' => 28800,
32+
'time_window_end' => 32400,
33+
]);
34+
35+
$addresses[] = Address::fromArray([
36+
'address' => '214 Edgewater Branch Drive 32259',
37+
'lat' => 30.103567123413,
38+
'lng' => -81.595352172852,
39+
'time' => 300,
40+
'time_window_start' => 36000,
41+
'time_window_end' => 37200,
42+
]);
43+
44+
$addresses[] = Address::fromArray([
45+
'address' => '756 eagle point dr 32092',
46+
'lat' => 30.046422958374,
47+
'lng' => -81.508758544922,
48+
'time' => 300,
49+
'time_window_start' => 39600,
50+
'time_window_end' => 41400,
51+
]);
52+
53+
$addresses[] = Address::fromArray([
54+
'address' => '63 Stone Creek Cir St Johns, FL 32259, USA',
55+
'lat' => 30.048496,
56+
'lng' => -81.558716,
57+
'time' => 300,
58+
'time_window_start' => 43200,
59+
'time_window_end' => 45000,
60+
]);
61+
62+
$parameters = RouteParameters::fromArray([
63+
'device_type' => DeviceType::IPAD,
64+
'disable_optimization' => false,
65+
'route_name' => 'phpunit test '.date('Y-m-d H:i'),
66+
]);
67+
68+
$optimizationParameters = new OptimizationProblemParams();
69+
$optimizationParameters->setAddresses($addresses);
70+
$optimizationParameters->setParameters($parameters);
71+
72+
self::$problem = OptimizationProblem::optimize($optimizationParameters);
73+
$routes = self::$problem->getRoutes();
74+
self::$route_id = $routes[0]->route_id;
75+
}
76+
77+
public function testFromArray()
78+
{
79+
$activityParameters = ActivityParameters::fromArray([
80+
"activity_id" => "77BBB5F38723CCCCCCCCCCCCCCCCDD88",
81+
"member_id" => 444333,
82+
"activity_timestamp" => 1595418362,
83+
"activity_type" => "note-insert",
84+
"activity_message" => "A note was added to address '63 Stone Creek Cir St Johns, FL 32259, USA' from Web Interface",
85+
"route_id" => "38777FFFE274A1F970A3CA8D96F32222",
86+
"route_destination_id" => 535455583,
87+
"note_id" => 9933366,
88+
"note_type" => "Drop Off Occurred",
89+
"note_contents" => "Test Add Note To Route Address",
90+
"route_name" => "phpunit test 2020-07-22 13:45",
91+
"note_file" => "file.ext",
92+
"destination_name" => "63 Stone Creek Cir St Johns, FL 32259, USA",
93+
"destination_alias" => "Dest Alias",
94+
"member" => [
95+
"member_id" => "444333",
96+
"member_first_name" => "Olbay",
97+
"member_last_name" => "Gustavson",
98+
"member_email" => "[email protected]"
99+
]
100+
]);
101+
102+
$this->assertEquals('77BBB5F38723CCCCCCCCCCCCCCCCDD88', $activityParameters->activity_id);
103+
104+
$this->assertEquals(444333, $activityParameters->member_id);
105+
$this->assertEquals(1595418362, $activityParameters->activity_timestamp);
106+
$this->assertEquals('note-insert', $activityParameters->activity_type);
107+
$this->assertEquals('A note was added to address \'63 Stone Creek Cir St Johns, FL 32259, USA\' from Web Interface', $activityParameters->activity_message);
108+
$this->assertEquals('38777FFFE274A1F970A3CA8D96F32222', $activityParameters->route_id);
109+
$this->assertEquals(535455583, $activityParameters->route_destination_id);
110+
$this->assertEquals(9933366, $activityParameters->note_id);
111+
$this->assertEquals('Drop Off Occurred', $activityParameters->note_type);
112+
$this->assertEquals('Test Add Note To Route Address', $activityParameters->note_contents);
113+
$this->assertEquals('phpunit test 2020-07-22 13:45', $activityParameters->route_name);
114+
$this->assertEquals('file.ext', $activityParameters->note_file);
115+
$this->assertEquals('63 Stone Creek Cir St Johns, FL 32259, USA', $activityParameters->destination_name);
116+
$this->assertEquals('Dest Alias', $activityParameters->destination_alias);
117+
$this->assertEquals([
118+
"member_id" => "444333",
119+
"member_first_name" => "Olbay",
120+
"member_last_name" => "Gustavson",
121+
"member_email" => "[email protected]"
122+
], $activityParameters->member);
123+
}
124+
125+
public function testGetActivities()
126+
{
127+
$activities = new ActivityParameters();
128+
129+
$activityParameters = ActivityParameters::fromArray([
130+
'limit' => 10,
131+
'offset' => 0,
132+
]);
133+
134+
$result = $activities->getActivities($activityParameters);
135+
136+
$this->assertNotNull($result);
137+
$this->assertNotNull(isset($result['results']));
138+
139+
$firstActivity = ActivityParameters::fromArray(
140+
$result['results'][0]
141+
);
142+
143+
$this->assertContainsOnlyInstancesOf(ActivityParameters::class, [$firstActivity]);
144+
}
145+
146+
public function testSearchActivities()
147+
{
148+
$activities = new ActivityParameters();
149+
150+
$activityTypes = new ActivityTypes();
151+
152+
foreach ($activityTypes->getConstants() as $prop => $value) {
153+
$activityParameters = ActivityParameters::fromArray([
154+
'activity_type' => $value,
155+
'limit' => 2,
156+
'offset' => 0,
157+
]);
158+
159+
$activities = new ActivityParameters();
160+
$result = $activities->searchActivities($activityParameters);
161+
162+
$this->assertNotNull($result);
163+
$this->assertNotNull(isset($result['results']));
164+
165+
if (sizeof($result['results'])>0) {
166+
$firstActivity = ActivityParameters::fromArray(
167+
$result['results'][0]
168+
);
169+
170+
$this->assertContainsOnlyInstancesOf(ActivityParameters::class, [$firstActivity]);
171+
}
172+
}
173+
}
174+
175+
public function testSendUserMessage()
176+
{
177+
$activities = new ActivityParameters();
178+
179+
$postParameters = ActivityParameters::fromArray([
180+
'activity_type' => 'user_message',
181+
'activity_message' => 'Hello - php!',
182+
'route_id' => self::$route_id,
183+
]);
184+
185+
$result = $activities->sendUserMessage($postParameters);
186+
187+
$this->assertNotNull($result);
188+
$this->assertNotNull(isset($result['status']));
189+
$this->assertTrue(isset($result['status']));
190+
}
191+
192+
public static function tearDownAfterClass()
193+
{
194+
$optimizationProblemId = self:: $problem->optimization_problem_id;
195+
196+
$params = [
197+
'optimization_problem_ids' => [
198+
'0' => $optimizationProblemId
199+
],
200+
'redirect' => 0,
201+
];
202+
203+
$optimizationProblem = new OptimizationProblem();
204+
205+
$result = $optimizationProblem->removeOptimization($params);
206+
207+
if ($result!=null && $result['status']==true) {
208+
echo "The test optimization was removed <br>";
209+
} else {
210+
echo "Cannot remove the test optimization <br>";
211+
}
212+
}
213+
}

0 commit comments

Comments
 (0)