setName($name); $metadata->setFilename($file); $this->setMetadata($metadata); $this->createScenario(); $this->parser = new Parser($this->getScenario(), $this->getMetadata()); } public function preload() { $this->getParser()->prepareToRun($this->getSourceCode()); } public function test() { $scenario = $this->getScenario(); $testFile = $this->getMetadata()->getFilename(); /** @noinspection PhpIncludeInspection */ try { require $testFile; } catch (\ParseError $e) { throw new TestParseException($testFile, $e->getMessage()); } } public function getSignature() { return $this->getMetadata()->getName() . 'Cept'; } public function toString() { return $this->getSignature() . ': ' . Message::ucfirst($this->getFeature()); } public function getSourceCode() { return file_get_contents($this->getFileName()); } public function getReportFields() { return [ 'name' => basename($this->getFileName(), 'Cept.php'), 'file' => $this->getFileName(), 'feature' => $this->getFeature() ]; } /** * @return Parser */ protected function getParser() { return $this->parser; } public function getDependencies() { return $this->getMetadata()->getDependencies(); } }