Files
FOSSBilling/tests/integration/bb-modules/mod_invoice/Api_Client2Test.php
T
Vaidas Lungis a6622c693d 4.15.5
update payment adapters

Conflicts:
	tests/fixtures/mod_invoice.xml
	tests/fixtures/transactions.xml
2015-03-04 18:08:53 +02:00

182 lines
7.2 KiB
PHP

<?php
/**
* @group Core
*/
class Api_Client_InvoiceTest extends BBDbApiTestCase
{
protected $_initialSeedFile = 'transactions.xml';
public function testProformaInvoices()
{
//prepare expiring order
$data = array(
'id' => 5,
'expires_at' => date('Y-m-d H:i:s', strtotime('+1 day')),
);
$bool = $this->api_admin->order_update($data);
$this->assertTrue($bool);
$bool = $this->api_admin->invoice_batch_generate();
$this->assertTrue($bool);
$array = $this->api_client->invoice_get_list();
$this->assertInternalType('array', $array);
$data = array(
'hash' => $array['list'][0]['hash'],
);
$array = $this->api_client->invoice_get($data);
$this->assertInternalType('array', $array);
}
public function testRenewal()
{
$data = array(
'order_id' => 3,
);
$hash = $this->api_client->invoice_renewal_invoice($data);
$this->assertInternalType('string', $hash);
}
public function testFunds()
{
$data = array(
'amount' => 30,
);
$hash = $this->api_client->invoice_funds_invoice($data);
$this->assertInternalType('string', $hash);
}
public function testDelete()
{
$invoices = $this->di['db']->find('Invoice', '1');
$pf = $invoices[1];
$hash = $pf->hash;
$data = array(
'hash' => $hash,
);
$bool = $this->api_client->invoice_delete($data);
$this->assertTrue($bool);
}
public function testTransactions()
{
$array = $this->api_client->invoice_transaction_get_list();
$this->assertInternalType('array', $array);
}
public function testInvoiceGetList()
{
$array = $this->api_client->invoice_get_list();
$this->assertInternalType('array', $array);
$this->assertArrayHasKey('list', $array);
$list = $array['list'];
$this->assertInternalType('array', $list);
if (count($list)) {
$item = $list[1];
$this->assertArrayHasKey('id', $item);
$this->assertArrayHasKey('serie', $item);
$this->assertArrayHasKey('nr', $item);
$this->assertArrayHasKey('serie_nr', $item);
$this->assertArrayHasKey('hash', $item);
$this->assertArrayHasKey('gateway_id', $item);
$this->assertArrayHasKey('taxname', $item);
$this->assertArrayHasKey('taxrate', $item);
$this->assertArrayHasKey('currency', $item);
$this->assertArrayHasKey('currency_rate', $item);
$this->assertArrayHasKey('tax', $item);
$this->assertArrayHasKey('subtotal', $item);
$this->assertArrayHasKey('total', $item);
$this->assertArrayHasKey('status', $item);
$this->assertArrayHasKey('notes', $item);
$this->assertArrayHasKey('text_1', $item);
$this->assertArrayHasKey('text_2', $item);
$this->assertArrayHasKey('due_at', $item);
$this->assertArrayHasKey('paid_at', $item);
$this->assertArrayHasKey('created_at', $item);
$this->assertArrayHasKey('updated_at', $item);
$this->assertArrayHasKey('lines', $item);
$this->assertInternalType('array', $item['lines']);
$line = $item['lines'][0];
$this->assertInternalType('array', $line);
$this->assertArrayHasKey('id', $line);
$this->assertArrayHasKey('title', $line);
$this->assertArrayHasKey('period', $line);
$this->assertArrayHasKey('quantity', $line);
$this->assertArrayHasKey('unit', $line);
$this->assertArrayHasKey('price', $line);
$this->assertArrayHasKey('tax', $line);
$this->assertArrayHasKey('taxed', $line);
$this->assertArrayHasKey('charged', $line);
$this->assertArrayHasKey('total', $line);
$this->assertArrayHasKey('order_id', $line);
$this->assertArrayHasKey('type', $line);
$this->assertArrayHasKey('rel_id', $line);
$this->assertArrayHasKey('task', $line);
$this->assertArrayHasKey('status', $line);
$this->assertArrayHasKey('lines', $item);
$this->assertInternalType('array', $item['buyer']);
$buyer = $item['buyer'];
$this->assertArrayHasKey('first_name', $buyer);
$this->assertArrayHasKey('last_name', $buyer);
$this->assertArrayHasKey('company', $buyer);
$this->assertArrayHasKey('company_vat', $buyer);
$this->assertArrayHasKey('company_number', $buyer);
$this->assertArrayHasKey('address', $buyer);
$this->assertArrayHasKey('city', $buyer);
$this->assertArrayHasKey('state', $buyer);
$this->assertArrayHasKey('country', $buyer);
$this->assertArrayHasKey('phone', $buyer);
$this->assertArrayHasKey('phone_cc', $buyer);
$this->assertArrayHasKey('email', $buyer);
$this->assertArrayHasKey('zip', $buyer);
$this->assertInternalType('array', $item['seller']);
$seller = $item['seller'];
$this->assertArrayHasKey('company', $seller);
$this->assertArrayHasKey('company_vat', $seller);
$this->assertArrayHasKey('company_number', $seller);
$this->assertArrayHasKey('address', $seller);
$this->assertArrayHasKey('phone', $seller);
$this->assertArrayHasKey('email', $seller);
$this->assertArrayHasKey('subscribable', $item);
$this->assertArrayHasKey('subscription', $item);
$this->assertInternalType('array', $item['subscription']);
$subscription = $item['subscription'];
$this->assertArrayHasKey('unit', $subscription);
$this->assertArrayHasKey('cycle', $subscription);
$this->assertArrayHasKey('period', $subscription);
}
}
public function testTransactionGetList()
{
$array = $this->api_client->invoice_transaction_get_list();
$this->assertInternalType('array', $array);
$this->assertArrayHasKey('list', $array);
$list = $array['list'];
$this->assertInternalType('array', $list);
if (count($list)) {
$item = $list[0];
$this->arrayHasKey('id', $item);
$this->arrayHasKey('invoice_id', $item);
$this->arrayHasKey('txn_id', $item);
$this->arrayHasKey('txn_status', $item);
$this->arrayHasKey('gateway_id', $item);
$this->arrayHasKey('gateway', $item);
$this->arrayHasKey('amount', $item);
$this->arrayHasKey('currency', $item);
$this->arrayHasKey('type', $item);
$this->arrayHasKey('status', $item);
$this->arrayHasKey('ip', $item);
$this->arrayHasKey('validate_ipn', $item);
$this->arrayHasKey('error', $item);
$this->arrayHasKey('error_code', $item);
$this->arrayHasKey('note', $item);
$this->arrayHasKey('created_at', $item);
$this->arrayHasKey('updated_at', $item);
}
}
}