Spaces:
No application file
No application file
mautic
/
app
/bundles
/IntegrationsBundle
/Tests
/Functional
/Sync
/Notification
/BulkNotificationTest.php
| declare(strict_types=1); | |
| namespace Mautic\IntegrationsBundle\Tests\Functional\Sync\Notification; | |
| use Mautic\CoreBundle\Entity\Notification; | |
| use Mautic\CoreBundle\Test\MauticMysqlTestCase; | |
| use Mautic\IntegrationsBundle\Sync\Notification\BulkNotification; | |
| use PHPUnit\Framework\Assert; | |
| class BulkNotificationTest extends MauticMysqlTestCase | |
| { | |
| /** | |
| * @var BulkNotification | |
| */ | |
| private $bulkNotification; | |
| protected function setUp(): void | |
| { | |
| parent::setUp(); | |
| $this->bulkNotification = static::getContainer()->get('mautic.integrations.sync.notification.bulk_notification'); | |
| } | |
| public function testNotifications(): void | |
| { | |
| $notificationRepository = $this->em->getRepository(Notification::class); | |
| $this->bulkNotification->addNotification('dup1', 'message 1', 'Integration name', 'Lead', 'lead', 0, 'link 1'); | |
| $this->bulkNotification->addNotification('dup2', 'message 2', 'Integration name', 'Lead', 'lead', 0, 'link 2'); | |
| $this->bulkNotification->addNotification('dup1', 'message 3', 'Integration name', 'Lead', 'lead', 0, 'link 3'); | |
| Assert::assertCount(0, $notificationRepository->findAll()); | |
| $this->bulkNotification->flush(); | |
| $notifications = $notificationRepository->findAll(); | |
| Assert::assertCount(2, $notifications); | |
| $this->assertNotification($notifications[0], 'message 1', 'link 1'); | |
| $this->assertNotification($notifications[1], 'message 2', 'link 2'); | |
| } | |
| private function assertNotification(Notification $notification, string $message, string $link): void | |
| { | |
| Assert::assertSame(sprintf('<a href="/s/contacts/view">%s</a> failed to sync with message, "%s"', $link, $message), $notification->getMessage()); | |
| } | |
| } | |