public function testReplaceIdentityIntoAFunctionCallBeforeHandingItOverToItsDecorated()
{
$token = new Token('<(echo "hello world!")>', new TokenType(TokenType::IDENTITY_TYPE));
$decoratedParserProphecy = $this->prophesize(ChainableTokenParserInterface::class);
$decoratedParserProphecy->parse(new Token('<identity(echo "hello world!")>', new TokenType(TokenType::FUNCTION_TYPE)))->willReturn($expected = 'foo');
/** @var ChainableTokenParserInterface $decoratedParser */
$decoratedParser = $decoratedParserProphecy->reveal();
$parser = new IdentityTokenParser($decoratedParser);
$actual = $parser->parse($token);
$this->assertEquals($expected, $actual);
$decoratedParserProphecy->parse(Argument::any())->shouldHaveBeenCalledTimes(1);
}