public function testBeforeSave() { $this->specify("ownerId must be set before save number", function ($ownerFixture) { /** @var $owner Employee */ $owner = $this->employees($ownerFixture); $model = new Number(['scenario' => 'create']); $model->number = '1234567890'; $model->ownerName = $owner->fullName; $model->ownerPost = $owner->post; $model->operatorId = $this->operators('operator1')->getPrimaryKey(); $model->save(); $this->tester->seeInCollection($model::collectionName(), ['number' => '1234567890', 'ownerId' => $owner->getPrimaryKey()]); Number::deleteAll(['number' => '1234567890']); }, ['examples' => [['employee1'], ['employee4']]]); $this->specify("ownerId must be null if ownerName is empty string", function () { $model = $this->numbers('number1'); /** @var $model Number */ $model->setScenario('update'); $model->ownerName = ""; $model->save(); $this->tester->seeInCollection($model::collectionName(), ['number' => $model['number'], 'ownerId' => null]); }); }