[Maintenance] Update email assertion in Unit tests

This commit is contained in:
Jan Goralski 2022-09-20 16:32:44 +02:00 committed by Mateusz Zalewski
parent 04963cec81
commit 3d2fafd0ff
No known key found for this signature in database
GPG key ID: 9BECA0BB71612E52
9 changed files with 89 additions and 168 deletions

View file

@ -37,7 +37,7 @@ final class SendAccountRegistrationEmailHandlerTest extends KernelTestCase
$this->markTestSkipped('Test is relevant only for the environment without swiftmailer');
}
$container = self::bootKernel()->getContainer();
$container = self::getContainer();
/** @var TranslatorInterface $translator */
$translator = $container->get('translator');
@ -73,10 +73,10 @@ final class SendAccountRegistrationEmailHandlerTest extends KernelTestCase
),
);
$this->assertEmailCount(1);
$email = $this->getMailerMessage();
$this->assertEmailAddressContains($email, 'To', 'user@example.com');
$this->assertEmailHtmlBodyContains($email, $translator->trans('sylius.email.user_registration.start_shopping', [], null, 'en_US'));
self::assertEmailCount(1);
$email = self::getMailerMessage();
self::assertEmailAddressContains($email, 'To', 'user@example.com');
self::assertEmailHtmlBodyContains($email, $translator->trans('sylius.email.user_registration.start_shopping', [], null, 'en_US'));
}
/** @test */
@ -86,7 +86,7 @@ final class SendAccountRegistrationEmailHandlerTest extends KernelTestCase
$this->markTestSkipped('Test is relevant only for the environment with swiftmailer');
}
$container = self::bootKernel()->getContainer();
$container = self::getContainer();
/** @var Filesystem $filesystem */
$filesystem = $container->get('test.filesystem.public');
@ -139,7 +139,7 @@ final class SendAccountRegistrationEmailHandlerTest extends KernelTestCase
private function isItSwiftmailerTestEnv(): bool
{
$env = $this->getContainer()->getParameter('kernel.environment');
$env = self::getContainer()->getParameter('kernel.environment');
return $env === 'test_with_swiftmailer';
}

View file

@ -35,7 +35,7 @@ final class SendAccountVerificationEmailHandlerTest extends KernelTestCase
$this->markTestSkipped('Test is relevant only for the environment without swiftmailer');
}
$container = self::bootKernel()->getContainer();
$container = self::getContainer();
/** @var TranslatorInterface $translator */
$translator = $container->get('translator');
@ -71,15 +71,18 @@ final class SendAccountVerificationEmailHandlerTest extends KernelTestCase
),
);
$this->assertEmailCount(1);
$email = $this->getMailerMessage();
$this->assertEmailAddressContains($email, 'To', 'user@example.com');
$this->assertEmailHtmlBodyContains($email, $translator->trans('sylius.email.verification_token.message', [], null, 'en_US'));
self::assertEmailCount(1);
$email = self::getMailerMessage();
self::assertEmailAddressContains($email, 'To', 'user@example.com');
self::assertEmailHtmlBodyContains(
$email,
$translator->trans('sylius.email.verification_token.message', [], null, 'en_US'),
);
}
private function isItSwiftmailerTestEnv(): bool
{
$env = $this->getContainer()->getParameter('kernel.environment');
$env = self::getContainer()->getParameter('kernel.environment');
return $env === 'test_with_swiftmailer';
}

View file

@ -69,6 +69,13 @@ final class SendResetPasswordEmailHandlerTest extends KernelTestCase
'en_US',
));
self::assertEmailCount(1);
$email = self::getMailerMessage();
self::assertEmailAddressContains($email, 'To', 'user@example.com');
self::assertEmailHtmlBodyContains(
$email,
$translator->trans('sylius.email.password_reset.to_reset_your_password_token', [], null, 'en_US'),
);
$this->assertEmailCount(1);
$email = $this->getMailerMessage();
$this->assertEmailAddressContains($email, 'To', 'user@example.com');

View file

@ -16,12 +16,10 @@ namespace Sylius\Bundle\ApiBundle\Tests\MessageHandler\Admin;
use Sylius\Bundle\CoreBundle\Message\Admin\Account\SendResetPasswordEmail;
use Sylius\Bundle\CoreBundle\MessageHandler\Admin\Account\SendResetPasswordEmailHandler;
use Sylius\Component\Core\Model\AdminUser;
use Sylius\Component\Core\Test\Services\EmailCheckerInterface;
use Sylius\Component\Mailer\Sender\SenderInterface;
use Sylius\Component\User\Repository\UserRepositoryInterface;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Symfony\Bundle\FrameworkBundle\Test\MailerAssertionsTrait;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Contracts\Translation\TranslatorInterface;
final class SendResetPasswordEmailHandlerTest extends KernelTestCase
@ -35,11 +33,13 @@ final class SendResetPasswordEmailHandlerTest extends KernelTestCase
$this->markTestSkipped('Test is relevant only for the environment without swiftmailer');
}
$container = self::getContainer();
/** @var TranslatorInterface $translator */
$translator = $this->getContainer()->get('translator');
$translator = $container->get('translator');
/** @var SenderInterface $emailSender */
$emailSender = $this->getContainer()->get('sylius.email_sender');
$emailSender = $container->get('sylius.email_sender');
$adminUser = new AdminUser();
$adminUser->setEmail('sylius@example.com');
@ -58,15 +58,18 @@ final class SendResetPasswordEmailHandlerTest extends KernelTestCase
'en_US',
));
$this->assertEmailCount(1);
$email = $this->getMailerMessage();
$this->assertEmailAddressContains($email, 'To', 'sylius@example.com');
$this->assertEmailHtmlBodyContains($email, $translator->trans('sylius.email.admin_password_reset.to_reset_your_password_token', [], null, 'en_US'));
self::assertEmailCount(1);
$email = self::getMailerMessage();
self::assertEmailAddressContains($email, 'To', 'sylius@example.com');
self::assertEmailHtmlBodyContains(
$email,
$translator->trans('sylius.email.admin_password_reset.to_reset_your_password_token', [], null, 'en_US'),
);
}
private function isItSwiftmailerTestEnv(): bool
{
$env = $this->getContainer()->getParameter('kernel.environment');
$env = self::getContainer()->getParameter('kernel.environment');
return $env === 'test_with_swiftmailer';
}

View file

@ -12,10 +12,8 @@
namespace Sylius\Tests\Api\Shop;
use Sylius\Component\Core\Model\CustomerInterface;
use Sylius\Component\Core\Test\Services\EmailChecker;
use Sylius\Tests\Api\JsonApiTestCase;
use Sylius\Tests\Api\Utils\ShopUserLoginTrait;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpFoundation\Response;
final class SendContactRequestTest extends JsonApiTestCase
@ -25,17 +23,7 @@ final class SendContactRequestTest extends JsonApiTestCase
/** @test */
public function it_sends_contact_request(): void
{
$this->markTestSkipped('EmailChecker fixed required');
$container = self::bootKernel()->getContainer();
/** @var Filesystem $filesystem */
$filesystem = $container->get('filesystem.public');
/** @var EmailChecker $emailChecker */
$emailChecker = $container->get('sylius.behat.email_checker');
$filesystem->remove($emailChecker->getSpoolDirectory());
self::getContainer();
$this->loadFixturesFromFiles(['channel.yaml']);
@ -57,23 +45,14 @@ final class SendContactRequestTest extends JsonApiTestCase
$response = $this->client->getResponse();
$this->assertResponseCode($response, Response::HTTP_ACCEPTED);
self::assertSame(1, $emailChecker->countMessagesTo('web@sylius.com'));
self::assertEmailCount(1);
self::assertEmailAddressContains(self::getMailerMessage(), 'To', 'web@sylius.com');
}
/** @test */
public function it_sends_contact_request_as_logged_in_user(): void
{
$this->markTestSkipped('EmailChecker fixed required');
$container = self::bootKernel()->getContainer();
/** @var Filesystem $filesystem */
$filesystem = $container->get('filesystem.public');
/** @var EmailChecker $emailChecker */
$emailChecker = $container->get('sylius.behat.email_checker');
$filesystem->remove($emailChecker->getSpoolDirectory());
self::getContainer();
$fixtures = $this->loadFixturesFromFiles(['channel.yaml', 'authentication/customer.yaml']);
@ -97,6 +76,7 @@ final class SendContactRequestTest extends JsonApiTestCase
$response = $this->client->getResponse();
$this->assertResponseCode($response, Response::HTTP_ACCEPTED);
self::assertSame(1, $emailChecker->countMessagesTo('web@sylius.com'));
self::assertEmailCount(1);
self::assertEmailAddressContains(self::getMailerMessage(), 'To', 'web@sylius.com');
}
}

View file

@ -11,10 +11,8 @@
namespace Sylius\Tests\Api\Shop;
use Sylius\Component\Core\Test\Services\EmailChecker;
use Sylius\Tests\Api\JsonApiTestCase;
use Sylius\Tests\Api\Utils\ShopUserLoginTrait;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\HttpFoundation\Response;
final class VerifyCustomerAccountsTest extends JsonApiTestCase
@ -24,17 +22,7 @@ final class VerifyCustomerAccountsTest extends JsonApiTestCase
/** @test */
public function it_resends_account_verification_token(): void
{
$this->markTestSkipped('EmailChecker fixed required');
$container = self::$kernel->getContainer();
/** @var Filesystem $filesystem */
$filesystem = $container->get('filesystem.public');
/** @var EmailChecker $emailChecker */
$emailChecker = $container->get('sylius.behat.email_checker');
$filesystem->remove($emailChecker->getSpoolDirectory());
self::getContainer();
$this->loadFixturesFromFiles(['channel.yaml', 'cart.yaml', 'authentication/customer.yaml']);
$token = $this->logInShopUser('oliver@doe.com');
@ -55,21 +43,14 @@ final class VerifyCustomerAccountsTest extends JsonApiTestCase
$response = $this->client->getResponse();
$this->assertResponseCode($response, Response::HTTP_ACCEPTED);
self::assertSame(1, $emailChecker->countMessagesTo('oliver@doe.com'));
self::assertEmailCount(1);
self::assertEmailAddressContains(self::getMailerMessage(), 'To', 'oliver@doe.com');
}
/** @test */
public function it_does_not_allow_to_resend_token_for_not_logged_in_users(): void
{
$container = self::bootKernel()->getContainer();
/** @var Filesystem $filesystem */
$filesystem = $container->get('filesystem.public');
/** @var EmailChecker $emailChecker */
$emailChecker = $container->get('sylius.behat.email_checker');
$filesystem->remove($emailChecker->getSpoolDirectory());
self::getContainer();
$this->loadFixturesFromFiles(['channel.yaml', 'cart.yaml', 'authentication/customer.yaml']);
@ -88,6 +69,6 @@ final class VerifyCustomerAccountsTest extends JsonApiTestCase
$response = $this->client->getResponse();
$this->assertResponseCode($response, Response::HTTP_UNAUTHORIZED);
self::assertFalse($filesystem->exists($emailChecker->getSpoolDirectory()));
self::assertEmailCount(0);
}
}

View file

@ -18,11 +18,9 @@ use Sylius\Bundle\ApiBundle\Command\Account\SendAccountRegistrationEmail;
use Sylius\Bundle\ApiBundle\CommandHandler\Account\SendAccountRegistrationEmailHandler;
use Sylius\Component\Channel\Repository\ChannelRepositoryInterface;
use Sylius\Component\Core\Model\ChannelInterface;
use Sylius\Component\Core\Test\Services\EmailChecker;
use Sylius\Component\User\Model\UserInterface;
use Sylius\Component\User\Repository\UserRepositoryInterface;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Contracts\Translation\TranslatorInterface;
final class SendAccountRegistrationEmailHandlerTest extends KernelTestCase
@ -32,21 +30,11 @@ final class SendAccountRegistrationEmailHandlerTest extends KernelTestCase
*/
public function it_sends_account_registration_email_with_hostname(): void
{
$this->markTestSkipped('EmailChecker fixed required');
$container = self::bootKernel()->getContainer();
/** @var Filesystem $filesystem */
$filesystem = $container->get('filesystem.public');
$container = self::getContainer();
/** @var TranslatorInterface $translator */
$translator = $container->get('translator');
/** @var EmailChecker $emailChecker */
$emailChecker = $container->get('sylius.behat.email_checker');
$filesystem->remove($emailChecker->getSpoolDirectory());
$emailSender = $container->get('sylius.email_sender');
/** @var ChannelRepositoryInterface|ObjectProphecy $channelRepository */
@ -78,11 +66,13 @@ final class SendAccountRegistrationEmailHandlerTest extends KernelTestCase
)
);
self::assertSame(1, $emailChecker->countMessagesTo('user@example.com'));
self::assertTrue($emailChecker->hasMessageTo(
self::assertEmailCount(1);
$email = self::getMailerMessage();
self::assertEmailAddressContains($email, 'To', 'user@example.com');
self::assertEmailHtmlBodyContains(
$email,
$translator->trans('sylius.email.user_registration.start_shopping', [], null, 'en_US'),
'user@example.com'
));
);
}
/**
@ -90,21 +80,11 @@ final class SendAccountRegistrationEmailHandlerTest extends KernelTestCase
*/
public function it_sends_account_registration_email_without_hostname(): void
{
$this->markTestSkipped('EmailChecker fixed required');
$container = self::bootKernel()->getContainer();
/** @var Filesystem $filesystem */
$filesystem = $container->get('filesystem.public');
$container = self::getContainer();
/** @var TranslatorInterface $translator */
$translator = $container->get('translator');
/** @var EmailChecker $emailChecker */
$emailChecker = $container->get('sylius.behat.email_checker');
$filesystem->remove($emailChecker->getSpoolDirectory());
$emailSender = $container->get('sylius.email_sender');
/** @var ChannelRepositoryInterface|ObjectProphecy $channelRepository */
@ -136,10 +116,12 @@ final class SendAccountRegistrationEmailHandlerTest extends KernelTestCase
)
);
self::assertSame(1, $emailChecker->countMessagesTo('user@example.com'));
self::assertTrue($emailChecker->hasMessageTo(
self::assertEmailCount(1);
$email = self::getMailerMessage();
self::assertEmailAddressContains($email, 'To', 'user@example.com');
self::assertEmailHtmlBodyContains(
$email,
$translator->trans('sylius.email.user_registration.start_shopping', [], null, 'en_US'),
'user@example.com'
));
);
}
}

View file

@ -18,11 +18,9 @@ use Sylius\Bundle\ApiBundle\Command\Account\SendAccountVerificationEmail;
use Sylius\Bundle\ApiBundle\CommandHandler\Account\SendAccountVerificationEmailHandler;
use Sylius\Component\Channel\Repository\ChannelRepositoryInterface;
use Sylius\Component\Core\Model\ChannelInterface;
use Sylius\Component\Core\Test\Services\EmailChecker;
use Sylius\Component\User\Model\UserInterface;
use Sylius\Component\User\Repository\UserRepositoryInterface;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Contracts\Translation\TranslatorInterface;
final class SendAccountVerificationEmailHandlerTest extends KernelTestCase
@ -32,21 +30,11 @@ final class SendAccountVerificationEmailHandlerTest extends KernelTestCase
*/
public function it_sends_account_verification_token_email_without_hostname(): void
{
$this->markTestSkipped('EmailChecker fixed required');
$container = self::bootKernel()->getContainer();
/** @var Filesystem $filesystem */
$filesystem = $container->get('filesystem.public');
$container = self::getContainer();
/** @var TranslatorInterface $translator */
$translator = $container->get('translator');
/** @var EmailChecker $emailChecker */
$emailChecker = $container->get('sylius.behat.email_checker');
$filesystem->remove($emailChecker->getSpoolDirectory());
$emailSender = $container->get('sylius.email_sender');
/** @var ChannelRepositoryInterface|ObjectProphecy $channelRepository */
@ -78,11 +66,13 @@ final class SendAccountVerificationEmailHandlerTest extends KernelTestCase
)
);
self::assertSame(1, $emailChecker->countMessagesTo('user@example.com'));
self::assertTrue($emailChecker->hasMessageTo(
self::assertEmailCount(1);
$email = self::getMailerMessage();
self::assertEmailAddressContains($email, 'To', 'user@example.com');
self::assertEmailHtmlBodyContains(
$email,
$translator->trans('sylius.email.verification_token.verify_your_email_address', [], null, 'en_US'),
'user@example.com'
));
);
}
/**
@ -90,21 +80,11 @@ final class SendAccountVerificationEmailHandlerTest extends KernelTestCase
*/
public function it_sends_account_verification_token_email_with_hostname(): void
{
$this->markTestSkipped('EmailChecker fixed required');
$container = self::bootKernel()->getContainer();
/** @var Filesystem $filesystem */
$filesystem = $container->get('filesystem.public');
$container = self::getContainer();
/** @var TranslatorInterface $translator */
$translator = $container->get('translator');
/** @var EmailChecker $emailChecker */
$emailChecker = $container->get('sylius.behat.email_checker');
$filesystem->remove($emailChecker->getSpoolDirectory());
$emailSender = $container->get('sylius.email_sender');
/** @var ChannelRepositoryInterface|ObjectProphecy $channelRepository */
@ -136,10 +116,12 @@ final class SendAccountVerificationEmailHandlerTest extends KernelTestCase
)
);
self::assertSame(1, $emailChecker->countMessagesTo('user@example.com'));
self::assertTrue($emailChecker->hasMessageTo(
$translator->trans('sylius.email.verification_token.to_verify_your_email_address', [], null, 'en_US'),
'user@example.com'
));
self::assertEmailCount(1);
$email = self::getMailerMessage();
self::assertEmailAddressContains($email, 'To', 'user@example.com');
self::assertEmailHtmlBodyContains(
$email,
$translator->trans('sylius.email.verification_token.verify_your_email_address', [], null, 'en_US'),
);
}
}

View file

@ -18,7 +18,6 @@ use Sylius\Bundle\ApiBundle\Command\Account\SendResetPasswordEmail;
use Sylius\Bundle\ApiBundle\CommandHandler\Account\SendResetPasswordEmailHandler;
use Sylius\Component\Channel\Repository\ChannelRepositoryInterface;
use Sylius\Component\Core\Model\ChannelInterface;
use Sylius\Component\Core\Test\Services\EmailChecker;
use Sylius\Component\User\Model\UserInterface;
use Sylius\Component\User\Repository\UserRepositoryInterface;
use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase;
@ -32,21 +31,11 @@ final class SendResetPasswordEmailHandlerTest extends KernelTestCase
*/
public function it_sends_password_reset_token_email_without_hostname(): void
{
$this->markTestSkipped('EmailChecker fixed required');
$container = self::bootKernel()->getContainer();
/** @var Filesystem $filesystem */
$filesystem = $container->get('filesystem.public');
$container = self::getContainer();
/** @var TranslatorInterface $translator */
$translator = $container->get('translator');
/** @var EmailChecker $emailChecker */
$emailChecker = $container->get('sylius.behat.email_checker');
$filesystem->remove($emailChecker->getSpoolDirectory());
$emailSender = $container->get('sylius.email_sender');
/** @var ChannelRepositoryInterface|ObjectProphecy $channelRepository */
@ -76,11 +65,13 @@ final class SendResetPasswordEmailHandlerTest extends KernelTestCase
'en_US'
));
self::assertSame(1, $emailChecker->countMessagesTo('user@example.com'));
self::assertTrue($emailChecker->hasMessageTo(
self::assertEmailCount(1);
$email = self::getMailerMessage();
self::assertEmailAddressContains($email, 'To', 'user@example.com');
self::assertEmailHtmlBodyContains(
$email,
$translator->trans('sylius.email.password_reset.to_reset_your_password', [], null, 'en_US'),
'user@example.com'
));
);
}
/**
@ -88,21 +79,11 @@ final class SendResetPasswordEmailHandlerTest extends KernelTestCase
*/
public function it_sends_password_reset_token_email_with_hostname(): void
{
$this->markTestSkipped('EmailChecker fixed required');
$container = self::bootKernel()->getContainer();
/** @var Filesystem $filesystem */
$filesystem = $container->get('filesystem.public');
$container = self::getContainer();
/** @var TranslatorInterface $translator */
$translator = $container->get('translator');
/** @var EmailChecker $emailChecker */
$emailChecker = $container->get('sylius.behat.email_checker');
$filesystem->remove($emailChecker->getSpoolDirectory());
$emailSender = $container->get('sylius.email_sender');
/** @var ChannelRepositoryInterface|ObjectProphecy $channelRepository */
@ -132,10 +113,12 @@ final class SendResetPasswordEmailHandlerTest extends KernelTestCase
'en_US'
));
self::assertSame(1, $emailChecker->countMessagesTo('user@example.com'));
self::assertTrue($emailChecker->hasMessageTo(
self::assertEmailCount(1);
$email = self::getMailerMessage();
self::assertEmailAddressContains($email, 'To', 'user@example.com');
self::assertEmailHtmlBodyContains(
$email,
$translator->trans('sylius.email.password_reset.to_reset_your_password', [], null, 'en_US'),
'user@example.com'
));
);
}
}