2019-02-28 14:45:39 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Class RetailCrmEventTest
|
|
|
|
*/
|
|
|
|
class RetailCrmEventTest extends PHPUnit\Framework\TestCase
|
|
|
|
{
|
2023-03-15 11:55:04 +03:00
|
|
|
public function setUp(): void
|
2019-02-28 14:45:39 +03:00
|
|
|
{
|
|
|
|
parent::setUp();
|
|
|
|
|
|
|
|
COption::SetOptionString('intaro.retailcrm', 'api_version', 'v5');
|
|
|
|
CModule::IncludeModule('intaro.retailcrm');
|
|
|
|
|
|
|
|
$this->retailcrmEvent = new RetailCrmEvent();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param $history
|
|
|
|
* @param $emptyData
|
|
|
|
*
|
|
|
|
* @throws InvalidArgumentException
|
|
|
|
* @throws \PHPUnit\Framework\ExpectationFailedException
|
|
|
|
* @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
|
|
|
|
*
|
|
|
|
* @dataProvider userUpdateDataProvider
|
|
|
|
*/
|
|
|
|
public function testOnAfterUserUpdate($history, $emptyData)
|
|
|
|
{
|
|
|
|
$arFields = [
|
|
|
|
'ID' => 1
|
|
|
|
];
|
|
|
|
|
|
|
|
if ($history === true) {
|
|
|
|
$GLOBALS['RETAIL_CRM_HISTORY'] = $history;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($emptyData === true) {
|
|
|
|
$arFields['RESULT'] = [];
|
|
|
|
}
|
|
|
|
|
2023-03-15 11:55:04 +03:00
|
|
|
$result = RetailCrmEvent::OnAfterUserUpdate($arFields);
|
2019-02-28 14:45:39 +03:00
|
|
|
|
|
|
|
$this->assertEquals(false, $result);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param $history
|
|
|
|
* @param $v5
|
|
|
|
* @param $new
|
|
|
|
*
|
|
|
|
* @throws InvalidArgumentException
|
|
|
|
* @throws \PHPUnit\Framework\Exception
|
|
|
|
* @throws \PHPUnit\Framework\ExpectationFailedException
|
|
|
|
* @throws \PHPUnit\Framework\MockObject\RuntimeException
|
|
|
|
* @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
|
|
|
|
*
|
|
|
|
* @dataProvider paymentSaveDataProvider
|
|
|
|
*/
|
|
|
|
public function testPaymentSave($history, $v5, $new)
|
|
|
|
{
|
|
|
|
$event = $this->createMock(\Bitrix\Sale\Payment::class);
|
|
|
|
|
|
|
|
$order = $this->createMock(\Bitrix\Sale\Order::class);
|
|
|
|
$order->expects($this->any())
|
|
|
|
->method('isNew')
|
|
|
|
->willReturn($new);
|
|
|
|
|
|
|
|
$paymentCollection = $this->createMock(\Bitrix\Sale\PaymentCollection::class);
|
|
|
|
$paymentCollection->expects($this->any())
|
|
|
|
->method('getOrder')
|
|
|
|
->willReturn($order);
|
|
|
|
|
|
|
|
$event->method('getCollection')->willReturn($paymentCollection);
|
|
|
|
|
|
|
|
if ($history === true) {
|
|
|
|
$GLOBALS['RETAIL_CRM_HISTORY'] = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($v5 === false) {
|
|
|
|
COption::SetOptionString('intaro.retailcrm', 'api_version', 'v4');
|
|
|
|
}
|
|
|
|
|
2023-03-15 11:55:04 +03:00
|
|
|
$result = RetailCrmEvent::paymentSave($event);
|
2019-02-28 14:45:39 +03:00
|
|
|
|
|
|
|
$this->assertEquals(false, $result);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @param $history
|
|
|
|
* @param $v5
|
|
|
|
*
|
|
|
|
* @throws InvalidArgumentException
|
|
|
|
* @throws \PHPUnit\Framework\Exception
|
|
|
|
* @throws \PHPUnit\Framework\ExpectationFailedException
|
|
|
|
* @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
|
|
|
|
*
|
|
|
|
* @dataProvider paymentDeleteDataProvider
|
|
|
|
*/
|
|
|
|
public function testPaymentDelete($history, $v5)
|
|
|
|
{
|
|
|
|
$event = $this->createMock(\Bitrix\Sale\Payment::class);
|
|
|
|
|
|
|
|
if ($history === true) {
|
|
|
|
$GLOBALS['RETAIL_CRM_HISTORY'] = true;
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($v5 === false) {
|
|
|
|
COption::SetOptionString('intaro.retailcrm', 'api_version', 'v4');
|
|
|
|
}
|
|
|
|
|
2023-03-15 11:55:04 +03:00
|
|
|
$result = RetailCrmEvent::paymentDelete($event);
|
2019-02-28 14:45:39 +03:00
|
|
|
|
|
|
|
$this->assertEquals(false, $result);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
*
|
|
|
|
* @throws InvalidArgumentException
|
|
|
|
* @throws \PHPUnit\Framework\Exception
|
|
|
|
* @throws \PHPUnit\Framework\ExpectationFailedException
|
|
|
|
* @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
|
|
|
|
*/
|
|
|
|
public function testOrderSave()
|
|
|
|
{
|
|
|
|
$GLOBALS['RETAIL_CRM_HISTORY'] = true;
|
|
|
|
$GLOBALS['RETAILCRM_ORDER_OLD_EVENT'] = false;
|
|
|
|
$GLOBALS['RETAILCRM_ORDER_DELETE'] = true;
|
|
|
|
|
|
|
|
$event = $this->createMock(\Bitrix\Main\Event::class);
|
|
|
|
|
2022-03-02 15:40:53 +03:00
|
|
|
$result = RetailCrmEvent::orderSave($event);
|
2019-02-28 14:45:39 +03:00
|
|
|
|
|
|
|
$this->assertEquals(false, $result);
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @throws InvalidArgumentException
|
|
|
|
* @throws \PHPUnit\Framework\Exception
|
|
|
|
* @throws \PHPUnit\Framework\ExpectationFailedException
|
|
|
|
* @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
|
|
|
|
*/
|
|
|
|
public function testOrderDelete()
|
|
|
|
{
|
|
|
|
$event = $this->createMock(\Bitrix\Main\Event::class);
|
|
|
|
|
2023-03-15 11:55:04 +03:00
|
|
|
$result = RetailCrmEvent::OrderDelete($event);
|
2019-02-28 14:45:39 +03:00
|
|
|
|
2022-07-20 12:46:32 +03:00
|
|
|
$this->assertEquals(true, $GLOBALS['RETAILCRM_ORDER_DELETE']);
|
2019-02-28 14:45:39 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @throws \PHPUnit\Framework\ExpectationFailedException
|
|
|
|
* @throws \SebastianBergmann\RecursionContext\InvalidArgumentException
|
|
|
|
*/
|
|
|
|
public function testOnUpdateOrder()
|
|
|
|
{
|
2022-07-20 12:46:32 +03:00
|
|
|
$arFields = [
|
|
|
|
'CANCELED' => 'Y',
|
|
|
|
'BASKET_ITEMS' => [],
|
|
|
|
'ORDER_PROP' => []
|
|
|
|
];
|
2019-02-28 14:45:39 +03:00
|
|
|
|
2023-03-15 11:55:04 +03:00
|
|
|
$result = RetailCrmEvent::OnUpdateOrder(1, $arFields);
|
2019-02-28 14:45:39 +03:00
|
|
|
|
2022-07-20 12:46:32 +03:00
|
|
|
$this->assertEquals(true, $GLOBALS['RETAILCRM_ORDER_OLD_EVENT']);
|
|
|
|
|
|
|
|
$this->assertEquals(true, $GLOBALS['ORDER_DELETE_USER_ADMIN']);
|
2019-02-28 14:45:39 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public function userUpdateDataProvider()
|
|
|
|
{
|
|
|
|
return [
|
|
|
|
[
|
|
|
|
'history' => true,
|
|
|
|
'emptyData' => false
|
|
|
|
],
|
|
|
|
[
|
|
|
|
'history' => false,
|
|
|
|
'emptyData' => true
|
|
|
|
]
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public function paymentSaveDataProvider()
|
|
|
|
{
|
|
|
|
return [
|
|
|
|
[
|
|
|
|
'history' => true,
|
|
|
|
'v5' => true,
|
|
|
|
'new' => false
|
|
|
|
],
|
|
|
|
[
|
|
|
|
'history' => false,
|
|
|
|
'v5' => false,
|
|
|
|
'new' => false
|
|
|
|
],
|
|
|
|
[
|
|
|
|
'history' => false,
|
|
|
|
'v5' => true,
|
|
|
|
'new' => true
|
|
|
|
]
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @return array
|
|
|
|
*/
|
|
|
|
public function paymentDeleteDataProvider()
|
|
|
|
{
|
|
|
|
return [
|
|
|
|
[
|
|
|
|
'history' => true,
|
|
|
|
'v5' => true
|
|
|
|
],
|
|
|
|
[
|
|
|
|
'history' => false,
|
|
|
|
'v5' => false
|
|
|
|
],
|
|
|
|
[
|
|
|
|
'history' => false,
|
|
|
|
'v5' => true
|
|
|
|
]
|
|
|
|
];
|
|
|
|
}
|
|
|
|
|
2023-03-15 11:55:04 +03:00
|
|
|
public function tearDown(): void
|
2019-02-28 14:45:39 +03:00
|
|
|
{
|
|
|
|
parent::tearDown();
|
|
|
|
|
|
|
|
$GLOBALS['RETAIL_CRM_HISTORY'] = false;
|
|
|
|
$GLOBALS['RETAILCRM_ORDER_OLD_EVENT'] = true;
|
|
|
|
$GLOBALS['RETAILCRM_ORDER_DELETE'] = false;
|
|
|
|
}
|
|
|
|
}
|