Browse Source

Removing ReflectionMethod::setAccessible() from tests, it was limiting to PHP 5.3.2 or newer.

Renan Gonçalves 14 years ago
parent
commit
3412c0cb0f
1 changed files with 16 additions and 3 deletions
  1. 16 3
      lib/Cake/Test/Case/Model/Datasource/Database/MysqlTest.php

+ 16 - 3
lib/Cake/Test/Case/Model/Datasource/Database/MysqlTest.php

@@ -1085,15 +1085,28 @@ class MysqlTest extends CakeTestCase {
 
 		$linkModel = $model->{$className};
 		$external = isset($assocData['external']);
-		$reflection = new ReflectionMethod($this->Dbo, '_scrubQueryData');
-		$reflection->setAccessible(true);
-		$queryData = $reflection->invokeArgs($this->Dbo, array($queryData));
+		$queryData = $this->_scrubQueryData($queryData);
 
 		$result = array_merge(array('linkModel' => &$linkModel), compact('type', 'assoc', 'assocData', 'external'));
 		return $result;
 	}
 
 /**
+ * Helper method copied from DboSource::_scrubQueryData()
+ *
+ * @param array $data
+ * @return array
+ */
+	function _scrubQueryData($data) {
+		static $base = null;
+		if ($base === null) {
+			$base = array_fill_keys(array('conditions', 'fields', 'joins', 'order', 'limit', 'offset', 'group'), array());
+			$base['callbacks'] = null;
+		}
+		return (array)$data + $base;
+	}
+
+/**
  * testGenerateInnerJoinAssociationQuery method
  *
  * @return void