|
|
|
<?php
|
|
|
|
|
|
|
|
namespace common\tests\_helpers;
|
|
|
|
|
|
|
|
use Codeception\Module;
|
|
|
|
use yii\test\FixtureTrait;
|
|
|
|
use common\tests\fixtures\UserFixture;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* This helper is used to populate database with needed fixtures before any tests should be run.
|
|
|
|
* For example - populate database with demo login user that should be used in acceptance and functional tests.
|
|
|
|
* All fixtures will be loaded before suite will be starded and unloaded after it.
|
|
|
|
*/
|
|
|
|
class FixtureHelper extends Module
|
|
|
|
{
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Redeclare visibility because codeception includes all public methods that not starts from "_"
|
|
|
|
* and not excluded by module settings, in guy class.
|
|
|
|
*/
|
|
|
|
use FixtureTrait {
|
|
|
|
loadFixtures as protected;
|
|
|
|
fixtures as protected;
|
|
|
|
globalFixtures as protected;
|
|
|
|
unloadFixtures as protected;
|
|
|
|
getFixtures as protected;
|
|
|
|
getFixture as protected;
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Method called before any suite tests run. Loads User fixture login user
|
|
|
|
* to use in acceptance and functional tests.
|
|
|
|
* @param array $settings
|
|
|
|
*/
|
|
|
|
public function _beforeSuite($settings = [])
|
|
|
|
{
|
|
|
|
$this->loadFixtures();
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Method is called after all suite tests run
|
|
|
|
*/
|
|
|
|
public function _afterSuite()
|
|
|
|
{
|
|
|
|
$this->unloadFixtures();
|
|
|
|
}
|
|
|
|
|
|
|
|
protected function fixtures()
|
|
|
|
{
|
|
|
|
return [
|
|
|
|
'user' => [
|
|
|
|
'class' => UserFixture::className(),
|
|
|
|
'dataFile' => '@common/tests/fixtures/data/init_login.php',
|
|
|
|
],
|
|
|
|
];
|
|
|
|
}
|
|
|
|
}
|