From c5e245fb3421bb85c02ee9b5df3dff6fbc4428ee Mon Sep 17 00:00:00 2001 From: hatem20 Date: Tue, 11 Aug 2020 23:48:37 +0200 Subject: [PATCH] [Account] Add spec to sync username with customer email --- .../DefaultUsernameORMListenerSpec.php | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/Sylius/Bundle/CoreBundle/spec/EventListener/DefaultUsernameORMListenerSpec.php b/src/Sylius/Bundle/CoreBundle/spec/EventListener/DefaultUsernameORMListenerSpec.php index 6de65affad2..2e55c93cab1 100644 --- a/src/Sylius/Bundle/CoreBundle/spec/EventListener/DefaultUsernameORMListenerSpec.php +++ b/src/Sylius/Bundle/CoreBundle/spec/EventListener/DefaultUsernameORMListenerSpec.php @@ -53,6 +53,35 @@ function it_sets_usernames_on_customer_create( $this->onFlush($onFlushEventArgs); } + function it_sets_usernames_on_customer_update_when_user_is_associated( + OnFlushEventArgs $onFlushEventArgs, + EntityManager $entityManager, + UnitOfWork $unitOfWork, + CustomerInterface $customer, + ShopUserInterface $user, + ClassMetadata $userMetadata + ): void { + $onFlushEventArgs->getEntityManager()->willReturn($entityManager); + $entityManager->getUnitOfWork()->willReturn($unitOfWork); + + $unitOfWork->getScheduledEntityInsertions()->willReturn([$user]); + $unitOfWork->getScheduledEntityUpdates()->willReturn([]); + + $user->getUsername()->willReturn(null); + $user->getUsernameCanonical()->willReturn(null); + $customer->getEmail()->willReturn('customer+extra@email.com'); + $customer->getEmailCanonical()->willReturn('customer@email.com'); + + $user->getCustomer()->willReturn($customer); + $user->setUsername('customer+extra@email.com')->shouldBeCalled(); + $user->setUsernameCanonical('customer@email.com')->shouldBeCalled(); + + $entityManager->getClassMetadata(get_class($user->getWrappedObject()))->willReturn($userMetadata); + $unitOfWork->recomputeSingleEntityChangeSet($userMetadata, $user)->shouldBeCalled(); + + $this->onFlush($onFlushEventArgs); + } + function it_updates_usernames_on_customer_email_change( OnFlushEventArgs $onFlushEventArgs, EntityManager $entityManager,