public function testSetGetGetterName() { $getter = 'getSomeData'; $this->assertMethodChaining($this->object->setGetterName($getter), 'setGetterName'); $this->assertSame($getter, $this->object->getGetterName()); }
protected function extractProperty($object, PropertyDefinition $property) { $getterName = $property->getGetterName(); if ($getterName) { if (method_exists($object, $getterName)) { return $property->extract($object->{$getterName}()); } } $targetPropertyName = $property->getTargetPropertyName(); try { $reflectionProperty = $this->getReflectionProperty($targetPropertyName); return $property->extract($reflectionProperty->getValue($object)); } catch (\ReflectionException $e) { } if (property_exists($object, $targetPropertyName)) { return $property->extract($object->{$targetPropertyName}); } $msg = 'Cannot extract data for property "' . $targetPropertyName . '" since it not exist'; throw new InvalidValueException($msg); }