147 lines
3.7 KiB
PHP
147 lines
3.7 KiB
PHP
<?php
|
|
|
|
namespace Razorpay\Tests;
|
|
|
|
use Razorpay\Api\Request;
|
|
|
|
class SubscriptionTest extends TestCase
|
|
{
|
|
/**
|
|
* Specify unique subscription id & plan id
|
|
* for example : sub_IEKtBfPIqTHLWd & plan_IEeswu4zFBRGwi
|
|
*/
|
|
|
|
private $subscriptionId = "sub_IEllLOZcf0PODu";
|
|
|
|
private $plan = "plan_IEeswu4zFBRGwi";
|
|
|
|
public function setUp(): void
|
|
{
|
|
parent::setUp();
|
|
}
|
|
|
|
/**
|
|
* Create a Subscription Link
|
|
*/
|
|
public function testCreateSubscription()
|
|
{
|
|
$data = $this->api->subscription->create(array('plan_id' => $this->plan, 'customer_notify' => 1,'quantity'=>1, 'total_count' => 6, 'addons' => array(array('item' => array('name' => 'Delivery charges', 'amount' => 3000, 'currency' => 'INR'))),'notes'=> array('key1'=> 'value3','key2'=> 'value2')));
|
|
|
|
$this->assertTrue(is_array($data->toArray()));
|
|
|
|
$this->assertTrue(in_array('id',$data->toArray()));
|
|
}
|
|
|
|
/**
|
|
* Fetch Subscription Link by ID
|
|
*/
|
|
public function testSubscriptionFetchId()
|
|
{
|
|
$data = $this->api->subscription->fetch($this->subscriptionId);
|
|
|
|
$this->assertTrue(is_array($data->toArray()));
|
|
|
|
$this->assertTrue(in_array('plan_id',$data->toArray()));
|
|
}
|
|
|
|
/**
|
|
* Pause a Subscription
|
|
*/
|
|
public function testPauseSubscription()
|
|
{
|
|
|
|
$data = $this->api->subscription->fetch($this->subscriptionId)->pause(['pause_at'=>'now']);
|
|
|
|
$this->assertTrue(is_array($data->toArray()));
|
|
|
|
$this->assertTrue(in_array('id',$data->toArray()));
|
|
|
|
$this->assertTrue($data['status'] == 'paused');
|
|
|
|
}
|
|
|
|
/**
|
|
* Resume a Subscription
|
|
*/
|
|
public function testResumeSubscription()
|
|
{
|
|
$data = $this->api->subscription->fetch($this->subscriptionId)->resume(['resume_at'=>'now']);
|
|
|
|
$this->assertTrue(is_array($data->toArray()));
|
|
|
|
$this->assertTrue(in_array('id',$data->toArray()));
|
|
|
|
}
|
|
|
|
/**
|
|
* Update a Subscription
|
|
*/
|
|
public function testUpdateSubscription()
|
|
{
|
|
$data = $this->api->subscription->fetch($this->subscriptionId)->update(array('schedule_change_at'=>'cycle_end','quantity'=>2));
|
|
|
|
$this->assertTrue(is_array($data->toArray()));
|
|
|
|
$this->assertTrue(in_array('customer_id',$data->toArray()));
|
|
}
|
|
|
|
/**
|
|
* Fetch Details of a Pending Update
|
|
*/
|
|
public function testPendingUpdate()
|
|
{
|
|
$data = $this->api->subscription->fetch($this->subscriptionId)->pendingUpdate();
|
|
|
|
$this->assertTrue(is_array($data->toArray()));
|
|
|
|
$this->assertTrue(in_array('id',$data->toArray()));
|
|
}
|
|
|
|
/**
|
|
* Cancel an Update
|
|
*/
|
|
public function testCancelUpdate()
|
|
{
|
|
$data = $this->api->subscription->fetch($this->subscriptionId)->cancelScheduledChanges();
|
|
|
|
$this->assertTrue(is_array($data->toArray()));
|
|
|
|
$this->assertTrue(in_array('id',$data->toArray()));
|
|
}
|
|
|
|
/**
|
|
* Fetch All Invoices for a Subscription
|
|
*/
|
|
public function testSubscriptionInvoices()
|
|
{
|
|
$data = $this->api->invoice->all(['subscription_id'=>$this->subscriptionId]);
|
|
|
|
$this->assertTrue(is_array($data->toArray()));
|
|
|
|
$this->assertTrue(is_array($data['items']));
|
|
}
|
|
|
|
/**
|
|
* Fetch all Add-ons
|
|
*/
|
|
public function testFetchAddons()
|
|
{
|
|
$data = $this->api->addon->fetchAll();
|
|
|
|
$this->assertTrue(is_array($data->toArray()));
|
|
|
|
$this->assertTrue(is_array($data['items']));
|
|
}
|
|
|
|
/**
|
|
* Fetch all subscriptions
|
|
*/
|
|
public function testFetchAllSubscriptions()
|
|
{
|
|
$data = $this->api->subscription->all();
|
|
|
|
$this->assertTrue(is_array($data->toArray()));
|
|
|
|
$this->assertTrue(is_array($data['items']));
|
|
}
|
|
} |