Browse code

removed Telnyx Plivo Twilio Flowroute appinfo/info.xml appinfo/signature.json README.md lib/Controller/AuthorApiController.php

DoubleBastionAdmin authored on 20/08/2022 16:26:33
Showing 1 changed files
1 1
deleted file mode 100644
... ...
@@ -1,534 +0,0 @@
1
-<?php
2
-
3
-namespace Resources;
4
-
5
-
6
-use Plivo\Http\PlivoRequest;
7
-use Plivo\Http\PlivoResponse;
8
-use Plivo\Tests\BaseTestCase;
9
-
10
-/**
11
- * Class CallTest
12
- * @package Resources
13
- */
14
-class CallTest extends BaseTestCase
15
-{
16
-    function testExceptionCallCreate()
17
-    {
18
-        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
19
-        $request = new PlivoRequest(
20
-            'POST',
21
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/',
22
-            [
23
-                'from' => '919999999999',
24
-                'to' => '919999999999',
25
-                'answer_url' => '919999999999',
26
-                'answer_method' => 'POST',
27
-            ]);
28
-        $body = file_get_contents(__DIR__ . '/../Mocks/callCreateResponse.json');
29
-
30
-        $this->mock(new PlivoResponse($request,201, $body));
31
-
32
-        $actual = $this->client->calls->create(
33
-            '919999999999', ['919999999999'], '919999999999', 'POST');
34
-
35
-        $this->assertRequest($request);
36
-
37
-        self::assertNotNull($actual);
38
-
39
-        foreach ($actual as $actualCall) {
40
-            self::assertEquals(substr($actualCall->resourceUri, 0, 33), "/v1/Account/MAXXXXXXXXXXXXXXXXXX/");
41
-        }
42
-    }
43
-
44
-    function testCallCreate()
45
-    {
46
-        $request = new PlivoRequest(
47
-            'POST',
48
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/',
49
-            [
50
-                'from' => '919999999999',
51
-                'to' => '919999999998',
52
-                'answer_url' => 'http://answer.url',
53
-                'answer_method' => 'POST',
54
-            ]);
55
-        $body = file_get_contents(__DIR__ . '/../Mocks/callCreateResponse.json');
56
-
57
-        $this->mock(new PlivoResponse($request,201, $body));
58
-
59
-        $actual = $this->client->calls->create(
60
-            '919999999999', ['919999999998'], 'http://answer.url', 'POST');
61
-
62
-        $this->assertRequest($request);
63
-
64
-        self::assertNotNull($actual);
65
-
66
-        // $actual = json_decode($actual);
67
-
68
-        self::assertEquals($actual->message, "call fired");
69
-        self::assertEquals($actual->requestUuid, "9834029e-58b6-11e1-b8b7-a5bd0e4e126f");
70
-        self::assertEquals($actual->apiId, "97ceeb52-58b6-11e1-86da-77300b68f8bb");
71
-    }
72
-
73
-    function testCallList()
74
-    {
75
-        $request = new PlivoRequest(
76
-            'GET',
77
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/',
78
-            ['subaccount' => 'subacc']);
79
-        $body = file_get_contents(__DIR__ . '/../Mocks/callListResponse.json');
80
-
81
-        $this->mock(new PlivoResponse($request,200, $body));
82
-
83
-        $actual = $this->client->calls->list(['subaccount' => 'subacc']);
84
-
85
-        $this->assertRequest($request);
86
-
87
-        self::assertNotNull($actual);
88
-
89
-        foreach($actual->resources as $actualCall) {
90
-            
91
-            self::assertEquals(substr($actualCall->resourceUri, 0, 33), "/v1/Account/MAXXXXXXXXXXXXXXXXXX/");
92
-        }
93
-    }
94
-
95
-    function testCallDetails()
96
-    {
97
-        $request = new PlivoRequest(
98
-            'GET',
99
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/4d04c52e-cea3-4458-bbdb-0bfc314ee7cd/',
100
-            []);
101
-        $body = file_get_contents(__DIR__ . '/../Mocks/callGetResponse.json');
102
-
103
-        $this->mock(new PlivoResponse($request,200, $body));
104
-
105
-        $actual = $this->client->calls->get("4d04c52e-cea3-4458-bbdb-0bfc314ee7cd");
106
-
107
-        $this->assertRequest($request);
108
-
109
-        self::assertNotNull($actual);
110
-
111
-        self::assertEquals($actual->getId(), "4d04c52e-cea3-4458-bbdb-0bfc314ee7cd");
112
-    }
113
-
114
-    function testLiveCallList()
115
-    {
116
-        $request = new PlivoRequest(
117
-            'GET',
118
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/',
119
-            ['status'=>'live']);
120
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallListGetResponse.json');
121
-
122
-        $this->mock(new PlivoResponse($request,200, $body));
123
-
124
-        $actual = $this->client->calls->listLive;
125
-
126
-        $this->assertRequest($request);
127
-
128
-        self::assertNotNull($actual);
129
-
130
-        self::assertGreaterThan(0, count($actual));
131
-
132
-        foreach ($actual as $actualCall) {
133
-            self::assertEquals(36, strlen($actualCall));
134
-        }
135
-    }
136
-
137
-    function testLiveCallDetails()
138
-    {
139
-        $request = new PlivoRequest(
140
-            'GET',
141
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/d0a87a1a-b0e9-4ab2-ac07-c22ee87cd04a/',
142
-            ['status'=>'live']);
143
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallGetResponse.json');
144
-
145
-        $this->mock(new PlivoResponse($request,200, $body));
146
-
147
-        $actual = $this->client->calls->getLive("d0a87a1a-b0e9-4ab2-ac07-c22ee87cd04a");
148
-
149
-        $this->assertRequest($request);
150
-
151
-        self::assertNotNull($actual);
152
-
153
-        self::assertEquals($actual->id, "d0a87a1a-b0e9-4ab2-ac07-c22ee87cd04a");
154
-    }
155
-
156
-    function testLiveCallTransfer()
157
-    {
158
-        $request = new PlivoRequest(
159
-            'POST',
160
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/',
161
-            [
162
-                'legs'=>'both',
163
-                'aleg_url' => 'http://a.leg',
164
-                'bleg_url' => 'http://b.leg'
165
-            ]);
166
-        $body = file_get_contents(__DIR__ . '/../Mocks/callUpdateResponse.json');
167
-
168
-        $this->mock(new PlivoResponse($request,201, $body));
169
-
170
-        $actual = $this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
171
-            ['legs'=>'both',
172
-            'aleg_url' => 'http://a.leg',
173
-            'bleg_url' => 'http://b.leg']);
174
-
175
-        $this->assertRequest($request);
176
-
177
-        self::assertNotNull($actual);
178
-
179
-        self::assertEquals($actual->message, "call transfered");
180
-    }
181
-
182
-    function testException1LiveCallTransfer()
183
-    {
184
-        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
185
-        $request = new PlivoRequest();
186
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallPlayCreateResponse.json');
187
-
188
-        $this->mock(new PlivoResponse($request,201, $body));
189
-
190
-        $this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
191
-            ['legs'=>'both',
192
-                'bleg_url' => 'http://b.leg']);
193
-    }
194
-
195
-    function testException2LiveCallTransfer()
196
-    {
197
-        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
198
-        $request = new PlivoRequest();
199
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallPlayCreateResponse.json');
200
-
201
-        $this->mock(new PlivoResponse($request,201, $body));
202
-
203
-        $this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
204
-            ['legs'=>'aleg',
205
-                'bleg_url' => 'http://b.leg']);
206
-    }
207
-
208
-    function testException3LiveCallTransfer()
209
-    {
210
-        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
211
-        $request = new PlivoRequest();
212
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallPlayCreateResponse.json');
213
-
214
-        $this->mock(new PlivoResponse($request,201, $body));
215
-
216
-        $this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
217
-            ['legs'=>'bleg']);
218
-    }
219
-
220
-    function testException4LiveCallTransfer()
221
-    {
222
-        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
223
-        $request = new PlivoRequest();
224
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallPlayCreateResponse.json');
225
-
226
-        $this->mock(new PlivoResponse($request,201, $body));
227
-
228
-        $this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
229
-            ['legs'=>'some other leg']);
230
-    }
231
-
232
-    function testException5LiveCallTransfer()
233
-    {
234
-        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
235
-        $request = new PlivoRequest();
236
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallPlayCreateResponse.json');
237
-
238
-        $this->mock(new PlivoResponse($request,201, $body));
239
-
240
-        $this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
241
-            ['bleg_url' => 'http://b.leg']);
242
-    }
243
-
244
-    function testLiveCallPlay()
245
-    {
246
-        $request = new PlivoRequest(
247
-            'POST',
248
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Play/',
249
-            ['urls'=>'']);
250
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallPlayCreateResponse.json');
251
-
252
-        $this->mock(new PlivoResponse($request,201, $body));
253
-
254
-        $actual = $this->client->calls->play("dfshjkasfhjkasfhjkashf", [""]);
255
-
256
-        $this->assertRequest($request);
257
-
258
-        self::assertNotNull($actual);
259
-
260
-        self::assertEquals($actual->message, "play started");
261
-    }
262
-
263
-    function testExceptionLiveCallPlay()
264
-    {
265
-        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
266
-        $request = new PlivoRequest(
267
-            'POST',
268
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Play/',
269
-            ['urls'=> '']);
270
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallPlayCreateResponse.json');
271
-
272
-        $this->mock(new PlivoResponse($request,201, $body));
273
-        $this->client->calls->play(null, [""]);
274
-    }
275
-
276
-    function testLiveCallStartPlay()
277
-    {
278
-        $request = new PlivoRequest(
279
-            'POST',
280
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Play/',
281
-            ['urls'=>'']);
282
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallPlayCreateResponse.json');
283
-
284
-        $this->mock(new PlivoResponse($request,201, $body));
285
-
286
-        $actual = $this->client->calls->startPlaying("dfshjkasfhjkasfhjkashf", [""]);
287
-
288
-        $this->assertRequest($request);
289
-
290
-        self::assertNotNull($actual);
291
-
292
-        self::assertEquals($actual->message, "play started");
293
-    }
294
-
295
-    function testLiveCallStopPlay()
296
-    {
297
-        $request = new PlivoRequest(
298
-            'DELETE',
299
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Play/',
300
-            []);
301
-        $body = '{}';
302
-
303
-        $this->mock(new PlivoResponse($request,204, $body));
304
-
305
-        $actual = $this->client->calls->stopPlaying("dfshjkasfhjkasfhjkashf");
306
-
307
-        $this->assertRequest($request);
308
-
309
-        self::assertNull($actual);
310
-    }
311
-
312
-    function testLiveCallSpeak()
313
-    {
314
-        $request = new PlivoRequest(
315
-            'POST',
316
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Speak/',
317
-            ['text'=>'Speak this']);
318
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallSpeakCreateResponse.json');
319
-
320
-        $this->mock(new PlivoResponse($request,201, $body));
321
-
322
-        $actual = $this->client->calls->speak("dfshjkasfhjkasfhjkashf", "Speak this");
323
-
324
-        $this->assertRequest($request);
325
-
326
-        self::assertNotNull($actual);
327
-
328
-        self::assertEquals($actual->message, "speak started");
329
-    }
330
-
331
-    function testExceptionLiveCallSpeak()
332
-    {
333
-        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
334
-        $request = new PlivoRequest(
335
-            'POST',
336
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Speak/',
337
-            ['text'=>'Speak this']);
338
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallSpeakCreateResponse.json');
339
-
340
-        $this->mock(new PlivoResponse($request,201, $body));
341
-        $this->client->calls->speak(null, "Speak this");
342
-    }
343
-
344
-    function testLiveCallStartSpeak()
345
-    {
346
-        $request = new PlivoRequest(
347
-            'POST',
348
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Speak/',
349
-            ['text'=>'Speak this']);
350
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallSpeakCreateResponse.json');
351
-
352
-        $this->mock(new PlivoResponse($request,201, $body));
353
-
354
-        $actual = $this->client->calls->startSpeaking("dfshjkasfhjkasfhjkashf", "Speak this");
355
-
356
-        $this->assertRequest($request);
357
-
358
-        self::assertNotNull($actual);
359
-
360
-        self::assertEquals($actual->message, "speak started");
361
-    }
362
-
363
-    function testLiveCallStopSpeak()
364
-    {
365
-        $request = new PlivoRequest(
366
-            'DELETE',
367
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Speak/',
368
-            []);
369
-        $body = '{}';
370
-
371
-        $this->mock(new PlivoResponse($request,204, $body));
372
-
373
-        $actual = $this->client->calls->stopSpeaking("dfshjkasfhjkasfhjkashf");
374
-
375
-        $this->assertRequest($request);
376
-
377
-        self::assertNull($actual);
378
-    }
379
-
380
-    function testLiveCallRecord()
381
-    {
382
-        $request = new PlivoRequest(
383
-            'POST',
384
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Record/',
385
-            []);
386
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallRecordCreateResponse.json');
387
-
388
-        $this->mock(new PlivoResponse($request,201, $body));
389
-
390
-        $actual = $this->client->calls->record("dfshjkasfhjkasfhjkashf");
391
-
392
-        $this->assertRequest($request);
393
-
394
-        self::assertNotNull($actual);
395
-
396
-        self::assertEquals($actual->url, "http://s3.amazonaws.com/recordings_2013/48dfaf60-3b2a-11e3.mp3");
397
-        self::assertEquals($actual->message, "call recording started");
398
-        self::assertEquals($actual->recordingId, "48dfaf60-3b2a-11e3");
399
-        self::assertEquals($actual->apiId, "c7b69074-58be-11e1-86da-adf28403fe48");
400
-    }
401
-
402
-    function testLiveCallStartRecord()
403
-    {
404
-        $request = new PlivoRequest(
405
-            'POST',
406
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Record/',
407
-            []);
408
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallRecordCreateResponse.json');
409
-
410
-        $this->mock(new PlivoResponse($request,201, $body));
411
-
412
-        $actual = $this->client->calls->startRecording("dfshjkasfhjkasfhjkashf");
413
-
414
-        $this->assertRequest($request);
415
-
416
-        self::assertNotNull($actual);
417
-
418
-        self::assertEquals($actual->url, "http://s3.amazonaws.com/recordings_2013/48dfaf60-3b2a-11e3.mp3");
419
-        self::assertEquals($actual->message, "call recording started");
420
-        self::assertEquals($actual->recordingId, "48dfaf60-3b2a-11e3");
421
-        self::assertEquals($actual->apiId, "c7b69074-58be-11e1-86da-adf28403fe48");
422
-    }
423
-
424
-    function testLiveCallStopRecord()
425
-    {
426
-        $request = new PlivoRequest(
427
-            'DELETE',
428
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Record/',
429
-            []);
430
-        $body = '{}';
431
-
432
-        $this->mock(new PlivoResponse($request,204, $body));
433
-
434
-        $actual = $this->client->calls->stopRecording("dfshjkasfhjkasfhjkashf");
435
-
436
-        $this->assertRequest($request);
437
-
438
-        self::assertNull($actual);
439
-    }
440
-
441
-    function testExceptionLiveCallStartRecord()
442
-    {
443
-        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
444
-        $request = new PlivoRequest(
445
-            'POST',
446
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Record/',
447
-            []);
448
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallRecordCreateResponse.json');
449
-
450
-        $this->mock(new PlivoResponse($request,201, $body));
451
-
452
-        $actual = $this->client->calls->startRecording("");
453
-
454
-        $this->assertRequest($request);
455
-
456
-        self::assertNotNull($actual);
457
-
458
-        self::assertEquals($actual->message, "call recording started");
459
-    }
460
-
461
-    function testLiveCallDtmf()
462
-    {
463
-        $request = new PlivoRequest(
464
-            'POST',
465
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/DTMF/',
466
-            ['digits'=>"123"]);
467
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallDtmfCreateResponse.json');
468
-
469
-        $this->mock(new PlivoResponse($request,201, $body));
470
-
471
-        $actual = $this->client->calls->dtmf("dfshjkasfhjkasfhjkashf", "123");
472
-
473
-        $this->assertRequest($request);
474
-
475
-        self::assertNotNull($actual);
476
-
477
-        self::assertEquals($actual->message, "digits sent");
478
-    }
479
-
480
-    function testExceptionLiveCallDtmf()
481
-    {
482
-        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
483
-        $request = new PlivoRequest(
484
-            'POST',
485
-            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/DTMF/',
486
-            ['digits'=>"123"]);
487
-        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallDtmfCreateResponse.json');
488
-
489
-        $this->mock(new PlivoResponse($request,201, $body));
490
-
491
-        $actual = $this->client->calls->dtmf("", "123");
492
-
493
-        $this->assertRequest($request);
494
-
495
-        self::assertNotNull($actual);
496
-
497
-        self::assertEquals($actual->message, "digits sent");
498
-    }
499
-
500
-    function testLiveCallCancel()
501
-    {
502
-        $request = new PlivoRequest(
503
-            'DELETE',
504
-            'Account/MAXXXXXXXXXXXXXXXXXX/Request/dfshjkasfhjkasfhjkashf/',
505
-            []);
506
-        $body = '{}';
507
-
508
-        $this->mock(new PlivoResponse($request,204, $body));
509
-
510
-        $actual = $this->client->calls->cancel("dfshjkasfhjkasfhjkashf");
511
-
512
-        $this->assertRequest($request);
513
-
514
-        self::assertNull($actual);
515
-    }
516
-
517
-    function testExceptionLiveCallCancel()
518
-    {
519
-        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
520
-        $request = new PlivoRequest(
521
-            'DELETE',
522
-            'Account/MAXXXXXXXXXXXXXXXXXX/Request/dfshjkasfhjkasfhjkashf/',
523
-            []);
524
-        $body = '{}';
525
-
526
-        $this->mock(new PlivoResponse($request,204, $body));
527
-
528
-        $actual = $this->client->calls->cancel(null);
529
-
530
-        $this->assertRequest($request);
531
-
532
-        self::assertNull($actual);
533
-    }
534
-}
Browse code

Created repository.

DoubleBastionAdmin authored on 01/03/2022 23:47:00
Showing 1 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,534 @@
1
+<?php
2
+
3
+namespace Resources;
4
+
5
+
6
+use Plivo\Http\PlivoRequest;
7
+use Plivo\Http\PlivoResponse;
8
+use Plivo\Tests\BaseTestCase;
9
+
10
+/**
11
+ * Class CallTest
12
+ * @package Resources
13
+ */
14
+class CallTest extends BaseTestCase
15
+{
16
+    function testExceptionCallCreate()
17
+    {
18
+        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
19
+        $request = new PlivoRequest(
20
+            'POST',
21
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/',
22
+            [
23
+                'from' => '919999999999',
24
+                'to' => '919999999999',
25
+                'answer_url' => '919999999999',
26
+                'answer_method' => 'POST',
27
+            ]);
28
+        $body = file_get_contents(__DIR__ . '/../Mocks/callCreateResponse.json');
29
+
30
+        $this->mock(new PlivoResponse($request,201, $body));
31
+
32
+        $actual = $this->client->calls->create(
33
+            '919999999999', ['919999999999'], '919999999999', 'POST');
34
+
35
+        $this->assertRequest($request);
36
+
37
+        self::assertNotNull($actual);
38
+
39
+        foreach ($actual as $actualCall) {
40
+            self::assertEquals(substr($actualCall->resourceUri, 0, 33), "/v1/Account/MAXXXXXXXXXXXXXXXXXX/");
41
+        }
42
+    }
43
+
44
+    function testCallCreate()
45
+    {
46
+        $request = new PlivoRequest(
47
+            'POST',
48
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/',
49
+            [
50
+                'from' => '919999999999',
51
+                'to' => '919999999998',
52
+                'answer_url' => 'http://answer.url',
53
+                'answer_method' => 'POST',
54
+            ]);
55
+        $body = file_get_contents(__DIR__ . '/../Mocks/callCreateResponse.json');
56
+
57
+        $this->mock(new PlivoResponse($request,201, $body));
58
+
59
+        $actual = $this->client->calls->create(
60
+            '919999999999', ['919999999998'], 'http://answer.url', 'POST');
61
+
62
+        $this->assertRequest($request);
63
+
64
+        self::assertNotNull($actual);
65
+
66
+        // $actual = json_decode($actual);
67
+
68
+        self::assertEquals($actual->message, "call fired");
69
+        self::assertEquals($actual->requestUuid, "9834029e-58b6-11e1-b8b7-a5bd0e4e126f");
70
+        self::assertEquals($actual->apiId, "97ceeb52-58b6-11e1-86da-77300b68f8bb");
71
+    }
72
+
73
+    function testCallList()
74
+    {
75
+        $request = new PlivoRequest(
76
+            'GET',
77
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/',
78
+            ['subaccount' => 'subacc']);
79
+        $body = file_get_contents(__DIR__ . '/../Mocks/callListResponse.json');
80
+
81
+        $this->mock(new PlivoResponse($request,200, $body));
82
+
83
+        $actual = $this->client->calls->list(['subaccount' => 'subacc']);
84
+
85
+        $this->assertRequest($request);
86
+
87
+        self::assertNotNull($actual);
88
+
89
+        foreach($actual->resources as $actualCall) {
90
+            
91
+            self::assertEquals(substr($actualCall->resourceUri, 0, 33), "/v1/Account/MAXXXXXXXXXXXXXXXXXX/");
92
+        }
93
+    }
94
+
95
+    function testCallDetails()
96
+    {
97
+        $request = new PlivoRequest(
98
+            'GET',
99
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/4d04c52e-cea3-4458-bbdb-0bfc314ee7cd/',
100
+            []);
101
+        $body = file_get_contents(__DIR__ . '/../Mocks/callGetResponse.json');
102
+
103
+        $this->mock(new PlivoResponse($request,200, $body));
104
+
105
+        $actual = $this->client->calls->get("4d04c52e-cea3-4458-bbdb-0bfc314ee7cd");
106
+
107
+        $this->assertRequest($request);
108
+
109
+        self::assertNotNull($actual);
110
+
111
+        self::assertEquals($actual->getId(), "4d04c52e-cea3-4458-bbdb-0bfc314ee7cd");
112
+    }
113
+
114
+    function testLiveCallList()
115
+    {
116
+        $request = new PlivoRequest(
117
+            'GET',
118
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/',
119
+            ['status'=>'live']);
120
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallListGetResponse.json');
121
+
122
+        $this->mock(new PlivoResponse($request,200, $body));
123
+
124
+        $actual = $this->client->calls->listLive;
125
+
126
+        $this->assertRequest($request);
127
+
128
+        self::assertNotNull($actual);
129
+
130
+        self::assertGreaterThan(0, count($actual));
131
+
132
+        foreach ($actual as $actualCall) {
133
+            self::assertEquals(36, strlen($actualCall));
134
+        }
135
+    }
136
+
137
+    function testLiveCallDetails()
138
+    {
139
+        $request = new PlivoRequest(
140
+            'GET',
141
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/d0a87a1a-b0e9-4ab2-ac07-c22ee87cd04a/',
142
+            ['status'=>'live']);
143
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallGetResponse.json');
144
+
145
+        $this->mock(new PlivoResponse($request,200, $body));
146
+
147
+        $actual = $this->client->calls->getLive("d0a87a1a-b0e9-4ab2-ac07-c22ee87cd04a");
148
+
149
+        $this->assertRequest($request);
150
+
151
+        self::assertNotNull($actual);
152
+
153
+        self::assertEquals($actual->id, "d0a87a1a-b0e9-4ab2-ac07-c22ee87cd04a");
154
+    }
155
+
156
+    function testLiveCallTransfer()
157
+    {
158
+        $request = new PlivoRequest(
159
+            'POST',
160
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/',
161
+            [
162
+                'legs'=>'both',
163
+                'aleg_url' => 'http://a.leg',
164
+                'bleg_url' => 'http://b.leg'
165
+            ]);
166
+        $body = file_get_contents(__DIR__ . '/../Mocks/callUpdateResponse.json');
167
+
168
+        $this->mock(new PlivoResponse($request,201, $body));
169
+
170
+        $actual = $this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
171
+            ['legs'=>'both',
172
+            'aleg_url' => 'http://a.leg',
173
+            'bleg_url' => 'http://b.leg']);
174
+
175
+        $this->assertRequest($request);
176
+
177
+        self::assertNotNull($actual);
178
+
179
+        self::assertEquals($actual->message, "call transfered");
180
+    }
181
+
182
+    function testException1LiveCallTransfer()
183
+    {
184
+        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
185
+        $request = new PlivoRequest();
186
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallPlayCreateResponse.json');
187
+
188
+        $this->mock(new PlivoResponse($request,201, $body));
189
+
190
+        $this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
191
+            ['legs'=>'both',
192
+                'bleg_url' => 'http://b.leg']);
193
+    }
194
+
195
+    function testException2LiveCallTransfer()
196
+    {
197
+        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
198
+        $request = new PlivoRequest();
199
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallPlayCreateResponse.json');
200
+
201
+        $this->mock(new PlivoResponse($request,201, $body));
202
+
203
+        $this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
204
+            ['legs'=>'aleg',
205
+                'bleg_url' => 'http://b.leg']);
206
+    }
207
+
208
+    function testException3LiveCallTransfer()
209
+    {
210
+        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
211
+        $request = new PlivoRequest();
212
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallPlayCreateResponse.json');
213
+
214
+        $this->mock(new PlivoResponse($request,201, $body));
215
+
216
+        $this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
217
+            ['legs'=>'bleg']);
218
+    }
219
+
220
+    function testException4LiveCallTransfer()
221
+    {
222
+        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
223
+        $request = new PlivoRequest();
224
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallPlayCreateResponse.json');
225
+
226
+        $this->mock(new PlivoResponse($request,201, $body));
227
+
228
+        $this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
229
+            ['legs'=>'some other leg']);
230
+    }
231
+
232
+    function testException5LiveCallTransfer()
233
+    {
234
+        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
235
+        $request = new PlivoRequest();
236
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallPlayCreateResponse.json');
237
+
238
+        $this->mock(new PlivoResponse($request,201, $body));
239
+
240
+        $this->client->calls->transfer("dfshjkasfhjkasfhjkashf",
241
+            ['bleg_url' => 'http://b.leg']);
242
+    }
243
+
244
+    function testLiveCallPlay()
245
+    {
246
+        $request = new PlivoRequest(
247
+            'POST',
248
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Play/',
249
+            ['urls'=>'']);
250
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallPlayCreateResponse.json');
251
+
252
+        $this->mock(new PlivoResponse($request,201, $body));
253
+
254
+        $actual = $this->client->calls->play("dfshjkasfhjkasfhjkashf", [""]);
255
+
256
+        $this->assertRequest($request);
257
+
258
+        self::assertNotNull($actual);
259
+
260
+        self::assertEquals($actual->message, "play started");
261
+    }
262
+
263
+    function testExceptionLiveCallPlay()
264
+    {
265
+        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
266
+        $request = new PlivoRequest(
267
+            'POST',
268
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Play/',
269
+            ['urls'=> '']);
270
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallPlayCreateResponse.json');
271
+
272
+        $this->mock(new PlivoResponse($request,201, $body));
273
+        $this->client->calls->play(null, [""]);
274
+    }
275
+
276
+    function testLiveCallStartPlay()
277
+    {
278
+        $request = new PlivoRequest(
279
+            'POST',
280
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Play/',
281
+            ['urls'=>'']);
282
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallPlayCreateResponse.json');
283
+
284
+        $this->mock(new PlivoResponse($request,201, $body));
285
+
286
+        $actual = $this->client->calls->startPlaying("dfshjkasfhjkasfhjkashf", [""]);
287
+
288
+        $this->assertRequest($request);
289
+
290
+        self::assertNotNull($actual);
291
+
292
+        self::assertEquals($actual->message, "play started");
293
+    }
294
+
295
+    function testLiveCallStopPlay()
296
+    {
297
+        $request = new PlivoRequest(
298
+            'DELETE',
299
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Play/',
300
+            []);
301
+        $body = '{}';
302
+
303
+        $this->mock(new PlivoResponse($request,204, $body));
304
+
305
+        $actual = $this->client->calls->stopPlaying("dfshjkasfhjkasfhjkashf");
306
+
307
+        $this->assertRequest($request);
308
+
309
+        self::assertNull($actual);
310
+    }
311
+
312
+    function testLiveCallSpeak()
313
+    {
314
+        $request = new PlivoRequest(
315
+            'POST',
316
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Speak/',
317
+            ['text'=>'Speak this']);
318
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallSpeakCreateResponse.json');
319
+
320
+        $this->mock(new PlivoResponse($request,201, $body));
321
+
322
+        $actual = $this->client->calls->speak("dfshjkasfhjkasfhjkashf", "Speak this");
323
+
324
+        $this->assertRequest($request);
325
+
326
+        self::assertNotNull($actual);
327
+
328
+        self::assertEquals($actual->message, "speak started");
329
+    }
330
+
331
+    function testExceptionLiveCallSpeak()
332
+    {
333
+        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
334
+        $request = new PlivoRequest(
335
+            'POST',
336
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Speak/',
337
+            ['text'=>'Speak this']);
338
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallSpeakCreateResponse.json');
339
+
340
+        $this->mock(new PlivoResponse($request,201, $body));
341
+        $this->client->calls->speak(null, "Speak this");
342
+    }
343
+
344
+    function testLiveCallStartSpeak()
345
+    {
346
+        $request = new PlivoRequest(
347
+            'POST',
348
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Speak/',
349
+            ['text'=>'Speak this']);
350
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallSpeakCreateResponse.json');
351
+
352
+        $this->mock(new PlivoResponse($request,201, $body));
353
+
354
+        $actual = $this->client->calls->startSpeaking("dfshjkasfhjkasfhjkashf", "Speak this");
355
+
356
+        $this->assertRequest($request);
357
+
358
+        self::assertNotNull($actual);
359
+
360
+        self::assertEquals($actual->message, "speak started");
361
+    }
362
+
363
+    function testLiveCallStopSpeak()
364
+    {
365
+        $request = new PlivoRequest(
366
+            'DELETE',
367
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Speak/',
368
+            []);
369
+        $body = '{}';
370
+
371
+        $this->mock(new PlivoResponse($request,204, $body));
372
+
373
+        $actual = $this->client->calls->stopSpeaking("dfshjkasfhjkasfhjkashf");
374
+
375
+        $this->assertRequest($request);
376
+
377
+        self::assertNull($actual);
378
+    }
379
+
380
+    function testLiveCallRecord()
381
+    {
382
+        $request = new PlivoRequest(
383
+            'POST',
384
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Record/',
385
+            []);
386
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallRecordCreateResponse.json');
387
+
388
+        $this->mock(new PlivoResponse($request,201, $body));
389
+
390
+        $actual = $this->client->calls->record("dfshjkasfhjkasfhjkashf");
391
+
392
+        $this->assertRequest($request);
393
+
394
+        self::assertNotNull($actual);
395
+
396
+        self::assertEquals($actual->url, "http://s3.amazonaws.com/recordings_2013/48dfaf60-3b2a-11e3.mp3");
397
+        self::assertEquals($actual->message, "call recording started");
398
+        self::assertEquals($actual->recordingId, "48dfaf60-3b2a-11e3");
399
+        self::assertEquals($actual->apiId, "c7b69074-58be-11e1-86da-adf28403fe48");
400
+    }
401
+
402
+    function testLiveCallStartRecord()
403
+    {
404
+        $request = new PlivoRequest(
405
+            'POST',
406
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Record/',
407
+            []);
408
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallRecordCreateResponse.json');
409
+
410
+        $this->mock(new PlivoResponse($request,201, $body));
411
+
412
+        $actual = $this->client->calls->startRecording("dfshjkasfhjkasfhjkashf");
413
+
414
+        $this->assertRequest($request);
415
+
416
+        self::assertNotNull($actual);
417
+
418
+        self::assertEquals($actual->url, "http://s3.amazonaws.com/recordings_2013/48dfaf60-3b2a-11e3.mp3");
419
+        self::assertEquals($actual->message, "call recording started");
420
+        self::assertEquals($actual->recordingId, "48dfaf60-3b2a-11e3");
421
+        self::assertEquals($actual->apiId, "c7b69074-58be-11e1-86da-adf28403fe48");
422
+    }
423
+
424
+    function testLiveCallStopRecord()
425
+    {
426
+        $request = new PlivoRequest(
427
+            'DELETE',
428
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Record/',
429
+            []);
430
+        $body = '{}';
431
+
432
+        $this->mock(new PlivoResponse($request,204, $body));
433
+
434
+        $actual = $this->client->calls->stopRecording("dfshjkasfhjkasfhjkashf");
435
+
436
+        $this->assertRequest($request);
437
+
438
+        self::assertNull($actual);
439
+    }
440
+
441
+    function testExceptionLiveCallStartRecord()
442
+    {
443
+        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
444
+        $request = new PlivoRequest(
445
+            'POST',
446
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/Record/',
447
+            []);
448
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallRecordCreateResponse.json');
449
+
450
+        $this->mock(new PlivoResponse($request,201, $body));
451
+
452
+        $actual = $this->client->calls->startRecording("");
453
+
454
+        $this->assertRequest($request);
455
+
456
+        self::assertNotNull($actual);
457
+
458
+        self::assertEquals($actual->message, "call recording started");
459
+    }
460
+
461
+    function testLiveCallDtmf()
462
+    {
463
+        $request = new PlivoRequest(
464
+            'POST',
465
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/DTMF/',
466
+            ['digits'=>"123"]);
467
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallDtmfCreateResponse.json');
468
+
469
+        $this->mock(new PlivoResponse($request,201, $body));
470
+
471
+        $actual = $this->client->calls->dtmf("dfshjkasfhjkasfhjkashf", "123");
472
+
473
+        $this->assertRequest($request);
474
+
475
+        self::assertNotNull($actual);
476
+
477
+        self::assertEquals($actual->message, "digits sent");
478
+    }
479
+
480
+    function testExceptionLiveCallDtmf()
481
+    {
482
+        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
483
+        $request = new PlivoRequest(
484
+            'POST',
485
+            'Account/MAXXXXXXXXXXXXXXXXXX/Call/dfshjkasfhjkasfhjkashf/DTMF/',
486
+            ['digits'=>"123"]);
487
+        $body = file_get_contents(__DIR__ . '/../Mocks/liveCallDtmfCreateResponse.json');
488
+
489
+        $this->mock(new PlivoResponse($request,201, $body));
490
+
491
+        $actual = $this->client->calls->dtmf("", "123");
492
+
493
+        $this->assertRequest($request);
494
+
495
+        self::assertNotNull($actual);
496
+
497
+        self::assertEquals($actual->message, "digits sent");
498
+    }
499
+
500
+    function testLiveCallCancel()
501
+    {
502
+        $request = new PlivoRequest(
503
+            'DELETE',
504
+            'Account/MAXXXXXXXXXXXXXXXXXX/Request/dfshjkasfhjkasfhjkashf/',
505
+            []);
506
+        $body = '{}';
507
+
508
+        $this->mock(new PlivoResponse($request,204, $body));
509
+
510
+        $actual = $this->client->calls->cancel("dfshjkasfhjkasfhjkashf");
511
+
512
+        $this->assertRequest($request);
513
+
514
+        self::assertNull($actual);
515
+    }
516
+
517
+    function testExceptionLiveCallCancel()
518
+    {
519
+        $this->expectPlivoException('Plivo\Exceptions\PlivoValidationException');
520
+        $request = new PlivoRequest(
521
+            'DELETE',
522
+            'Account/MAXXXXXXXXXXXXXXXXXX/Request/dfshjkasfhjkasfhjkashf/',
523
+            []);
524
+        $body = '{}';
525
+
526
+        $this->mock(new PlivoResponse($request,204, $body));
527
+
528
+        $actual = $this->client->calls->cancel(null);
529
+
530
+        $this->assertRequest($request);
531
+
532
+        self::assertNull($actual);
533
+    }
534
+}