parent
7d0e11de4e
commit
dacd3a89ba
2 changed files with 117 additions and 8 deletions
|
@ -54,9 +54,67 @@ class RetailCrmEventTest extends PHPUnit\Framework\TestCase
|
|||
* @throws \PHPUnit\Framework\MockObject\RuntimeException
|
||||
* @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
|
||||
*
|
||||
* @runInSeparateProcess
|
||||
* @preserveGlobalState disabled
|
||||
*
|
||||
*/
|
||||
public function testIntegrationPaymentSave()
|
||||
{
|
||||
RetailcrmConfigProvider::setSyncIntegrationPayment('N');
|
||||
RetailcrmConfigProvider::setIntegrationPaymentTypes(['testPayment']);
|
||||
|
||||
$event = $this->createMock(\Bitrix\Sale\Payment::class);
|
||||
$date = \Bitrix\Main\Type\DateTime::createFromPhp(new DateTime('2000-01-01'))->format('Y-m-d H:i:s');
|
||||
$order = $this->createMock(\Bitrix\Sale\Order::class);
|
||||
|
||||
$order->expects($this->any())
|
||||
->method('isNew')
|
||||
->willReturn(false);
|
||||
|
||||
$paymentCollection = $this->createMock(\Bitrix\Sale\PaymentCollection::class);
|
||||
$paymentCollection->expects($this->any())
|
||||
->method('getOrder')
|
||||
->willReturn($order);
|
||||
|
||||
$event->method('getCollection')->willReturn($paymentCollection);
|
||||
$event->method('getId')->willReturn(11);
|
||||
$event->method('getField')->willReturnCallback(function ($field) use ($date){
|
||||
switch ($field) {
|
||||
case 'ORDER_ID': return 11;
|
||||
case 'PAID': return 'paid';
|
||||
case 'PAY_SYSTEM_ID': return 1;
|
||||
case 'SUM': return '500';
|
||||
case 'DATE_PAID': return $date;
|
||||
default: return null;
|
||||
}
|
||||
});
|
||||
|
||||
$api = new RetailCrm\ApiClient(RetailcrmConfigProvider::getApiUrl(), RetailcrmConfigProvider::getApiKey());
|
||||
$spy = \Mockery::spy('overload:' .RCrmActions::class);
|
||||
|
||||
$GLOBALS['RETAIL_CRM_HISTORY'] = false;
|
||||
|
||||
$result = RetailCrmEvent::paymentSave($event);
|
||||
|
||||
$spy->shouldReceive('apiMethod')->with(
|
||||
$api,
|
||||
'ordersPaymentCreate',
|
||||
'RetailCrmEvent::paymentSave',
|
||||
[
|
||||
'externalId' => null,
|
||||
'order' => ['externalId' => 11],
|
||||
'type' => 'testPayment'
|
||||
],
|
||||
null
|
||||
)->once();
|
||||
|
||||
$this->assertEquals(true, $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @dataProvider paymentSaveDataProvider
|
||||
*/
|
||||
public function testPaymentSave($history, $new)
|
||||
public function testSavePaymentWithHistoryAndCreateOrder($history, $new)
|
||||
{
|
||||
$event = $this->createMock(\Bitrix\Sale\Payment::class);
|
||||
|
||||
|
@ -81,6 +139,61 @@ class RetailCrmEventTest extends PHPUnit\Framework\TestCase
|
|||
$this->assertEquals(false, $result);
|
||||
}
|
||||
|
||||
public function testPaymentSaveWithSyncIntegrationPayment()
|
||||
{
|
||||
RetailcrmConfigProvider::setSyncIntegrationPayment('Y');
|
||||
RetailcrmConfigProvider::setIntegrationPaymentTypes(['testPayment']);
|
||||
|
||||
$event = $this->createMock(\Bitrix\Sale\Payment::class);
|
||||
$date = \Bitrix\Main\Type\DateTime::createFromPhp(new DateTime('2000-01-01'))->format('Y-m-d H:i:s');
|
||||
$order = $this->createMock(\Bitrix\Sale\Order::class);
|
||||
|
||||
$order->expects($this->any())
|
||||
->method('isNew')
|
||||
->willReturn(false);
|
||||
|
||||
$paymentCollection = $this->createMock(\Bitrix\Sale\PaymentCollection::class);
|
||||
$paymentCollection->expects($this->any())
|
||||
->method('getOrder')
|
||||
->willReturn($order);
|
||||
|
||||
$event->method('getCollection')->willReturn($paymentCollection);
|
||||
$event->method('getId')->willReturn(11);
|
||||
$event->method('getField')->willReturnCallback(function ($field) use ($date){
|
||||
switch ($field) {
|
||||
case 'ORDER_ID': return 11;
|
||||
case 'PAID': return 'paid';
|
||||
case 'PAY_SYSTEM_ID': return 1;
|
||||
case 'SUM': return '500';
|
||||
case 'DATE_PAID': return $date;
|
||||
default: return null;
|
||||
}
|
||||
});
|
||||
|
||||
$api = new RetailCrm\ApiClient(RetailcrmConfigProvider::getApiUrl(), RetailcrmConfigProvider::getApiKey());
|
||||
$spy = \Mockery::spy('overload:' .RCrmActions::class);
|
||||
|
||||
$GLOBALS['RETAIL_CRM_HISTORY'] = false;
|
||||
|
||||
$result = RetailCrmEvent::paymentSave($event);
|
||||
|
||||
$spy->shouldReceive('apiMethod')->with(
|
||||
$api,
|
||||
'ordersPaymentCreate',
|
||||
'RetailCrmEvent::paymentSave',
|
||||
[
|
||||
'externalId' => null,
|
||||
'order' => ['externalId' => 11],
|
||||
'type' => 'testPayment',
|
||||
'status' => 'paid',
|
||||
'paidAt' => $date
|
||||
],
|
||||
null
|
||||
)->once();
|
||||
|
||||
$this->assertEquals(true, $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $history
|
||||
*
|
||||
|
@ -239,10 +352,6 @@ class RetailCrmEventTest extends PHPUnit\Framework\TestCase
|
|||
'history' => true,
|
||||
'new' => false
|
||||
],
|
||||
[
|
||||
'history' => false,
|
||||
'new' => false
|
||||
],
|
||||
[
|
||||
'history' => false,
|
||||
'new' => true
|
||||
|
|
|
@ -59,9 +59,9 @@ class RetailCrmServiceTest extends PHPUnit\Framework\TestCase
|
|||
$result = RetailCrmService::getAvailableTypes($sites, $types);
|
||||
|
||||
$this->assertCount(3, $result);
|
||||
$this->assertEquals('test1', $result[0]['code']);
|
||||
$this->assertEquals('test4', $result[1]['code']);
|
||||
$this->assertEquals('test6', $result[2]['code']);
|
||||
$this->assertEquals('test1', $result['test1']['code']);
|
||||
$this->assertEquals('test4', $result['test4']['code']);
|
||||
$this->assertEquals('test6', $result['test6']['code']);
|
||||
}
|
||||
|
||||
public function selectIntegrationDeliveriesProvider()
|
||||
|
|
Loading…
Add table
Reference in a new issue