Skip to content

Commit cc3fee8

Browse files
committed
Refactor changeBitrix24PartnerContactPerson method into linkBitrix24PartnerContactPerson and unlinkBitrix24PartnerContactPerson. Add corresponding unit tests and update CHANGELOG.
Signed-off-by: mesilov <[email protected]>
1 parent 01b11a8 commit cc3fee8

File tree

5 files changed

+65
-8
lines changed

5 files changed

+65
-8
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,10 @@
111111
- changed method `public function applicationUninstalled(?string $applicationToken): void` application token now is nullable
112112
- added method `linkContactPerson(Uuid $uuid)`
113113
- added method `unlinkContactPerson()`
114+
- added method `linkBitrix24PartnerContactPerson()`
115+
- added method `unlinkBitrix24PartnerContactPerson()`
114116
- remove method `changeContactPerson(?Uuid $uuid)`
117+
- remove method `changeBitrix24PartnerContactPerson(?Uuid $uuid)`
115118

116119
### Statistics
117120

src/Application/Contracts/ApplicationInstallations/Docs/ApplicationInstallations.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ Optional can store links to:
1717
| `linkContactPerson()` | `void` | Link client contact person | |
1818
| `unlinkContactPerson()` | `void` | Unlink client contact person | |
1919
| `getBitrix24PartnerContactPersonId()` | `?Uuid` | Returns Bitrix24 partner contact person id (optional) | |
20-
| `changeBitrix24PartnerContactPerson()` | `void` | Changes Bitrix24 partner contact person | |
20+
| `linkBitrix24PartnerContactPerson()` | `void` | Link Bitrix24 partner contact person | |
21+
| `unlinkBitrix24PartnerContactPerson()` | `void` | Unlink Bitrix24 partner contact person | |
2122
| `getBitrix24PartnerId()` | `?Uuid` | Returns Bitrix24 Partner id related to this installation (optional) | |
2223
| `changeBitrix24Partner()` | `void` | Changes Bitrix24 partner | |
2324
| `getExternalId()` | `?string` | Returns external id for application installation | |

src/Application/Contracts/ApplicationInstallations/Entity/ApplicationInstallationInterface.php

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,11 +78,18 @@ public function unlinkContactPerson(): void;
7878
public function getBitrix24PartnerContactPersonId(): ?Uuid;
7979

8080
/**
81-
* Change bitrix24 partner contact person
81+
* Link Bitrix24 partner contact person
8282
*
83-
* Change bitrix24 partner contact person if partner say he has new responsible for the application
83+
* Link Bitrix24 partner contact person if partner say he has new responsible for the application
8484
*/
85-
public function changeBitrix24PartnerContactPerson(?Uuid $uuid): void;
85+
public function linkBitrix24PartnerContactPerson(Uuid $uuid): void;
86+
87+
/**
88+
* Unlink Bitrix24 partner contact person
89+
*
90+
* Unlink Bitrix24 partner contacts the person if the partner says they remove this employee
91+
*/
92+
public function unlinkBitrix24PartnerContactPerson(): void;
8693

8794
/**
8895
* @return Uuid|null get Bitrix24 Partner id related with this installation, optional

tests/Application/Contracts/ApplicationInstallations/Entity/ApplicationInstallationInterfaceTest.php

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -332,8 +332,8 @@ final public function testGetBitrix24PartnerContactPersonId(
332332

333333
#[Test]
334334
#[DataProvider('applicationInstallationDataProvider')]
335-
#[TestDox('test changeBitrix24PartnerContactPerson method')]
336-
final public function testChangeBitrix24PartnerContactPerson(
335+
#[TestDox('test linkBitrix24PartnerContactPerson method')]
336+
final public function testLinkBitrix24PartnerContactPerson(
337337
Uuid $uuid,
338338
ApplicationInstallationStatus $applicationInstallationStatus,
339339
CarbonImmutable $createdAt,
@@ -363,11 +363,51 @@ final public function testChangeBitrix24PartnerContactPerson(
363363
);
364364

365365
$newBitrix24PartnerContactPersonId = Uuid::v7();
366-
$installation->changeBitrix24PartnerContactPerson($newBitrix24PartnerContactPersonId);
366+
$installation->linkBitrix24PartnerContactPerson($newBitrix24PartnerContactPersonId);
367367
$this->assertEquals($newBitrix24PartnerContactPersonId, $installation->getBitrix24PartnerContactPersonId());
368368
$this->assertFalse($installation->getCreatedAt()->equalTo($installation->getUpdatedAt()));
369369
}
370370

371+
#[Test]
372+
#[DataProvider('applicationInstallationDataProvider')]
373+
#[TestDox('test unlinkBitrix24PartnerContactPerson method')]
374+
final public function testUnlinkBitrix24PartnerContactPerson(
375+
Uuid $uuid,
376+
ApplicationInstallationStatus $applicationInstallationStatus,
377+
CarbonImmutable $createdAt,
378+
CarbonImmutable $updatedAt,
379+
Uuid $bitrix24AccountUuid,
380+
ApplicationStatus $applicationStatus,
381+
PortalLicenseFamily $portalLicenseFamily,
382+
?int $portalUsersCount,
383+
?Uuid $clientContactPersonUuid,
384+
?Uuid $partnerContactPersonUuid,
385+
?Uuid $partnerUuid,
386+
?string $externalId
387+
): void {
388+
$installation = $this->createApplicationInstallationImplementation(
389+
$uuid,
390+
$applicationInstallationStatus,
391+
$createdAt,
392+
$updatedAt,
393+
$bitrix24AccountUuid,
394+
$applicationStatus,
395+
$portalLicenseFamily,
396+
$portalUsersCount,
397+
$clientContactPersonUuid,
398+
$partnerContactPersonUuid,
399+
$partnerUuid,
400+
$externalId
401+
);
402+
403+
$newBitrix24PartnerContactPersonId = Uuid::v7();
404+
$installation->linkBitrix24PartnerContactPerson($newBitrix24PartnerContactPersonId);
405+
$this->assertEquals($newBitrix24PartnerContactPersonId, $installation->getBitrix24PartnerContactPersonId());
406+
$installation->unlinkBitrix24PartnerContactPerson();
407+
$this->assertNull($installation->getBitrix24PartnerContactPersonId());
408+
$this->assertFalse($installation->getCreatedAt()->equalTo($installation->getUpdatedAt()));
409+
}
410+
371411
#[Test]
372412
#[DataProvider('applicationInstallationDataProvider')]
373413
#[TestDox('test changeBitrix24Partner method')]

tests/Unit/Application/Contracts/ApplicationInstallations/Entity/ApplicationInstallationReferenceEntityImplementation.php

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,18 @@ public function getBitrix24PartnerContactPersonId(): ?Uuid
112112
return $this->partnerContactPersonUuid;
113113
}
114114

115-
public function changeBitrix24PartnerContactPerson(?Uuid $uuid): void
115+
public function linkBitrix24PartnerContactPerson(?Uuid $uuid): void
116116
{
117117
$this->partnerContactPersonUuid = $uuid;
118118
$this->updatedAt = new CarbonImmutable();
119119
}
120120

121+
public function unlinkBitrix24PartnerContactPerson(): void
122+
{
123+
$this->partnerContactPersonUuid = null;
124+
$this->updatedAt = new CarbonImmutable();
125+
}
126+
121127
public function getBitrix24PartnerId(): ?Uuid
122128
{
123129
return $this->bitrix24PartnerUuid;

0 commit comments

Comments
 (0)