Spaces:
No application file
No application file
| namespace MauticPlugin\MauticCrmBundle\Tests\Integration; | |
| use Mautic\PluginBundle\Model\IntegrationEntityModel; | |
| use Mautic\PluginBundle\Tests\Integration\AbstractIntegrationTestCase; | |
| use MauticPlugin\MauticCrmBundle\Api\ConnectwiseApi; | |
| use MauticPlugin\MauticCrmBundle\Integration\ConnectwiseIntegration; | |
| class ConnectwiseIntegrationTest extends AbstractIntegrationTestCase | |
| { | |
| use DataGeneratorTrait; | |
| /** | |
| * @testdox Test that all records are fetched till last page of results are consumed | |
| * | |
| * @covers \MauticPlugin\MauticCrmBundle\Integration\ConnectwiseIntegration::getRecords | |
| */ | |
| public function testMultiplePagesOfRecordsAreFetched(): void | |
| { | |
| $this->reset(); | |
| $apiHelper = $this->getMockBuilder(ConnectwiseApi::class) | |
| ->disableOriginalConstructor() | |
| ->getMock(); | |
| $apiHelper->expects($this->exactly(2)) | |
| ->method('getContacts') | |
| ->willReturnCallback( | |
| fn () => $this->generateData(2) | |
| ); | |
| $integration = $this->getMockBuilder(ConnectwiseIntegration::class) | |
| ->disableOriginalConstructor() | |
| ->onlyMethods(['isAuthorized', 'getApiHelper', 'getMauticLead']) | |
| ->getMock(); | |
| $integration->expects($this->once()) | |
| ->method('isAuthorized') | |
| ->willReturn(true); | |
| $integration | |
| ->method('getApiHelper') | |
| ->willReturn($apiHelper); | |
| $integration->getRecords([], 'Contact'); | |
| } | |
| /** | |
| * @testdox Test that all records are fetched till last page of results are consumed | |
| * | |
| * @covers \MauticPlugin\MauticCrmBundle\Integration\ConnectwiseIntegration::getCampaignMembers | |
| */ | |
| public function testMultiplePagesOfCampaignMemberRecordsAreFetched(): void | |
| { | |
| $this->reset(); | |
| $apiHelper = $this->getMockBuilder(ConnectwiseApi::class) | |
| ->disableOriginalConstructor() | |
| ->getMock(); | |
| $apiHelper->expects($this->exactly(2)) | |
| ->method('getCampaignMembers') | |
| ->willReturnCallback( | |
| fn () => $this->generateData(2) | |
| ); | |
| $integrationEntityModel = $this->getMockBuilder(IntegrationEntityModel::class) | |
| ->disableOriginalConstructor() | |
| ->getMock(); | |
| $integration = $this->getMockBuilder(ConnectwiseIntegration::class) | |
| ->setConstructorArgs([ | |
| $this->dispatcher, | |
| $this->cache, | |
| $this->em, | |
| $this->session, | |
| $this->request, | |
| $this->router, | |
| $this->translator, | |
| $this->logger, | |
| $this->encryptionHelper, | |
| $this->leadModel, | |
| $this->companyModel, | |
| $this->pathsHelper, | |
| $this->notificationModel, | |
| $this->fieldModel, | |
| $integrationEntityModel, | |
| $this->doNotContact, | |
| ]) | |
| ->onlyMethods(['isAuthorized', 'getApiHelper', 'getRecords', 'saveCampaignMembers']) | |
| ->getMock(); | |
| $integration->expects($this->once()) | |
| ->method('isAuthorized') | |
| ->willReturn(true); | |
| $integration | |
| ->method('getApiHelper') | |
| ->willReturn($apiHelper); | |
| $integration->getCampaignMembers(1); | |
| } | |
| } | |