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