public function testDenormalizesValueBeforeReturningProperty() { $fixture = new FakeFixture(); $name = 'groupId'; $value = 10; $flags = new FlagBag(''); $valueDenormalizerProphecy = $this->prophesize(ValueDenormalizerInterface::class); $valueDenormalizerProphecy->denormalize($fixture, $flags, $value)->willReturn('denormalized_value'); /** @var ValueDenormalizerInterface $valueDenormalizer */ $valueDenormalizer = $valueDenormalizerProphecy->reveal(); $expected = new Property($name, 'denormalized_value'); $denormalizer = new SimplePropertyDenormalizer($valueDenormalizer); $actual = $denormalizer->denormalize($fixture, $name, $value, $flags); $this->assertEquals($expected, $actual); $valueDenormalizerProphecy->denormalize(Argument::cetera())->shouldHaveBeenCalledTimes(1); }