1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-23 15:22:41 +01:00
phorge-phorge/externals/twilio-php/tests/resources/UsageTriggersTest.php
Bob Trahan e96c363eef Add SMS support
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
2014-05-09 12:47:21 -07:00

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);
}
}