Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Index: Tests/Unit/Reflection/ObjectAccessTest.php
- ===================================================================
- --- Tests/Unit/Reflection/ObjectAccessTest.php (Revision 4470)
- +++ Tests/Unit/Reflection/ObjectAccessTest.php (Arbeitskopie)
- @@ -216,6 +216,20 @@
- /**
- * @test
- + * @author Christopher Hlubek <hlubek@networkteam.com>
- + */
- + public function getSettablePropertyNamesReturnsPropertyNamesOfStdClass() {
- + $stdClassObject = new \stdClass();
- + $stdClassObject->property = 'string1';
- + $stdClassObject->property2 = NULL;
- +
- + $settablePropertyNames = \F3\FLOW3\Reflection\ObjectAccess::getSettablePropertyNames($stdClassObject);
- + $expectedPropertyNames = array('property', 'property2');
- + $this->assertEquals($expectedPropertyNames, $settablePropertyNames, 'getSettablePropertyNames returns not all settable properties.');
- + }
- +
- + /**
- + * @test
- * @author Sebastian Kurfürst <sebastian@typo3.org>
- */
- public function getGettablePropertiesReturnsTheCorrectValuesForAllProperties() {
- @@ -232,6 +246,23 @@
- /**
- * @test
- + * @author Christopher Hlubek <hlubek@networkteam.com>
- + */
- + public function getGettablePropertiesReturnsPropertiesOfStdClass() {
- + $stdClassObject = new \stdClass();
- + $stdClassObject->property = 'string1';
- + $stdClassObject->property2 = NULL;
- + $stdClassObject->publicProperty2 = 42;
- + $allProperties = \F3\FLOW3\Reflection\ObjectAccess::getGettableProperties($stdClassObject);
- + $expectedProperties = array(
- + 'property' => 'string1',
- + 'property2' => NULL,
- + 'publicProperty2' => 42);
- + $this->assertEquals($expectedProperties, $allProperties, 'expectedProperties did not return the right values for the properties.');
- + }
- +
- + /**
- + * @test
- * @author Robert Lemke <robert@typo3.org>
- */
- public function isPropertySettableTellsIfAPropertyCanBeSet() {
- @@ -244,6 +275,19 @@
- /**
- * @test
- + * @author Christopher Hlubek <hlubek@networkteam.com>
- + */
- + public function isPropertySettableWorksOnStdClass() {
- + $stdClassObject = new \stdClass();
- + $stdClassObject->property = 'foo';
- +
- + $this->assertTrue(\F3\FLOW3\Reflection\ObjectAccess::isPropertySettable($stdClassObject, 'property'));
- +
- + $this->assertFalse(\F3\FLOW3\Reflection\ObjectAccess::isPropertySettable($stdClassObject, 'undefinedProperty'));
- + }
- +
- + /**
- + * @test
- * @author Robert Lemke <robert@typo3.org>
- */
- public function isPropertyGettableTellsIfAPropertyCanBeRetrieved() {
- @@ -255,8 +299,22 @@
- $this->assertFalse(\F3\FLOW3\Reflection\ObjectAccess::isPropertyGettable($this->dummyObject, 'writeOnlyMagicProperty'));
- }
- +
- /**
- * @test
- + * @author Christopher Hlubek <hlubek@networkteam.com>
- + */
- + public function isPropertyGettableWorksOnStdClass() {
- + $stdClassObject = new \stdClass();
- + $stdClassObject->property = 'foo';
- +
- + $this->assertTrue(\F3\FLOW3\Reflection\ObjectAccess::isPropertyGettable($stdClassObject, 'property'));
- +
- + $this->assertFalse(\F3\FLOW3\Reflection\ObjectAccess::isPropertyGettable($stdClassObject, 'undefinedProperty'));
- + }
- +
- + /**
- + * @test
- * @author Sebastian Kurfürst <sebastian@typo3.org>
- */
- public function getPropertyPathCanRecursivelyGetPropertiesOfAnObject() {
- Index: Classes/Reflection/ObjectAccess.php
- ===================================================================
- --- Classes/Reflection/ObjectAccess.php (Revision 4470)
- +++ Classes/Reflection/ObjectAccess.php (Arbeitskopie)
- @@ -176,7 +176,7 @@
- */
- static public function getGettablePropertyNames($object) {
- if (!is_object($object)) throw new \InvalidArgumentException('$object must be an object, ' . gettype($object). ' given.', 1237301369);
- - $declaredPropertyNames = array_keys(get_class_vars(get_class($object)));
- + $declaredPropertyNames = array_keys(get_object_vars($object));
- foreach (get_class_methods($object) as $methodName) {
- if (is_callable(array($object, $methodName))) {
- @@ -207,7 +207,7 @@
- */
- static public function getSettablePropertyNames($object) {
- if (!is_object($object)) throw new \InvalidArgumentException('$object must be an object, ' . gettype($object). ' given.', 1264022994);
- - $declaredPropertyNames = array_keys(get_class_vars(get_class($object)));
- + $declaredPropertyNames = array_keys(get_object_vars($object));
- foreach (get_class_methods($object) as $methodName) {
- if (substr($methodName, 0, 3) === 'set' && is_callable(array($object, $methodName))) {
- @@ -230,7 +230,7 @@
- */
- static public function isPropertySettable($object, $propertyName) {
- if (!is_object($object)) throw new \InvalidArgumentException('$object must be an object, ' . gettype($object). ' given.', 1259828920);
- - if (array_search($propertyName, array_keys(get_class_vars(get_class($object)))) !== FALSE) return TRUE;
- + if (array_search($propertyName, array_keys(get_object_vars($object))) !== FALSE) return TRUE;
- return is_callable(array($object, self::buildSetterMethodName($propertyName)));
- }
- @@ -244,7 +244,7 @@
- */
- static public function isPropertyGettable($object, $propertyName) {
- if (!is_object($object)) throw new \InvalidArgumentException('$object must be an object, ' . gettype($object). ' given.', 1259828921);
- - if (array_search($propertyName, array_keys(get_class_vars(get_class($object)))) !== FALSE) return TRUE;
- + if (array_search($propertyName, array_keys(get_object_vars($object))) !== FALSE) return TRUE;
- if (is_callable(array($object, 'get' . ucfirst($propertyName)))) return TRUE;
- return is_callable(array($object, 'is' . ucfirst($propertyName)));
- }
Add Comment
Please, Sign In to add comment