← Back
Editing: ReportControlFactoryTest.php
<?php namespace App\Tests\Unit\Report\Control; use App\Entity\Controle; use App\Report\Control\ReportControlFactory; use Prophecy\PhpUnit\ProphecyTrait; use Symfony\Bridge\Twig\Mime\TemplatedEmail; use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; class ReportControlFactoryTest extends KernelTestCase { use ProphecyTrait; use ReportControlProviderTrait; private ReportControlFactory $reportControlFactory; protected function setUp(): void { self::bootKernel(); $container = static::getContainer(); $this->initMockObjects(); $this->reportControlFactory = $container->get(ReportControlFactory::class); } /** * @dataProvider getControlProvider */ public function testEmails( Controle $control, array $receivedControl, int $countExpected, array $expectedSentContacts ) { $this->reportControlFactory->send($control); $messages = $this->getMailerMessages(); $sentAddresses = []; /** @var TemplatedEmail $message */ foreach ($messages as $message) { $to = $message->getTo(); $cc = $message->getCc(); if (count($to) > 0) { foreach ($to as $email) { $sentAddresses[] = $email->getAddress(); } } if (count($cc) > 0) { foreach ($cc as $email) { $sentAddresses[] = $email->getAddress(); } } } $this->assertEmailCount($countExpected); foreach ($expectedSentContacts as $expectedSentContact) { $this->assertTrue(in_array($expectedSentContact, $sentAddresses)); } } }
Save File
Cancel