Neur0toxine
804cbfac37
* corporate customers support * skip new payments without type * extract customer data from order for guests * extract customer phone and email from order for guests * set item discount to zero if no discount applies * create order from back-office * sync phone via history * fixed customer squashing * fixed createdAt crash * fixed customer id assigning & possible crash after errors in order creation
88 lines
2.1 KiB
PHP
88 lines
2.1 KiB
PHP
<?php
|
|
/**
|
|
* PHP version 5.3
|
|
*
|
|
* @category Integration
|
|
* @author RetailCRM <integration@retailcrm.ru>
|
|
* @license http://retailcrm.ru Proprietary
|
|
* @link http://retailcrm.ru
|
|
* @see http://help.retailcrm.ru
|
|
*/
|
|
|
|
class WC_Retailcrm_Order_Payment_Test extends WC_Retailcrm_Test_Case_Helper
|
|
{
|
|
/** @var WC_Order */
|
|
protected $order;
|
|
|
|
public function setUp()
|
|
{
|
|
parent::setUp();
|
|
|
|
$this->order = WC_Helper_Order::create_order();
|
|
$this->setOptions();
|
|
}
|
|
|
|
/**
|
|
* @param mixed $externalId
|
|
*
|
|
* @dataProvider dataProvider
|
|
*/
|
|
public function test_build($externalId)
|
|
{
|
|
$settings = $this->getOptions();
|
|
$settings['send_payment_amount'] = 'no';
|
|
$order_payment = new WC_Retailcrm_Order_Payment($settings);
|
|
|
|
$data = $order_payment->build($this->order, $externalId)->get_data();
|
|
|
|
$this->assertNotEmpty($data);
|
|
|
|
if (!empty($externalId)) {
|
|
$this->assertArrayHasKey('externalId', $data);
|
|
}
|
|
|
|
$this->assertArrayHasKey('type', $data);
|
|
$this->assertArrayNotHasKey('amount', $data);
|
|
$this->assertArrayHasKey('order', $data);
|
|
}
|
|
|
|
/**
|
|
* @param mixed $externalId
|
|
*
|
|
* @dataProvider dataProvider
|
|
*/
|
|
public function test_build_with_amount($externalId)
|
|
{
|
|
$settings = $this->getOptions();
|
|
$settings['send_payment_amount'] = 'yes';
|
|
$order_payment = new WC_Retailcrm_Order_Payment($settings);
|
|
|
|
$data = $order_payment->build($this->order, $externalId)->get_data();
|
|
|
|
$this->assertNotEmpty($data);
|
|
|
|
if (!empty($externalId)) {
|
|
$this->assertArrayHasKey('externalId', $data);
|
|
}
|
|
|
|
$this->assertArrayHasKey('type', $data);
|
|
$this->assertArrayHasKey('amount', $data);
|
|
$this->assertArrayHasKey('order', $data);
|
|
}
|
|
|
|
/**
|
|
* @return array
|
|
*/
|
|
public function dataProvider()
|
|
{
|
|
return array(
|
|
array(
|
|
'externalId' => false
|
|
),
|
|
array(
|
|
'externalId' => uniqid()
|
|
)
|
|
);
|
|
}
|
|
}
|