1
0
mirror of synced 2025-01-18 17:01:41 +03:00
woocommerce-module/tests/order/test-wc-retailcrm-order-payment.php
2022-09-30 17:50:15 +03:00

142 lines
3.3 KiB
PHP

<?php
/**
* PHP version 7.0
*
* Class WC_Retailcrm_Order_Payment_Test - Testing WC_Retailcrm_Order_Payment.
*
* @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();
$order_payment = new WC_Retailcrm_Order_Payment($settings);
$data = $order_payment->build($this->order, $externalId)->getData();
$this->assertNotEmpty($data);
if (!empty($externalId)) {
$this->assertArrayHasKey('externalId', $data);
}
$this->assertArrayHasKey('type', $data);
$this->assertArrayHasKey('order', $data);
}
/**
* @param mixed $externalId
*
* @dataProvider dataProvider
*/
public function test_build_payment_type_not_exist($externalId)
{
$order_payment = new WC_Retailcrm_Order_Payment('test');
$data = $order_payment->build($this->order, $externalId)->getData();
$this->assertEmpty($data);
}
/**
* @param mixed $externalId
*
* @dataProvider dataProvider
*/
public function test_not_new_payment($externalId)
{
$settings = $this->getOptions();
$order_payment = new WC_Retailcrm_Order_Payment($settings);
$order_payment->isNew = false;
$data = $order_payment->build($this->order, $externalId)->getData();
$this->assertEmpty($data);
}
/**
* @param mixed $externalId
*
* @dataProvider dataProvider
*/
public function test_order_paid($externalId)
{
$settings = $this->getOptions();
$order_payment = new WC_Retailcrm_Order_Payment($settings);
$this->order->update_status('completed');
$data = $order_payment->build($this->order, $externalId)->getData();
$this->assertNotEmpty($data);
if (!empty($externalId)) {
$this->assertArrayHasKey('externalId', $data);
}
$this->assertArrayHasKey('type', $data);
$this->assertArrayHasKey('order', $data);
}
/**
* @param mixed $externalId
*
* @dataProvider dataProvider
*/
public function test_build_with_amount($externalId)
{
$settings = $this->getOptions();
$order_payment = new WC_Retailcrm_Order_Payment($settings);
$data = $order_payment->build($this->order, $externalId)->getData();
$this->assertNotEmpty($data);
if (!empty($externalId)) {
$this->assertArrayHasKey('externalId', $data);
}
$this->assertArrayHasKey('type', $data);
$this->assertArrayHasKey('order', $data);
}
/**
* @return array
*/
public function dataProvider()
{
return array(
array(
'externalId' => false
),
array(
'externalId' => uniqid()
)
);
}
}