%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/tests/codeception/_support/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/tests/codeception/_support/BaseTester.php |
<?php
use humhub\modules\space\models\Space;
use humhub\modules\space\tests\codeception\fixtures\SpaceFixture;
/**
* Base class for testers
*
* Inherited Methods
* @method void haveFixtures($fixtures)
* @method Space grabFixture($fixtureName, $index)
*/
class BaseTester extends \Codeception\Actor
{
/**
* @var Space[]
*/
private $spaces;
public function getFixtureSpace(int $index) : ?Space
{
if (isset($this->spaces[$index])) {
return $this->spaces[$index];
}
if (method_exists($this, 'haveFixtures') && method_exists($this, 'grabFixture')) {
if (!isset($this->spaces)) {
// Don't try to load spaces twice because it is delete all space records from related tables
$this->haveFixtures(['space' => SpaceFixture::class]);
}
$this->spaces[$index] = $this->grabFixture('space', $index);
} else if (!isset($this->spaces)) {
// Acceptance tests have no the methods above, try to get spaces from DB instead:
$this->spaces = Space::find()->orderBy('id')->all();
if (!isset($this->spaces[$index])) {
$this->spaces[$index] = null;
}
}
return $this->spaces[$index];
}
public function getFixtureSpaceGuid(int $index) : string
{
$space = $this->getFixtureSpace($index);
return ($space instanceof Space ? $space->guid : '');
}
public function enableModule($indexOrGuid, $moduleId)
{
if (is_int($indexOrGuid)) {
$space = $this->getFixtureSpace(--$indexOrGuid);
} else {
$space = Space::findOne(['guid' => $indexOrGuid]);
}
if ($space) {
$space->moduleManager->enable($moduleId);
$space->moduleManager->flushCache();
Yii::$app->moduleManager->flushCache();
}
}
}