public function testDenormalizesEachArgument()
{
$arguments = ['0 (dummy_flag)' => '<latitude()>', '1 (dummy_flag)' => '<longitude()>', '2 (dummy_flag)' => 'dudu', '3 (dummy_flag)' => 1000];
$fixture = new FakeFixture();
$flagParserProphecy = $this->prophesize(FlagParserInterface::class);
$flagParserProphecy->parse(Argument::any())->will(function ($args) {
return new FlagBag($args[0]);
});
/** @var FlagParserInterface $flagParser */
$flagParser = $flagParserProphecy->reveal();
$valueDenormalizerProphecy = $this->prophesize(ValueDenormalizerInterface::class);
$valueDenormalizerProphecy->denormalize(Argument::cetera())->will(function ($args) {
return $args[2];
});
/** @var ValueDenormalizerInterface $valueDenormalizer */
$valueDenormalizer = $valueDenormalizerProphecy->reveal();
$denormalizer = new SimpleArgumentsDenormalizer($valueDenormalizer);
$result = $denormalizer->denormalize($fixture, $flagParser, $arguments);
$this->assertEquals(['<latitude()>', '<longitude()>', 'dudu', 1000], $result);
$valueDenormalizerProphecy->denormalize($fixture, new FlagBag('0 (dummy_flag)'), '<latitude()>')->shouldHaveBeenCalledTimes(1);
$valueDenormalizerProphecy->denormalize($fixture, new FlagBag('1 (dummy_flag)'), '<longitude()>')->shouldHaveBeenCalledTimes(1);
$valueDenormalizerProphecy->denormalize($fixture, new FlagBag('2 (dummy_flag)'), 'dudu')->shouldHaveBeenCalledTimes(1);
$valueDenormalizerProphecy->denormalize($fixture, new FlagBag('3 (dummy_flag)'), 1000)->shouldHaveBeenCalledTimes(1);
}