<?php
namespace tests\codeception\api\models\base;

use api\models\base\KeyConfirmationForm;
use Codeception\Specify;
use common\models\EmailActivation;
use tests\codeception\api\unit\DbTestCase;
use tests\codeception\common\fixtures\EmailActivationFixture;
use Yii;

/**
 * @property EmailActivationFixture $emailActivations
 */
class KeyConfirmationFormTest extends DbTestCase {
    use Specify;

    public function fixtures() {
        return [
            'emailActivations' => EmailActivationFixture::class,
        ];
    }

    public function testGetActivationCodeModel() {
        $this->specify('should return model, based on passed key', function() {
            $model = new KeyConfirmationForm();
            $model->key = array_values($this->emailActivations->data)[0]['key'];
            expect($model->getActivationCodeModel())->isInstanceOf(EmailActivation::class);
        });

        $this->specify('should return null, if passed key is invalid', function() {
            $model = new KeyConfirmationForm();
            $model->key = 'this-is-invalid-key';
            expect($model->getActivationCodeModel())->null();
        });
    }

}