Spaces:
No application file
No application file
declare(strict_types=1); | |
namespace Mautic\NotificationBundle\Tests; | |
use Doctrine\ORM\EntityManagerInterface; | |
use GuzzleHttp\Handler\MockHandler; | |
use Mautic\CampaignBundle\Entity\Campaign; | |
use Mautic\NotificationBundle\Entity\Notification; | |
use Mautic\PluginBundle\Integration\AbstractIntegration; | |
use Symfony\Component\DependencyInjection\ContainerInterface; | |
trait NotificationTrait | |
{ | |
private MockHandler $transportMock; | |
private function getMockHandler(ContainerInterface $container): MockHandler | |
{ | |
return $container->get(MockHandler::class); | |
} | |
private function createNotification(EntityManagerInterface $em): Notification | |
{ | |
$notification = new Notification(); | |
$notification->setName('Name 1'); | |
$notification->setHeading('Heading 1'); | |
$notification->setMessage('Message 1'); | |
$em->persist($notification); | |
return $notification; | |
} | |
private function createCampaign(EntityManagerInterface $em): Campaign | |
{ | |
$campaign = new Campaign(); | |
$campaign->setName('Notification'); | |
$em->persist($campaign); | |
return $campaign; | |
} | |
private function setupIntegration(ContainerInterface $container, EntityManagerInterface $em, string $apiId, string $restApiId): void | |
{ | |
/** @var AbstractIntegration $integration */ | |
$integration = $container->get('mautic.helper.integration') | |
->getIntegrationObject('OneSignal'); | |
$integrationSettings = $integration->getIntegrationSettings(); | |
$integrationSettings->setIsPublished(true); | |
$integration->encryptAndSetApiKeys([ | |
'app_id' => $apiId, | |
'rest_api_key' => $restApiId, | |
], $integrationSettings); | |
$em->persist($integrationSettings); | |
} | |
} | |