use NotificationPersister into PersonMoveEventSubscriber

This commit is contained in:
Julien Fastré 2022-04-22 12:12:50 +02:00
parent 2d9af8f8c0
commit 354f130e9e
3 changed files with 26 additions and 27 deletions

View File

@ -13,10 +13,10 @@ namespace Chill\PersonBundle\AccompanyingPeriod\Events;
use Chill\MainBundle\Entity\Address;
use Chill\MainBundle\Entity\Notification;
use Chill\MainBundle\Notification\NotificationPersisterInterface;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Event\Person\PersonAddressMoveEvent;
use DateTimeImmutable;
use Doctrine\ORM\EntityManagerInterface;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\Security\Core\Security;
use Symfony\Component\Templating\EngineInterface;
@ -26,7 +26,7 @@ class PersonAddressMoveEventSubscriber implements EventSubscriberInterface
{
private EngineInterface $engine;
private EntityManagerInterface $entityManager;
private NotificationPersisterInterface $notificationPersister;
private Security $security;
@ -34,12 +34,12 @@ class PersonAddressMoveEventSubscriber implements EventSubscriberInterface
public function __construct(
EngineInterface $engine,
EntityManagerInterface $entityManager,
NotificationPersisterInterface $notificationPersister,
Security $security,
TranslatorInterface $translator
) {
$this->engine = $engine;
$this->entityManager = $entityManager;
$this->notificationPersister = $notificationPersister;
$this->security = $security;
$this->translator = $translator;
}
@ -87,7 +87,7 @@ class PersonAddressMoveEventSubscriber implements EventSubscriberInterface
'period' => $period,
]));
$this->entityManager->persist($notification);
$this->notificationPersister->persist($notification);
}
}
}

View File

@ -102,7 +102,6 @@ class HouseholdApiController extends ApiController
$event
->setPreviousAddress($household->getPreviousAddressOf($address))
->setNextAddress($address);
dump($event);
$this->eventDispatcher->dispatch($event);
}

View File

@ -14,6 +14,8 @@ namespace AccompanyingPeriod\Events;
use Chill\MainBundle\Entity\Address;
use Chill\MainBundle\Entity\Notification;
use Chill\MainBundle\Entity\User;
use Chill\MainBundle\Notification\NotificationPersister;
use Chill\MainBundle\Notification\NotificationPersisterInterface;
use Chill\PersonBundle\AccompanyingPeriod\Events\PersonAddressMoveEventSubscriber;
use Chill\PersonBundle\Entity\AccompanyingPeriod;
use Chill\PersonBundle\Entity\Household\Household;
@ -22,7 +24,6 @@ use Chill\PersonBundle\Entity\Person;
use Chill\PersonBundle\Event\Person\PersonAddressMoveEvent;
use DateTime;
use DateTimeImmutable;
use Doctrine\ORM\EntityManagerInterface;
use Prophecy\Argument;
use Prophecy\PhpUnit\ProphecyTrait;
use ReflectionClass;
@ -73,9 +74,9 @@ final class PersonMoveEventSubscriberTest extends KernelTestCase
->setPreviousMembership($previousMembership)
->setNextMembership($nextMembership);
$em = $this->prophesize(EntityManagerInterface::class);
$em->persist(Argument::type(Notification::class))->shouldNotBeCalled();
$eventSubscriber = $this->buildSubscriber(null, $em->reveal(), null, null);
$notificationPersister = $this->prophesize(NotificationPersisterInterface::class);
$notificationPersister->persist(Argument::type(Notification::class))->shouldNotBeCalled();
$eventSubscriber = $this->buildSubscriber(null, $notificationPersister->reveal(), null, null);
$eventSubscriber->resetPeriodLocation($event);
}
@ -115,9 +116,9 @@ final class PersonMoveEventSubscriberTest extends KernelTestCase
->setPreviousMembership($previousMembership)
->setNextMembership($nextMembership);
$em = $this->prophesize(EntityManagerInterface::class);
$em->persist(Argument::type(Notification::class))->shouldBeCalledTimes(1);
$eventSubscriber = $this->buildSubscriber(null, $em->reveal(), null, null);
$notificationPersister = $this->prophesize(NotificationPersisterInterface::class);
$notificationPersister->persist(Argument::type(Notification::class))->shouldBeCalledTimes(1);
$eventSubscriber = $this->buildSubscriber(null, $notificationPersister->reveal(), null, null);
$eventSubscriber->resetPeriodLocation($event);
@ -160,9 +161,9 @@ final class PersonMoveEventSubscriberTest extends KernelTestCase
->setPreviousMembership($previousMembership)
->setNextMembership($nextMembership);
$em = $this->prophesize(EntityManagerInterface::class);
$em->persist(Argument::type(Notification::class))->shouldBeCalled(1);
$eventSubscriber = $this->buildSubscriber(null, $em->reveal(), null, null);
$notificationPersister = $this->prophesize(NotificationPersisterInterface::class);
$notificationPersister->persist(Argument::type(Notification::class))->shouldBeCalled(1);
$eventSubscriber = $this->buildSubscriber(null, $notificationPersister->reveal(), null, null);
$eventSubscriber->resetPeriodLocation($event);
@ -195,9 +196,9 @@ final class PersonMoveEventSubscriberTest extends KernelTestCase
$event
->setPreviousMembership($previousMembership);
$em = $this->prophesize(EntityManagerInterface::class);
$em->persist(Argument::type(Notification::class))->shouldBeCalledTimes(1);
$eventSubscriber = $this->buildSubscriber(null, $em->reveal(), null, null);
$notificationPersister = $this->prophesize(NotificationPersisterInterface::class);
$notificationPersister->persist(Argument::type(Notification::class))->shouldBeCalledTimes(1);
$eventSubscriber = $this->buildSubscriber(null, $notificationPersister->reveal(), null, null);
$eventSubscriber->resetPeriodLocation($event);
@ -235,9 +236,9 @@ final class PersonMoveEventSubscriberTest extends KernelTestCase
->setPreviousAddress($household->getPreviousAddressOf($newAddress))
->setNextAddress($newAddress);
$em = $this->prophesize(EntityManagerInterface::class);
$em->persist(Argument::type(Notification::class))->shouldBeCalledTimes(1);
$eventSubscriber = $this->buildSubscriber(null, $em->reveal(), null, null);
$notificationPersister = $this->prophesize(NotificationPersisterInterface::class);
$notificationPersister->persist(Argument::type(Notification::class))->shouldBeCalledTimes(1);
$eventSubscriber = $this->buildSubscriber(null, $notificationPersister->reveal(), null, null);
$eventSubscriber->resetPeriodLocation($event);
@ -247,7 +248,7 @@ final class PersonMoveEventSubscriberTest extends KernelTestCase
private function buildSubscriber(
?EngineInterface $engine = null,
?EntityManagerInterface $entityManager = null,
?NotificationPersisterInterface $notificationPersister = null,
?Security $security = null,
?TranslatorInterface $translator = null
): PersonAddressMoveEventSubscriber {
@ -267,14 +268,13 @@ final class PersonMoveEventSubscriberTest extends KernelTestCase
$engine = $double->reveal();
}
if (null === $entityManager) {
$double = $this->prophesize(EntityManagerInterface::class);
$entityManager = $double->reveal();
if (null === $notificationPersister) {
$notificationPersister = new NotificationPersister();
}
return new PersonAddressMoveEventSubscriber(
$engine,
$entityManager,
$notificationPersister,
$security,
$translator
);