From 7dae75d7fce2814608839bf7acabf715313ec604 Mon Sep 17 00:00:00 2001 From: mesilov Date: Sat, 17 Aug 2024 21:51:44 +0600 Subject: [PATCH] Add enums and data filtering in CRM services This commit introduces new enums for CRM Activity types and directions. Also, it adds a data filter class to handle field exclusion by prefix, and updates integration tests to use these new enums. These changes improve the code maintainability and readability in the CRM module. Signed-off-by: mesilov --- src/Core/Fields/FieldsFilter.php | 20 +++ .../CRM/Activity/ActivityContentType.php | 16 +++ .../CRM/Activity/ActivityDirectionType.php | 15 +++ .../CRM/Activity/ActivityNotifyType.php | 16 +++ .../CRM/Activity/ActivityPriority.php | 16 +++ src/Services/CRM/Activity/ActivityStatus.php | 16 +++ src/Services/CRM/Activity/ActivityType.php | 19 +++ .../Activity/Result/ActivityItemResult.php | 74 +++++----- .../CRM/Common/Result/AbstractCrmItem.php | 55 ++++++-- .../CRM/Contact/Result/ContactItemResult.php | 87 ++++++------ .../CRM/Deal/Result/DealItemResult.php | 3 +- tests/Builders/DemoDataGenerator.php | 1 + .../Services/CRM/PhoneNumberBuilder.php | 2 +- tests/Integration/Core/BatchTest.php | 7 +- .../FilterWithBatchWithoutCountOrderTest.php | 3 +- ...ilterWithoutBatchWithoutCountOrderTest.php | 11 +- .../CRM/Activity/Service/ActivityTest.php | 127 +++++++++--------- .../CRM/Activity/Service/BatchTest.php | 7 +- 18 files changed, 331 insertions(+), 164 deletions(-) create mode 100644 src/Core/Fields/FieldsFilter.php create mode 100644 src/Services/CRM/Activity/ActivityContentType.php create mode 100644 src/Services/CRM/Activity/ActivityDirectionType.php create mode 100644 src/Services/CRM/Activity/ActivityNotifyType.php create mode 100644 src/Services/CRM/Activity/ActivityPriority.php create mode 100644 src/Services/CRM/Activity/ActivityStatus.php create mode 100644 src/Services/CRM/Activity/ActivityType.php diff --git a/src/Core/Fields/FieldsFilter.php b/src/Core/Fields/FieldsFilter.php new file mode 100644 index 00000000..a0a4e166 --- /dev/null +++ b/src/Core/Fields/FieldsFilter.php @@ -0,0 +1,20 @@ +data[$offset] !== '' && $this->data[$offset] !== null) { return (int)$this->data[$offset]; } @@ -77,7 +85,6 @@ public function __get($offset) return (int)$this->data[$offset]; } return null; - // contact case 'EXPORT': case 'HAS_PHONE': case 'HAS_EMAIL': @@ -94,9 +101,13 @@ public function __get($offset) case 'IS_REPEATED_APPROACH': case 'TAX_INCLUDED': case 'CUSTOMIZED': + case 'COMPLETED': return $this->data[$offset] === 'Y'; case 'DATE_CREATE': case 'CREATED_DATE': + case 'CREATED': + case 'DEADLINE': + case 'LAST_UPDATED': case 'DATE_MODIFY': case 'BIRTHDATE': case 'BEGINDATE': @@ -105,22 +116,28 @@ public function __get($offset) case 'updatedTime': case 'movedTime': case 'lastActivityTime': + case 'LAST_ACTIVITY_TIME': if ($this->data[$offset] !== '') { return CarbonImmutable::createFromFormat(DATE_ATOM, $this->data[$offset]); } return null; - // deal case 'PRICE_EXCLUSIVE': case 'PRICE_NETTO': case 'PRICE_BRUTTO': case 'PRICE': case 'DISCOUNT_SUM': + case 'RESULT_SUM': if ($this->data[$offset] !== '' && $this->data[$offset] !== null) { $var = $this->data[$offset] * 100; return new Money((string)$var, new Currency($this->currency->getCode())); } return null; + case 'RESULT_CURRENCY_ID': + if ($this->data[$offset] !== '' && $this->data[$offset] !== null) { + return new Currency($this->data[$offset]); + } + return null; case 'PHONE': if (!$this->isKeyExists($offset)) { return []; @@ -174,6 +191,18 @@ public function __get($offset) return DiscountType::from($this->data[$offset]); case 'DISCOUNT_RATE': return new Percentage((string)$this->data[$offset]); + case 'TYPE_ID': + return ActivityType::from((int)$this->data[$offset]); + case 'STATUS': + return ActivityStatus::from((int)$this->data[$offset]); + case 'PRIORITY': + return ActivityPriority::from((int)$this->data[$offset]); + case 'NOTIFY_TYPE': + return ActivityNotifyType::from((int)$this->data[$offset]); + case 'DESCRIPTION_TYPE': + return ActivityContentType::from((int)$this->data[$offset]); + case 'DIRECTION': + return ActivityDirectionType::from((int)$this->data[$offset]); default: return $this->data[$offset] ?? null; } @@ -187,7 +216,7 @@ public function __get($offset) * @return mixed|null * @throws UserfieldNotFoundException */ - protected function getKeyWithUserfieldByFieldName(string $fieldName) + protected function getKeyWithUserfieldByFieldName(string $fieldName): mixed { if (!str_starts_with($fieldName, self::CRM_USERFIELD_PREFIX)) { $fieldName = self::CRM_USERFIELD_PREFIX . $fieldName; diff --git a/src/Services/CRM/Contact/Result/ContactItemResult.php b/src/Services/CRM/Contact/Result/ContactItemResult.php index c647a814..21744187 100644 --- a/src/Services/CRM/Contact/Result/ContactItemResult.php +++ b/src/Services/CRM/Contact/Result/ContactItemResult.php @@ -13,55 +13,56 @@ use Carbon\CarbonImmutable; /** - * Class ContactItemResult - * - * @property-read int $ID - * @property-read string $HONORIFIC - * @property-read string $NAME - * @property-read string $SECOND_NAME - * @property-read string $LAST_NAME - * @property-read string $PHOTO - * @property-read null|CarbonImmutable $BIRTHDATE - * @property-read string $TYPE_ID - * @property-read string $SOURCE_ID - * @property-read string $SOURCE_DESCRIPTION - * @property-read string $POST - * @property-read string $ADDRESS - * @property-read string $ADDRESS_2 - * @property-read string $ADDRESS_CITY - * @property-read string $ADDRESS_POSTAL_CODE - * @property-read string $ADDRESS_REGION - * @property-read string $ADDRESS_PROVINCE - * @property-read string $ADDRESS_COUNTRY - * @property-read string $ADDRESS_COUNTRY_CODE * @property-read int $ADDRESS_LOC_ADDR_ID - * @property-read string $COMMENTS - * @property-read string $OPENED - * @property-read bool $EXPORT - * @property-read string $HAS_PHONE - * @property-read string $HAS_EMAIL - * @property-read string $HAS_IMOL + * @property-read string|null $ADDRESS + * @property-read string|null $ADDRESS_2 + * @property-read string|null $ADDRESS_CITY + * @property-read string|null $ADDRESS_COUNTRY + * @property-read string|null $ADDRESS_COUNTRY_CODE + * @property-read string|null $ADDRESS_POSTAL_CODE + * @property-read string|null $ADDRESS_PROVINCE + * @property-read string|null $ADDRESS_REGION * @property-read int $ASSIGNED_BY_ID + * @property-read CarbonImmutable|null $BIRTHDATE + * @property-read string|null $COMMENTS + * @property-read int|null $COMPANY_ID + * @property-read array|null $COMPANY_IDS * @property-read int $CREATED_BY_ID - * @property-read int $MODIFY_BY_ID * @property-read CarbonImmutable $DATE_CREATE * @property-read CarbonImmutable $DATE_MODIFY - * @property-read string $COMPANY_ID - * @property-read string $COMPANY_IDS - * @property-read int $LEAD_ID - * @property-read string $ORIGINATOR_ID - * @property-read string $ORIGIN_ID - * @property-read string $ORIGIN_VERSION - * @property-read int $FACE_ID - * @property-read string $UTM_SOURCE - * @property-read string $UTM_MEDIUM - * @property-read string $UTM_CAMPAIGN - * @property-read string $UTM_CONTENT - * @property-read string $UTM_TERM - * @property-read Phone[] $PHONE + * @property-read int|null $FACE_ID + * @property-read bool $EXPORT * @property-read Email[] $EMAIL - * @property-read Website[] $WEB + * @property-read int $ID + * @property-read bool $HAS_EMAIL + * @property-read bool $HAS_IMOL + * @property-read bool $HAS_PHONE + * @property-read string|null $HONORIFIC * @property-read InstantMessenger[] $IM + * @property-read int|null $LEAD_ID + * @property-read CarbonImmutable $LAST_ACTIVITY_TIME + * @property-read int $LAST_ACTIVITY_BY + * @property-read string|null $LAST_NAME + * @property-read string|null $LINK + * @property-read int $MODIFY_BY_ID + * @property-read string $NAME + * @property-read string|null $ORIGIN_ID + * @property-read string|null $ORIGINATOR_ID + * @property-read string|null $ORIGIN_VERSION + * @property-read string $OPENED + * @property-read Phone[] $PHONE + * @property-read string|null $POST + * @property-read string|null $PHOTO + * @property-read string|null $SECOND_NAME + * @property-read string|null $SOURCE_DESCRIPTION + * @property-read string|null $SOURCE_ID + * @property-read string|null $TYPE_ID + * @property-read string|null $UTM_CAMPAIGN + * @property-read string|null $UTM_CONTENT + * @property-read string|null $UTM_MEDIUM + * @property-read string|null $UTM_SOURCE + * @property-read string|null $UTM_TERM + * @property-read Website[] $WEB */ class ContactItemResult extends AbstractCrmItem { @@ -71,7 +72,7 @@ class ContactItemResult extends AbstractCrmItem * @return mixed|null * @throws UserfieldNotFoundException */ - public function getUserfieldByFieldName(string $userfieldName) + public function getUserfieldByFieldName(string $userfieldName): mixed { return $this->getKeyWithUserfieldByFieldName($userfieldName); } diff --git a/src/Services/CRM/Deal/Result/DealItemResult.php b/src/Services/CRM/Deal/Result/DealItemResult.php index af4824d6..7deb3854 100644 --- a/src/Services/CRM/Deal/Result/DealItemResult.php +++ b/src/Services/CRM/Deal/Result/DealItemResult.php @@ -10,7 +10,6 @@ /** * Class DealItemResult - * * @property-read int $ID * @property-read string|null $TITLE deal title * @property-read string|null $TYPE_ID @@ -26,7 +25,7 @@ * @property-read string|null $TAX_VALUE * @property-read int|null $LEAD_ID * @property-read int|null $COMPANY_ID - * @property-read int|null $CONTACT_ID + * @property-read int|null $CONTACT_ID deprecated * @property-read int|null $QUOTE_ID * @property-read CarbonImmutable|null $BEGINDATE * @property-read CarbonImmutable|null $CLOSEDATE diff --git a/tests/Builders/DemoDataGenerator.php b/tests/Builders/DemoDataGenerator.php index fb9be9f8..2d7a0360 100644 --- a/tests/Builders/DemoDataGenerator.php +++ b/tests/Builders/DemoDataGenerator.php @@ -1,4 +1,5 @@ length) . substr((string)random_int(1000, PHP_INT_MAX), 0, 3); + return '+1' . substr((string)time(), 2, $this->length) . substr((string)random_int(1000, PHP_INT_MAX), 0, 3); } } \ No newline at end of file diff --git a/tests/Integration/Core/BatchTest.php b/tests/Integration/Core/BatchTest.php index 1aaf427e..98dc2bcb 100644 --- a/tests/Integration/Core/BatchTest.php +++ b/tests/Integration/Core/BatchTest.php @@ -7,6 +7,7 @@ use Bitrix24\SDK\Core\Batch; use Bitrix24\SDK\Core\Exceptions\InvalidArgumentException; use Bitrix24\SDK\Services\ServiceBuilder; +use Bitrix24\SDK\Tests\Builders\DemoDataGenerator; use Bitrix24\SDK\Tests\Integration\Fabric; use PHPUnit\Framework\TestCase; use Symfony\Component\Stopwatch\Stopwatch; @@ -46,7 +47,7 @@ public function testGetTraversableListWithMoreThanMaxBatchPageCountWithoutLimit( 'TITLE' => sprintf('deal-%s', $i), 'IS_MANUAL_OPPORTUNITY' => 'Y', 'OPPORTUNITY' => sprintf('%s.00', random_int(100, 40000)), - 'CURRENCY_ID' => 'RUB', + 'CURRENCY_ID' => DemoDataGenerator::getCurrency()->getCode(), 'CONTACT_ID' => $contactId, ]; } @@ -136,7 +137,7 @@ public function testGetTraversableListWithLessThanPageSizeWithLimit(): void 'TITLE' => sprintf('deal-%s', $i), 'IS_MANUAL_OPPORTUNITY' => 'Y', 'OPPORTUNITY' => sprintf('%s.00', random_int(100, 40000)), - 'CURRENCY_ID' => 'RUB', + 'CURRENCY_ID' => DemoDataGenerator::getCurrency()->getCode(), 'CONTACT_ID' => $contactId, ]; } @@ -213,7 +214,7 @@ public function testGetTraversableListWithLessThanPageSizeWithoutLimit(): void 'TITLE' => sprintf('deal-%s', $i), 'IS_MANUAL_OPPORTUNITY' => 'Y', 'OPPORTUNITY' => sprintf('%s.00', random_int(100, 40000)), - 'CURRENCY_ID' => 'RUB', + 'CURRENCY_ID' => DemoDataGenerator::getCurrency()->getCode(), 'CONTACT_ID' => $contactId, ]; } diff --git a/tests/Integration/Core/BulkItemsReader/ReadStrategies/FilterWithBatchWithoutCountOrderTest.php b/tests/Integration/Core/BulkItemsReader/ReadStrategies/FilterWithBatchWithoutCountOrderTest.php index 3c37725d..c644c8a1 100644 --- a/tests/Integration/Core/BulkItemsReader/ReadStrategies/FilterWithBatchWithoutCountOrderTest.php +++ b/tests/Integration/Core/BulkItemsReader/ReadStrategies/FilterWithBatchWithoutCountOrderTest.php @@ -7,6 +7,7 @@ use Bitrix24\SDK\Core\BulkItemsReader\ReadStrategies\FilterWithBatchWithoutCountOrder; use Bitrix24\SDK\Core\Contracts\BulkItemsReaderInterface; use Bitrix24\SDK\Services\ServiceBuilder; +use Bitrix24\SDK\Tests\Builders\DemoDataGenerator; use Bitrix24\SDK\Tests\Integration\Fabric; use PHPUnit\Framework\TestCase; use Symfony\Component\Stopwatch\Stopwatch; @@ -96,7 +97,7 @@ public function setUp(): void 'TITLE' => sprintf('deal-%s', $i), 'IS_MANUAL_OPPORTUNITY' => 'Y', 'OPPORTUNITY' => sprintf('%s.00', random_int(100, 40000)), - 'CURRENCY_ID' => 'RUB', + 'CURRENCY_ID' => DemoDataGenerator::getCurrency()->getCode(), 'CONTACT_ID' => $this->contactId, ]; } diff --git a/tests/Integration/Core/BulkItemsReader/ReadStrategies/FilterWithoutBatchWithoutCountOrderTest.php b/tests/Integration/Core/BulkItemsReader/ReadStrategies/FilterWithoutBatchWithoutCountOrderTest.php index 9d6b7002..055313b3 100644 --- a/tests/Integration/Core/BulkItemsReader/ReadStrategies/FilterWithoutBatchWithoutCountOrderTest.php +++ b/tests/Integration/Core/BulkItemsReader/ReadStrategies/FilterWithoutBatchWithoutCountOrderTest.php @@ -8,6 +8,7 @@ use Bitrix24\SDK\Core\BulkItemsReader\ReadStrategies\FilterWithoutBatchWithoutCountOrder; use Bitrix24\SDK\Core\Contracts\BulkItemsReaderInterface; use Bitrix24\SDK\Services\ServiceBuilder; +use Bitrix24\SDK\Tests\Builders\DemoDataGenerator; use Bitrix24\SDK\Tests\Integration\Fabric; use PHPUnit\Framework\TestCase; use Symfony\Component\Stopwatch\Stopwatch; @@ -93,7 +94,7 @@ public function setUp(): void // add contact $this->contactId = $this->serviceBuilder->getCRMScope()->contact()->add( [ - 'NAME' => sprintf('first_%s', time()), + 'NAME' => sprintf('first_%s', time()), 'SECOND' => sprintf('second_%s', time()), ] )->getId(); @@ -105,11 +106,11 @@ public function setUp(): void // add deals to bitrix24 for ($i = 0; $i < self::DEMO_DATA_ARRAY_SIZE_MORE_THAN_ONE_BATCH_PAGE_SIZE; $i++) { $rawDeals[] = [ - 'TITLE' => sprintf('deal-%s', $i), + 'TITLE' => sprintf('deal-%s', $i), 'IS_MANUAL_OPPORTUNITY' => 'Y', - 'OPPORTUNITY' => sprintf('%s.00', random_int(100, 40000)), - 'CURRENCY_ID' => 'RUB', - 'CONTACT_ID' => $this->contactId, + 'OPPORTUNITY' => sprintf('%s.00', random_int(100, 40000)), + 'CURRENCY_ID' => DemoDataGenerator::getCurrency()->getCode(), + 'CONTACT_ID' => $this->contactId, ]; } foreach ($this->serviceBuilder->getCRMScope()->deal()->batch->add($rawDeals) as $addDealResult) { diff --git a/tests/Integration/Services/CRM/Activity/Service/ActivityTest.php b/tests/Integration/Services/CRM/Activity/Service/ActivityTest.php index f0b0acfc..7bcfa784 100644 --- a/tests/Integration/Services/CRM/Activity/Service/ActivityTest.php +++ b/tests/Integration/Services/CRM/Activity/Service/ActivityTest.php @@ -6,10 +6,17 @@ use Bitrix24\SDK\Core\Exceptions\BaseException; use Bitrix24\SDK\Core\Exceptions\TransportException; +use Bitrix24\SDK\Services\CRM\Activity\ActivityContentType; +use Bitrix24\SDK\Services\CRM\Activity\ActivityDirectionType; +use Bitrix24\SDK\Services\CRM\Activity\Result\ActivityItemResult; use Bitrix24\SDK\Services\CRM\Activity\Service\Activity; +use Bitrix24\SDK\Services\CRM\Activity\ActivityType; use Bitrix24\SDK\Services\CRM\Contact\Service\Contact; +use Bitrix24\SDK\Services\CRM\Deal\Result\DealProductRowItemResult; +use Bitrix24\SDK\Tests\Builders\DemoDataGenerator; use Bitrix24\SDK\Tests\Integration\Fabric; use PHPUnit\Framework\TestCase; +use Typhoon\Reflection\TyphoonReflector; class ActivityTest extends TestCase { @@ -29,19 +36,19 @@ public function testAdd(): void $this->contactId[] = $contactId; $this->activityId[] = $this->activityService->add( [ - 'OWNER_ID' => $contactId, - 'OWNER_TYPE_ID' => 3, - 'TYPE_ID' => 2, - 'PROVIDER_ID' => 'VOXIMPLANT_CALL', + 'OWNER_ID' => $contactId, + 'OWNER_TYPE_ID' => 3, + 'TYPE_ID' => ActivityType::call->value, + 'PROVIDER_ID' => 'VOXIMPLANT_CALL', 'PROVIDER_TYPE_ID' => 'CALL', - 'SUBJECT' => 'test activity', - 'DESCRIPTION' => 'test activity description', + 'SUBJECT' => 'test activity', + 'DESCRIPTION' => 'test activity description', 'DESCRIPTION_TYPE' => '1', - 'DIRECTION' => '2', - 'COMMUNICATIONS' => [ + 'DIRECTION' => '2', + 'COMMUNICATIONS' => [ 0 => [ - 'TYPE' => 'PHONE', - 'VALUE' => '+79780194444', + 'TYPE' => 'PHONE', + 'VALUE' => DemoDataGenerator::getMobilePhone()->getNationalNumber(), ], ], ] @@ -61,19 +68,19 @@ public function testDelete(): void $this->contactId[] = $contactId; $activityId = $this->activityService->add( [ - 'OWNER_ID' => $contactId, - 'OWNER_TYPE_ID' => 3, - 'TYPE_ID' => 2, - 'PROVIDER_ID' => 'VOXIMPLANT_CALL', + 'OWNER_ID' => $contactId, + 'OWNER_TYPE_ID' => 3, + 'TYPE_ID' => ActivityType::call->value, + 'PROVIDER_ID' => 'VOXIMPLANT_CALL', 'PROVIDER_TYPE_ID' => 'CALL', - 'SUBJECT' => 'test activity', - 'DESCRIPTION' => 'test activity description', + 'SUBJECT' => 'test activity', + 'DESCRIPTION' => 'test activity description', 'DESCRIPTION_TYPE' => '1', - 'DIRECTION' => '2', - 'COMMUNICATIONS' => [ + 'DIRECTION' => '2', + 'COMMUNICATIONS' => [ 0 => [ - 'TYPE' => 'PHONE', - 'VALUE' => '+79780194444', + 'TYPE' => 'PHONE', + 'VALUE' => DemoDataGenerator::getMobilePhone()->getNationalNumber(), ], ], ] @@ -102,19 +109,19 @@ public function testGet(): void $this->contactId[] = $contactId; $newActivity = [ - 'OWNER_ID' => $contactId, - 'OWNER_TYPE_ID' => 3, - 'TYPE_ID' => 2, - 'PROVIDER_ID' => 'VOXIMPLANT_CALL', + 'OWNER_ID' => $contactId, + 'OWNER_TYPE_ID' => 3, + 'TYPE_ID' => ActivityType::call->value, + 'PROVIDER_ID' => 'VOXIMPLANT_CALL', 'PROVIDER_TYPE_ID' => 'CALL', - 'SUBJECT' => 'test activity', - 'DESCRIPTION' => 'test activity description', + 'SUBJECT' => 'test activity', + 'DESCRIPTION' => 'test activity description', 'DESCRIPTION_TYPE' => '1', - 'DIRECTION' => '2', - 'COMMUNICATIONS' => [ + 'DIRECTION' => '2', + 'COMMUNICATIONS' => [ 0 => [ - 'TYPE' => 'PHONE', - 'VALUE' => '+79780194444', + 'TYPE' => 'PHONE', + 'VALUE' => DemoDataGenerator::getMobilePhone()->getNationalNumber(), ], ], ]; @@ -140,19 +147,19 @@ public function testList(): void $newActivity = []; for ($i = 1; $i < 10; $i++) { $newActivity[$i] = [ - 'OWNER_ID' => $contactId, - 'OWNER_TYPE_ID' => 3, - 'TYPE_ID' => 2, - 'PROVIDER_ID' => 'VOXIMPLANT_CALL', + 'OWNER_ID' => $contactId, + 'OWNER_TYPE_ID' => 3, + 'TYPE_ID' => ActivityType::call->value, + 'PROVIDER_ID' => 'VOXIMPLANT_CALL', 'PROVIDER_TYPE_ID' => 'CALL', - 'SUBJECT' => sprintf('test activity - %s', $i), - 'DESCRIPTION' => 'test activity description', + 'SUBJECT' => sprintf('test activity - %s', $i), + 'DESCRIPTION' => 'test activity description', 'DESCRIPTION_TYPE' => '1', - 'DIRECTION' => '2', - 'COMMUNICATIONS' => [ + 'DIRECTION' => '2', + 'COMMUNICATIONS' => [ 0 => [ - 'TYPE' => 'PHONE', - 'VALUE' => '+79780194444', + 'TYPE' => 'PHONE', + 'VALUE' => DemoDataGenerator::getMobilePhone()->getNationalNumber(), ], ], ]; @@ -181,19 +188,19 @@ public function testUpdate(): void $this->contactId[] = $contactId; $newActivity = [ - 'OWNER_ID' => $contactId, - 'OWNER_TYPE_ID' => 3, - 'TYPE_ID' => 2, - 'PROVIDER_ID' => 'VOXIMPLANT_CALL', + 'OWNER_ID' => $contactId, + 'OWNER_TYPE_ID' => 3, + 'TYPE_ID' => ActivityType::call->value, + 'PROVIDER_ID' => 'VOXIMPLANT_CALL', 'PROVIDER_TYPE_ID' => 'CALL', - 'SUBJECT' => 'test activity', - 'DESCRIPTION' => 'test activity description', + 'SUBJECT' => 'test activity', + 'DESCRIPTION' => 'test activity description', 'DESCRIPTION_TYPE' => '1', - 'DIRECTION' => '2', - 'COMMUNICATIONS' => [ + 'DIRECTION' => '2', + 'COMMUNICATIONS' => [ 0 => [ - 'TYPE' => 'PHONE', - 'VALUE' => '+79780194444', + 'TYPE' => 'PHONE', + 'VALUE' => DemoDataGenerator::getMobilePhone()->getNationalNumber(), ], ], ]; @@ -220,19 +227,19 @@ public function testCountByFilter(): void $newActivity = []; for ($i = 1; $i < 10; $i++) { $newActivity[$i] = [ - 'OWNER_ID' => $contactId, - 'OWNER_TYPE_ID' => 3, - 'TYPE_ID' => 2, - 'PROVIDER_ID' => 'VOXIMPLANT_CALL', + 'OWNER_ID' => $contactId, + 'OWNER_TYPE_ID' => 3, + 'TYPE_ID' => ActivityType::call->value, + 'PROVIDER_ID' => 'VOXIMPLANT_CALL', 'PROVIDER_TYPE_ID' => 'CALL', - 'SUBJECT' => sprintf('test activity - %s', $i), - 'DESCRIPTION' => 'test activity description', + 'SUBJECT' => sprintf('test activity - %s', $i), + 'DESCRIPTION' => 'test activity description', 'DESCRIPTION_TYPE' => '1', - 'DIRECTION' => '2', - 'COMMUNICATIONS' => [ + 'DIRECTION' => '2', + 'COMMUNICATIONS' => [ 0 => [ - 'TYPE' => 'PHONE', - 'VALUE' => '+79780194444', + 'TYPE' => 'PHONE', + 'VALUE' => DemoDataGenerator::getMobilePhone()->getNationalNumber(), ], ], ]; diff --git a/tests/Integration/Services/CRM/Activity/Service/BatchTest.php b/tests/Integration/Services/CRM/Activity/Service/BatchTest.php index f848cb7e..c7e8aadd 100644 --- a/tests/Integration/Services/CRM/Activity/Service/BatchTest.php +++ b/tests/Integration/Services/CRM/Activity/Service/BatchTest.php @@ -8,6 +8,7 @@ use Bitrix24\SDK\Core\Exceptions\TransportException; use Bitrix24\SDK\Services\CRM\Activity\Service\Activity; use Bitrix24\SDK\Services\CRM\Contact\Service\Contact; +use Bitrix24\SDK\Tests\Builders\DemoDataGenerator; use Bitrix24\SDK\Tests\Integration\Fabric; use PHPUnit\Framework\TestCase; @@ -43,7 +44,7 @@ public function testBatchAdd(): void 'COMMUNICATIONS' => [ 0 => [ 'TYPE' => 'PHONE', - 'VALUE' => '+79780194444', + 'VALUE' => DemoDataGenerator::getMobilePhone()->getNationalNumber(), ], ], ]; @@ -89,7 +90,7 @@ public function testBatchDelete(): void 'COMMUNICATIONS' => [ 0 => [ 'TYPE' => 'PHONE', - 'VALUE' => '+79780194444', + 'VALUE' => DemoDataGenerator::getMobilePhone()->getNationalNumber(), ], ], ]; @@ -146,7 +147,7 @@ public function testBatchList(): void 'COMMUNICATIONS' => [ 0 => [ 'TYPE' => 'PHONE', - 'VALUE' => '+79780194444', + 'VALUE' => DemoDataGenerator::getMobilePhone()->getNationalNumber(), ], ], ];