1
0
Fork 0
mirror of synced 2025-04-11 05:00:55 +00:00
Исправление тестов
Добавление тестов
This commit is contained in:
Ivan Chaplygin 2024-01-19 12:47:10 +03:00
parent 7d0e11de4e
commit dacd3a89ba
2 changed files with 117 additions and 8 deletions

View file

@ -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

View file

@ -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()