replaced mailer library, added email templates (#1462)

This commit is contained in:
Kevin Papst
2020-02-12 16:05:13 +01:00
committed by GitHub
parent 1b4f4bba22
commit 057c824e9f
30 changed files with 2738 additions and 340 deletions

View File

@@ -0,0 +1,67 @@
<?php
/*
* This file is part of the Kimai time-tracking app.
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace App\Tests\Mail;
use App\Configuration\MailConfiguration;
use App\Entity\User;
use App\Mail\KimaiMailer;
use App\Mail\UserMails;
use PHPUnit\Framework\TestCase;
use Symfony\Component\Mailer\MailerInterface;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Email;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Contracts\Translation\TranslatorInterface;
/**
* @covers \App\Mail\UserMails
*/
class UserMailsTest extends TestCase
{
public function getSut(): UserMails
{
$config = $this->createMock(MailConfiguration::class);
$config->expects($this->any())->method('getFromAddress')->willReturn('zippel@example.com');
$mailer = $this->createMock(MailerInterface::class);
$mailer->expects($this->once())->method('send')->willReturnCallback(function (Email $message) {
self::assertEquals([new Address('zippel@example.com')], $message->getFrom());
self::assertEquals([new Address('foo@example.com')], $message->getTo());
self::assertEquals('foo', $message->getSubject());
});
$kimaiMailer = new KimaiMailer($config, $mailer);
$router = $this->createMock(UrlGeneratorInterface::class);
$translator = $this->createMock(TranslatorInterface::class);
$translator->expects($this->any())->method('trans')->willReturn('foo');
return new UserMails($kimaiMailer, $router, $translator);
}
public function testSendConfirmationEmailMessage()
{
$user = new User();
$user->setUsername('Testing');
$user->setEmail('foo@example.com');
$user->setAlias('Super User');
$mailer = $this->getSut();
$mailer->sendConfirmationEmailMessage($user);
}
public function testSendResettingEmailMessage()
{
$user = new User();
$user->setUsername('Testing');
$user->setEmail('foo@example.com');
$user->setAlias('Super User');
$mailer = $this->getSut();
$mailer->sendResettingEmailMessage($user);
}
}