public function testReadAccessorsReturnPropertiesValues()
{
$caller = new InstantiatedReference('user.factory');
$method = 'setUsername';
$arguments = [new \stdClass()];
$percentage = 30;
$stringValue = 'user.factorysetUsername';
$methodCallProphecy = $this->prophesize(MethodCallInterface::class);
$methodCallProphecy->getCaller()->willReturn($caller);
$methodCallProphecy->getMethod()->willReturn($method);
$methodCallProphecy->getArguments()->willReturn($arguments);
$methodCallProphecy->__toString()->willReturn($stringValue);
/** @var MethodCallInterface $caller */
$methodCall = $methodCallProphecy->reveal();
$flag = new OptionalFlag($percentage);
$definition = new OptionalMethodCall($methodCall, $flag);
$this->assertEquals($caller, $definition->getCaller());
$this->assertEquals($method, $definition->getMethod());
$this->assertEquals($arguments, $definition->getArguments());
$this->assertEquals($percentage, $definition->getPercentage());
$this->assertEquals($stringValue, $definition->__toString());
$methodCallProphecy->getCaller()->shouldHaveBeenCalledTimes(1);
$methodCallProphecy->getMethod()->shouldHaveBeenCalledTimes(1);
$methodCallProphecy->getArguments()->shouldHaveBeenCalledTimes(1);
}