| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | <?phpnamespace tests\unit\models;use app\models\ContactForm;use yii\mail\MessageInterface;class ContactFormTest extends \Codeception\Test\Unit{    private $model;    /**     * @var \UnitTester     */    public $tester;    public function testEmailIsSentOnContact()    {        /** @var ContactForm $model */        $this->model = $this->getMockBuilder('app\models\ContactForm')            ->setMethods(['validate'])            ->getMock();        $this->model->expects($this->once())            ->method('validate')            ->willReturn(true);        $this->model->attributes = [            'name' => 'Tester',            'email' => 'tester@example.com',            'subject' => 'very important letter subject',            'body' => 'body of current message',        ];        expect_that($this->model->contact('admin@example.com'));        // using Yii2 module actions to check email was sent        $this->tester->seeEmailIsSent();        /** @var MessageInterface $emailMessage */        $emailMessage = $this->tester->grabLastSentEmail();        expect('valid email is sent', $emailMessage)->isInstanceOf('yii\mail\MessageInterface');        expect($emailMessage->getTo())->hasKey('admin@example.com');        expect($emailMessage->getFrom())->hasKey('noreply@example.com');        expect($emailMessage->getReplyTo())->hasKey('tester@example.com');        expect($emailMessage->getSubject())->equals('very important letter subject');        expect($emailMessage->toString())->stringContainsString('body of current message');    }}
 |