| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | 
							- <?php
 
- namespace 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');
 
-     }
 
- }
 
 
  |