/**
* @param string $fileName
* @param string $content
*
* @return IntegrationCase
*/
public function create($fileName, $content)
{
try {
if (!preg_match('/--TEST--\\n(?<title>.*?)\\s--CONFIG--\\n(?<config>.*?)(\\s--SETTINGS--\\n(?<settings>.*?))?(\\s--REQUIREMENTS--\\n(?<requirements>.*?))?\\s--EXPECT--\\n(?<expect>.*?\\n*)(?:\\n--INPUT--\\s(?<input>.*)|$)/s', $content, $match)) {
throw new \InvalidArgumentException('File format is invalid.');
}
return IntegrationCase::create()->setFileName($fileName)->setTitle($match['title'])->setFixers($this->determineFixers($match['config']))->setRequirements($this->determineRequirements($match['requirements']))->setSettings($this->determineSettings($match['settings']))->setExpectedCode($match['expect'])->setInputCode(isset($match['input']) ? $match['input'] : null);
} catch (\InvalidArgumentException $e) {
throw new \InvalidArgumentException(sprintf('%s Test file: "%s".', $e->getMessage(), $fileName), $e->getCode(), $e);
}
}