/**
* @return ObjectProperty[]
*/
private function getSpecifyObjectProperties()
{
$objectReflection = new \ReflectionObject($this);
$propertiesToClone = $objectReflection->getProperties();
if (($classProperties = $this->specifyGetClassPrivateProperties()) !== []) {
$propertiesToClone = array_merge($propertiesToClone, $classProperties);
}
$properties = [];
foreach ($propertiesToClone as $property) {
if ($this->specifyConfig->propertyIgnored($property->getName())) {
continue;
}
$properties[] = new ObjectProperty($this, $property);
}
// isolate mockObjects property from PHPUnit_Framework_TestCase
if (($phpUnitReflection = $this->specifyGetPhpUnitReflection()) !== null) {
$properties[] = $mockObjects = new ObjectProperty($this, $phpUnitReflection->getProperty('mockObjects'));
// remove all mock objects inherited from parent scope(s)
$mockObjects->setValue([]);
}
return $properties;
}