<?php
namespace Coinbase\Wallet\Tests\ActiveRecord;
use Coinbase\Wallet\ActiveRecord\ActiveRecordContext;
use Coinbase\Wallet\Client;
use Coinbase\Wallet\Resource\Checkout;
class CheckoutActiveRecordTest extends \PHPUnit_Framework_TestCase
{
/** @var \PHPUnit_Framework_MockObject_MockObject|Client */
private $client;
/** @var Checkout */
private $checkout;
protected function setUp()
{
$this->client = $this->getMockBuilder(Client::class)
->disableOriginalConstructor()
->getMock();
ActiveRecordContext::setClient($this->client);
$this->checkout = new Checkout();
}
protected function tearDown()
{
$this->client = null;
$this->checkout = null;
}
/**
* @dataProvider provideForMethodProxy
*/
public function testMethodProxy($method, $clientMethod)
{
$this->client->expects($this->once())
->method($clientMethod)
->with($this->checkout, []);
$this->checkout->$method();
}
public function provideForMethodProxy()
{
return [
'refresh' => ['refresh', 'refreshCheckout'],
'getOrders' => ['getOrders', 'getCheckoutOrders'],
'createNewOrder' => ['createNewOrder', 'createNewCheckoutOrder'],
];
}
}