public function testUsesDecoratedAccessorToDertermineIfPropertyIsReadbleIfObjectIsNotAnStdClassInstance() { $object = new DummyWithPublicProperty(); $property = 'val'; $decoratedAccessorProphecy = $this->prophesize(PropertyAccessorInterface::class); $decoratedAccessorProphecy->isReadable($object, $property)->willReturn($expected = true); /** @var PropertyAccessorInterface $decoratedAccessor */ $decoratedAccessor = $decoratedAccessorProphecy->reveal(); $accessor = new StdPropertyAccessor($decoratedAccessor); $actual = $accessor->isReadable($object, $property); $this->assertEquals($expected, $actual); $decoratedAccessorProphecy->isReadable(Argument::cetera())->shouldHaveBeenCalledTimes(1); }