diff -r 000000000000 -r 4eba9c11703f web/Zend/Test/PHPUnit/Db/Metadata/Generic.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/Zend/Test/PHPUnit/Db/Metadata/Generic.php Mon Dec 13 18:29:26 2010 +0100 @@ -0,0 +1,167 @@ +_connection = $db; + $this->_schema = $schema; + } + + /** + * List Tables + * + * @return array + */ + public function getTableNames() + { + return $this->_connection->listTables(); + } + + /** + * Get Table information + * + * @param string $tableName + * @return array + */ + protected function getTableDescription($tableName) + { + if(!isset($this->_tableMetadata[$tableName])) { + $this->_tableMetadata[$tableName] = $this->_connection->describeTable($tableName); + } + return $this->_tableMetadata[$tableName]; + } + + /** + * Returns an array containing the names of all the columns in the + * $tableName table, + * + * @param string $tableName + * @return array + */ + public function getTableColumns($tableName) + { + $tableMeta = $this->getTableDescription($tableName); + $columns = array_keys($tableMeta); + return $columns; + } + + /** + * Returns an array containing the names of all the primary key columns in + * the $tableName table. + * + * @param string $tableName + * @return array + */ + public function getTablePrimaryKeys($tableName) + { + $tableMeta = $this->getTableDescription($tableName); + + $primaryColumnNames = array(); + foreach($tableMeta AS $column) { + if($column['PRIMARY'] == true) { + $primaryColumnNames[] = $column['COLUMN_NAME']; + } + } + return $primaryColumnNames; + } + + /** + * Returns the name of the default schema. + * + * @return string + */ + public function getSchema() + { + return $this->_schema; + } + + /** + * Returns a quoted schema object. (table name, column name, etc) + * + * @param string $object + * @return string + */ + public function quoteSchemaObject($object) + { + return $this->_connection->quoteIdentifier($object); + } + + /** + * Returns true if the rdbms allows cascading + * + * @return bool + */ + public function allowsCascading() + { + return false; + } +} \ No newline at end of file