public function testCanDenormalizeConstructor()
{
$fixture = new FakeFixture();
$specs = ['__construct' => $construct = ['<latitude()>']];
$flagParser = new FakeFlagParser();
$constructorDenormalizerProphecy = $this->prophesize(ConstructorDenormalizerInterface::class);
$constructorDenormalizerProphecy->denormalize($fixture, $flagParser, $construct)->willReturn($constructor = new FakeMethodCall());
/** @var ConstructorDenormalizerInterface $constructorDenormalizer */
$constructorDenormalizer = $constructorDenormalizerProphecy->reveal();
$expected = new SpecificationBag($constructor, new PropertyBag(), new MethodCallBag());
$denormalizer = new SimpleSpecificationsDenormalizer($constructorDenormalizer, new FakePropertyDenormalizer(), new FakeCallsDenormalizer());
$actual = $denormalizer->denormalize(new FakeFixture(), $flagParser, $specs);
$this->assertEquals($expected, $actual);
$constructorDenormalizerProphecy->denormalize(Argument::cetera())->shouldHaveBeenCalledTimes(1);
}