mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-26 23:40:57 +01:00
e96c363eef
Summary: Provides a working SMS implementation with support for Twilio. This version doesn't really retry if we get any gruff at all. Future versions should retry. Test Plan: used bin/sms to send messages and look at them. Reviewers: chad, epriestley Reviewed By: epriestley Subscribers: aurelijus, epriestley, Korvin Maniphest Tasks: T920 Differential Revision: https://secure.phabricator.com/D8930
114 lines
4.8 KiB
PHP
Executable file
114 lines
4.8 KiB
PHP
Executable file
<?php
|
|
|
|
use \Mockery as m;
|
|
|
|
class UsageTriggersTest extends PHPUnit_Framework_TestCase {
|
|
function testRetrieveTrigger() {
|
|
$http = m::mock(new Services_Twilio_TinyHttp);
|
|
$http->shouldReceive('get')->once()
|
|
->with('/2010-04-01/Accounts/AC123/Usage/Triggers/UT123.json')
|
|
->andReturn(array(200, array('Content-Type' => 'application/json'),
|
|
json_encode(array(
|
|
'sid' => 'UT123',
|
|
'date_created' => 'Tue, 09 Oct 2012 19:27:24 +0000',
|
|
'recurring' => null,
|
|
'usage_category' => 'totalprice',
|
|
))
|
|
));
|
|
$client = new Services_Twilio('AC123', '456bef', '2010-04-01', $http);
|
|
$usageSid = 'UT123';
|
|
$usageTrigger = $client->account->usage_triggers->get($usageSid);
|
|
$this->assertSame('totalprice', $usageTrigger->usage_category);
|
|
}
|
|
|
|
protected $formHeaders = array('Content-Type' => 'application/x-www-form-urlencoded');
|
|
|
|
function testUpdateTrigger() {
|
|
$http = m::mock(new Services_Twilio_TinyHttp);
|
|
$usageSid = 'UT123';
|
|
$http->shouldReceive('post')->once()
|
|
->with('/2010-04-01/Accounts/AC123/Usage/Triggers/UT123.json',
|
|
$this->formHeaders, 'FriendlyName=new')
|
|
->andReturn(array(200, array('Content-Type' => 'application/json'),
|
|
json_encode(array(
|
|
'friendly_name' => 'new',
|
|
'sid' => 'UT123',
|
|
'uri' => '/2010-04-01/Accounts/AC123/Usage/Triggers/UT123.json'
|
|
))
|
|
));
|
|
$http->shouldReceive('get')->once()
|
|
->with('/2010-04-01/Accounts/AC123/Usage/Triggers/UT123.json')
|
|
->andReturn(array(200, array('Content-Type' => 'application/json'),
|
|
json_encode(array(
|
|
'sid' => 'UT123',
|
|
'friendly_name' => 'new',
|
|
))
|
|
));
|
|
$client = new Services_Twilio('AC123', '456bef', '2010-04-01', $http);
|
|
$usageTrigger = $client->account->usage_triggers->get($usageSid);
|
|
$usageTrigger->update(array(
|
|
'FriendlyName' => 'new',
|
|
));
|
|
$usageTrigger2 = $client->account->usage_triggers->get($usageSid);
|
|
$this->assertSame('new', $usageTrigger2->friendly_name);
|
|
}
|
|
|
|
function testFilterTriggerList() {
|
|
$http = m::mock(new Services_Twilio_TinyHttp);
|
|
$params = 'Page=0&PageSize=50&UsageCategory=sms';
|
|
$http->shouldReceive('get')->once()
|
|
->with('/2010-04-01/Accounts/AC123/Usage/Triggers.json?' . $params)
|
|
->andReturn(array(200, array('Content-Type' => 'application/json'),
|
|
json_encode(array('usage_triggers' => array(
|
|
array(
|
|
'usage_category' => 'sms',
|
|
'current_value' => '4',
|
|
'trigger_value' => '100.30',
|
|
),
|
|
array(
|
|
'usage_category' => 'sms',
|
|
'current_value' => '4',
|
|
'trigger_value' => '400.30',
|
|
)),
|
|
'next_page_uri' => '/2010-04-01/Accounts/AC123/Usage/Triggers.json?UsageCategory=sms&Page=1&PageSize=50',
|
|
))
|
|
));
|
|
$params = 'UsageCategory=sms&Page=1&PageSize=50';
|
|
$http->shouldReceive('get')->once()
|
|
->with('/2010-04-01/Accounts/AC123/Usage/Triggers.json?' . $params)
|
|
->andReturn(array(400, array('Content-Type' => 'application/json'),
|
|
'{"status":400,"message":"foo", "code": "20006"}'
|
|
));
|
|
$client = new Services_Twilio('AC123', '456bef', '2010-04-01', $http);
|
|
foreach ($client->account->usage_triggers->getIterator(
|
|
0, 50, array(
|
|
'UsageCategory' => 'sms',
|
|
)) as $trigger
|
|
) {
|
|
$this->assertSame($trigger->current_value, "4");
|
|
}
|
|
}
|
|
|
|
function testCreateTrigger() {
|
|
$http = m::mock(new Services_Twilio_TinyHttp);
|
|
$params = 'UsageCategory=sms&TriggerValue=100&CallbackUrl=foo';
|
|
$http->shouldReceive('post')->once()
|
|
->with('/2010-04-01/Accounts/AC123/Usage/Triggers.json',
|
|
$this->formHeaders, $params)
|
|
->andReturn(array(201, array('Content-Type' => 'application/json'),
|
|
json_encode(array(
|
|
'usage_category' => 'sms',
|
|
'sid' => 'UT123',
|
|
'uri' => '/2010-04-01/Accounts/AC123/Usage/Triggers/UT123.json'
|
|
))
|
|
));
|
|
$client = new Services_Twilio('AC123', '456bef', '2010-04-01', $http);
|
|
$trigger = $client->account->usage_triggers->create(
|
|
'sms',
|
|
'100',
|
|
'foo'
|
|
);
|
|
$this->assertSame('sms', $trigger->usage_category);
|
|
}
|
|
}
|
|
|