Vincent 3 년 전
부모
커밋
5edee32435

+ 5 - 7
src/Service/Mailer/Builder/SubDomainChangeBuilder.php → src/Service/Mailer/Builder/OnSubdomainChangeMailBuilder.php

@@ -12,7 +12,7 @@ use App\Service\Access\Utils as AccessUtils;
 use App\Service\Mailer\Email;
 use App\Service\Mailer\Model\MailerModelInterface;
 use App\Service\Mailer\Model\SubdomainChangeModel;
-use App\Tests\Service\Mailer\Builder\SubDomainChangeBuilderTest;
+use App\Tests\Service\Mailer\Builder\OnSubdomainChangeMailBuilderTest;
 use Doctrine\Common\Collections\ArrayCollection;
 use Doctrine\ORM\EntityManagerInterface;
 use function Symfony\Component\DependencyInjection\Loader\Configurator\param;
@@ -20,7 +20,7 @@ use function Symfony\Component\DependencyInjection\Loader\Configurator\param;
 /**
  * Classe SubDomainChangeBuilder qui est chargé de construire l'Email qui sera envoyé
  */
-class SubDomainChangeBuilder extends AbstractBuilder implements BuilderInterface
+class OnSubdomainChangeMailBuilder extends AbstractBuilder implements BuilderInterface
 {
     public function __construct(
         private EntityManagerInterface $entityManager,
@@ -39,7 +39,7 @@ class SubDomainChangeBuilder extends AbstractBuilder implements BuilderInterface
      * @param SubdomainChangeModel $mailerModel
      * @return ArrayCollection
      *
-     * @see SubDomainChangeBuilderTest::testBuild()
+     * @see OnSubdomainChangeMailBuilderTest::testBuild()
      */
     public function build(MailerModelInterface $mailerModel): ArrayCollection
     {
@@ -60,12 +60,10 @@ class SubDomainChangeBuilder extends AbstractBuilder implements BuilderInterface
             ->setEmailEntity($this->buildEmailEntity( 'Nouveau sous domaine: ' . $subdomain->getSubdomain(), $author, $content))
             ->setContent($content)
             ->setFrom($this->opentalentNoReplyEmailAddress)
-            ->setNameFrom($organization->getName())
+            ->setFromName($organization->getName())
         ;
         $this->addRecipient($email, $admin, EmailSendingTypeEnum::TO()->getValue(), ContactPointTypeEnum::PRINCIPAL()->getValue());
 
-        $emails = new ArrayCollection();
-        $emails->add($email);
-        return $emails;
+        return new ArrayCollection([$email]);
     }
 }

+ 5 - 5
src/Service/Mailer/Email.php

@@ -12,7 +12,7 @@ use Doctrine\Common\Collections\ArrayCollection;
 class Email implements EmailInterface
 {
     private string $from;
-    private string $nameFrom;
+    private string $fromName;
     private EmailEntity $emailEntity;
     private string $content;
     private ArrayCollection $emailRecipients;
@@ -33,14 +33,14 @@ class Email implements EmailInterface
         return $this;
     }
 
-    public function getNameFrom(): string
+    public function geFromName(): string
     {
-        return $this->nameFrom;
+        return $this->fromName;
     }
 
-    public function setNameFrom(string $nameFrom): self
+    public function setFromName(string $fromName): self
     {
-        $this->nameFrom = $nameFrom;
+        $this->fromName = $fromName;
         return $this;
     }
 

+ 3 - 3
src/Service/Mailer/Mailer.php

@@ -137,7 +137,7 @@ class Mailer
      * @see MailerTest::testCreateSymfonyEmail()
      */
     public function createSymfonyEmail(Email $email): SymfonyEmail{
-        $addressMailFrom = new Address($email->getFrom(), $email->getNameFrom());
+        $addressMailFrom = new Address($email->getFrom(), $email->geFromName());
 
         return (new SymfonyEmail())
             ->from($addressMailFrom)
@@ -182,7 +182,7 @@ class Mailer
                     'unDelivered' => $unDelivered
                 ]
             )
-            ->addTo(new Address($email->getFrom(), $email->getNameFrom()))
+            ->addTo(new Address($email->getFrom(), $email->geFromName()))
         ;
     }
 
@@ -249,7 +249,7 @@ class Mailer
      * @see MailerTest::testReduceEmailsCollectionInPreproduction()
      */
     public function reduceEmailsCollectionInPreproduction(ArrayCollection $emailsCollection): ArrayCollection {
-        if($emailsCollection->count() > 20 && $this->environnement->get(EnvironnementVarEnum::APP_ENV()->getValue()) !== 'prod') {
+        if($this->environnement->get(EnvironnementVarEnum::APP_ENV()->getValue()) !== 'prod' && $emailsCollection->count() > 20) {
             $startEmails = $emailsCollection->slice(0, 10);
             $endEmails = $emailsCollection->slice($emailsCollection->count() - 11, 10);
             return new ArrayCollection([...$startEmails, ...$endEmails]);

+ 17 - 15
tests/Service/Mailer/Builder/SubDomainChangeBuilderTest.php → tests/Service/Mailer/Builder/OnSubdomainChangeMailBuilderTest.php

@@ -10,7 +10,7 @@ use App\Repository\Access\AccessRepository;
 use App\Repository\Organization\OrganizationRepository;
 use App\Repository\Organization\SubdomainRepository;
 use App\Service\Access\Utils as AccessUtils;
-use App\Service\Mailer\Builder\SubDomainChangeBuilder;
+use App\Service\Mailer\Builder\OnSubdomainChangeMailBuilder;
 use App\Service\Mailer\Email;
 use App\Service\Mailer\Mailer;
 use App\Service\Mailer\Model\SubdomainChangeModel;
@@ -19,9 +19,9 @@ use PHPUnit\Framework\MockObject\MockObject;
 use PHPUnit\Framework\TestCase;
 
 /**
- * Classe SubDomainChangeBuilderTest qui test le service SubDomainChangeBuilder
+ * Classe OnSubdomainChangeMailBuilderTest qui test le service SubDomainChangeBuilder
  */
-class SubDomainChangeBuilderTest extends TestCase
+class OnSubdomainChangeMailBuilderTest extends TestCase
 {
     private MockObject|EntityManagerInterface $entityManager;
     private string $opentalentNoReplyEmailAddress = 'no-reply@opentalent.fr';
@@ -38,9 +38,9 @@ class SubDomainChangeBuilderTest extends TestCase
      * @param string $methodUnderTest
      * @return Mailer|MockObject
      */
-    private function makeSubDomainChangeBuilderMock(string $methodUnderTest): SubDomainChangeBuilder | MockObject
+    private function makeSubDomainChangeBuilderMock(string $methodUnderTest): OnSubdomainChangeMailBuilder | MockObject
     {
-        $subDomainChangeBuilder = $this->getMockBuilder(SubDomainChangeBuilder::class)
+        return $this->getMockBuilder(OnSubdomainChangeMailBuilder::class)
             ->setConstructorArgs([
                 $this->entityManager,
                 $this->opentalentNoReplyEmailAddress,
@@ -48,15 +48,17 @@ class SubDomainChangeBuilderTest extends TestCase
             ])
             ->setMethodsExcept([$methodUnderTest])
             ->getMock();
-
-        return $subDomainChangeBuilder;
     }
 
     /**
-     * @see SubDomainChangeBuilder::build()
+     * @see OnSubdomainChangeMailBuilder::build()
      */
     public function testBuild()
     {
+        $subdomainId = 123;
+        $organizationId = 444;
+        $senderId = 333;
+
         $subDomainChangeBuilder = $this->makeSubDomainChangeBuilderMock('build');
 
         $subdomain = $this->getMockBuilder(Subdomain::class)->disableOriginalConstructor()->getMock();
@@ -65,16 +67,16 @@ class SubDomainChangeBuilderTest extends TestCase
         $access = $this->getMockBuilder(Access::class)->disableOriginalConstructor()->getMock();
 
         $mailerModel = $this->getMockBuilder(SubdomainChangeModel::class)->disableOriginalConstructor()->getMock();
-        $mailerModel->method('getSubdomainId')->willReturn(1);
-        $mailerModel->method('getOrganizationId')->willReturn(1);
-        $mailerModel->method('getSenderId')->willReturn(1);
+        $mailerModel->method('getSubdomainId')->willReturn($subdomainId);
+        $mailerModel->method('getOrganizationId')->willReturn($organizationId);
+        $mailerModel->method('getSenderId')->willReturn($senderId);
 
         $subdomainRepository = $this->getMockBuilder(SubdomainRepository::class)->disableOriginalConstructor()->getMock();
-        $subdomainRepository->expects(self::once())->method('find')->with($mailerModel->getSubdomainId())->willReturn($subdomain);
+        $subdomainRepository->expects(self::once())->method('find')->with($subdomainId)->willReturn($subdomain);
         $organizationRepository = $this->getMockBuilder(OrganizationRepository::class)->disableOriginalConstructor()->getMock();
-        $organizationRepository->expects(self::once())->method('find')->with($mailerModel->getOrganizationId())->willReturn($organization);
+        $organizationRepository->expects(self::once())->method('find')->with($organizationId)->willReturn($organization);
         $accessRepository = $this->getMockBuilder(AccessRepository::class)->disableOriginalConstructor()->getMock();
-        $accessRepository->expects(self::once())->method('find')->with($mailerModel->getSenderId())->willReturn($access);
+        $accessRepository->expects(self::once())->method('find')->with($senderId)->willReturn($access);
 
         $this->entityManager
             ->expects(self::exactly(3))
@@ -111,6 +113,6 @@ class SubDomainChangeBuilderTest extends TestCase
         $this->assertInstanceOf(Email::class, $email);
         $this->assertEquals('contenu', $email->getContent());
         $this->assertEquals($this->opentalentNoReplyEmailAddress, $email->getFrom());
-        $this->assertEquals($organization->getName(), $email->getNameFrom());
+        $this->assertEquals($organization->getName(), $email->geFromName());
     }
 }

+ 3 - 3
tests/Service/Mailer/MailerTest.php

@@ -221,7 +221,7 @@ class MailerTest extends TestCase
         $email = $this->getMockBuilder(Email::class)->disableOriginalConstructor()->getMock();
         $email->method('getEmailEntity')->willReturn($emailEntity);
         $email->method('getFrom')->willReturn('foo.bar@opentalent.fr');
-        $email->method('getNameFrom')->willReturn('Bill');
+        $email->method('geFromName')->willReturn('Bill');
 
         $reportEmail = $mailer->createReportEmail(new ArrayCollection([$email]));
 
@@ -369,11 +369,11 @@ class MailerTest extends TestCase
 
         $email = $this->getMockBuilder(Email::class)->disableOriginalConstructor()->getMock();
         $email->method('getFrom')->willReturn('foo.bar@opentalent.fr');
-        $email->method('getNameFrom')->willReturn('Ben Yolo');
+        $email->method('geFromName')->willReturn('Ben Yolo');
         $email->method('getEmailEntity')->willReturn($emailEntity);
         $email->method('getContent')->willReturn('contenu');
 
-        $addressMailFrom = new Address($email->getFrom(), $email->getNameFrom());
+        $addressMailFrom = new Address($email->getFrom(), $email->geFromName());
         $symfonyMail = $mailer->createSymfonyEmail($email);
         $this->assertInstanceOf(SymfonyEmail::class, $symfonyMail);
         $this->assertEquals($symfonyMail->getFrom(), [$addressMailFrom]);

+ 1 - 1
tests/Service/Utils/StringsUtilsTest.php

@@ -27,6 +27,6 @@ class StringsUtilsTest extends TestCase
      * @see StringsUtils::convertHtmlToText()
      */
     public function testConvertHtmlToText(): void {
-        $this->assertEquals("contenu", (new StringsUtils())->convertHtmlToText("<p>contenu</p>"));
+        $this->assertEquals("Test contenu", (new StringsUtils())->convertHtmlToText("<table><tr><td>Test</td></tr></table> <br /><p>contenu</p>"));
     }
 }