public function testEscapedStrings() { $params = new CommandParams('"foo bar" "baz fu" \'bar baz\''); $this->assertEquals(['foo bar', 'baz fu', "'bar", "baz'"], $params->getArguments()); $this->assertSame('foo bar', $params->getFirstArgument()); $this->assertSame('baz fu', $params->getSecondArgument()); $this->assertSame("'bar", $params->getThirdArgument()); $this->assertSame('foo bar', $params->getArgument(0)); $this->assertSame('baz fu', $params->getArgument(1)); $this->assertSame("'bar", $params->getArgument(2)); $this->assertSame("baz'", $params->getArgument(3)); }
/** * @param string $contents * @param CommandParams $params * @param string $fileName * * @return string * * @throws ExecutionFailedException */ private function findFunction($contents, CommandParams $params, $fileName) { $functionName = $params->getArgument(2); $result = $this->parser->parse($contents); if (!$result->hasFunction($functionName)) { throw new ExecutionFailedException("Function '{$functionName}' was not found in file '{$fileName}'."); } return $this->wrapLines($result->getFunction($functionName)->getSource()); }