/** * Creates a new database table object. * * @param PHPUnit_Extensions_Database_DataSet_ITableMetaData $tableMetaData * @param PHPUnit_Extensions_Database_DB_IDatabaseConnection $databaseConnection */ public function __construct(PHPUnit_Extensions_Database_DataSet_ITableMetaData $tableMetaData, PHPUnit_Extensions_Database_DB_IDatabaseConnection $databaseConnection) { $this->setTableMetaData($tableMetaData); $pdoStatement = $databaseConnection->getConnection()->prepare(PHPUnit_Extensions_Database_DB_DataSet::buildTableSelect($tableMetaData)); $pdoStatement->execute(); $this->data = $pdoStatement->fetchAll(PDO::FETCH_ASSOC); }
public function execute(\PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection, \PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet) { $connection->getConnection()->query("SET @PHAKE_PREV_foreign_key_checks = @@FOREIGN_KEY_CHECKS"); $connection->getConnection()->query("SET FOREIGN_KEY_CHECKS = 0"); parent::execute($connection, $dataSet); $connection->getConnection()->query("SET FOREIGN_KEY_CHECKS = @PHAKE_PREV_foreign_key_checks"); }
protected function buildOperationQuery(PHPUnit_Extensions_Database_DataSet_ITableMetaData $databaseTableMetaData, PHPUnit_Extensions_Database_DataSet_ITable $table, PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection) { $columnCount = count($table->getTableMetaData()->getColumns()); if ($columnCount > 0) { $placeHolders = implode(', ', array_fill(0, $columnCount, '?')); $columns = ''; foreach ($table->getTableMetaData()->getColumns() as $column) { $columns .= $connection->quoteSchemaObject($column).', '; } $columns = substr($columns, 0, -2); $query = " INSERT INTO {$connection->quoteSchemaObject($table->getTableMetaData()->getTableName())} ({$columns}) VALUES ({$placeHolders}) "; return $query; } else { return FALSE; } }
public function execute(PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection, PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet) { $connection->getConnection()->query("SET @PHAKE_PREV_foreign_key_checks = @@foreign_key_checks"); $connection->getConnection()->query("SET foreign_key_checks = 0"); parent::execute($connection, $dataSet); $connection->getConnection()->query("SET foreign_key_checks = @PHAKE_PREV_foreign_key_checks"); }
public function execute(\PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection, \PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet) { foreach ($dataSet->getTableNames() as $tableName) { $connection->getConnection()->query("Alter Table {$tableName} NOCHECK Constraint All"); } parent::execute($connection, $dataSet); foreach ($dataSet->getTableNames() as $tableName) { $connection->getConnection()->query("Alter Table {$tableName} CHECK Constraint All"); } }
public function execute(PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection, PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet) { foreach ($dataSet->getReverseIterator() as $table) { /* @var $table PHPUnit_Extensions_Database_DataSet_ITable */ $query = "\n DELETE FROM {$connection->quoteSchemaObject($table->getTableMetaData()->getTableName())}\n "; try { $connection->getConnection()->query($query); } catch (PDOException $e) { throw new PHPUnit_Extensions_Database_Operation_Exception('DELETE_ALL', $query, array(), $table, $e->getMessage()); } } }
public function execute(PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection, PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet) { foreach ($dataSet->getReverseIterator() as $table) { /* @var $table PHPUnit_Extensions_Database_DataSet_ITable */ $query = "\n {$connection->getTruncateCommand()} {$connection->quoteSchemaObject($table->getTableMetaData()->getTableName())}\n "; if ($this->useCascade && $connection->allowsCascading()) { $query .= " CASCADE"; } try { $connection->getConnection()->query($query); } catch (PDOException $e) { throw new PHPUnit_Extensions_Database_Operation_Exception('TRUNCATE', $query, array(), $table, $e->getMessage()); } } }
public function execute(\PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection, \PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet) { foreach ($dataSet->getTableNames() as $tableName) { $connection->getConnection()->query("Alter Table {$tableName} NOCHECK Constraint All"); } foreach ($dataSet->getTableNames() as $tableName) { $connection->getConnection()->query("Delete From {$tableName}"); } foreach ($dataSet->getTableNames() as $tableName) { $connection->getConnection()->query("DBCC CHECKIDENT ({$tableName}, RESEED, 0)"); } foreach ($dataSet->getTableNames() as $tableName) { $connection->getConnection()->query("Alter Table {$tableName} CHECK Constraint All"); } }
public function execute(\PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection, \PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet) { /* @var $connection DoctrineExtensions\PHPUnit\TestConnection */ $conn = $connection->getConnection(); foreach ($dataSet->getReverseIterator() as $table) { /* @var $table PHPUnit_Extensions_Database_DataSet_ITable */ $tableName = $connection->quoteSchemaObject($table->getTableMetaData()->getTableName()); $query = $conn->getDatabasePlatform()->getTruncateTableSql($tableName, $this->useCascade); try { $connection->getConnection()->executeUpdate($query); } catch (\Exception $e) { throw new \PHPUnit_Extensions_Database_Operation_Exception('TRUNCATE', $query, array(), $table, $e->getMessage()); } } }
protected function loadData() { if ($this->data === NULL) { $pdoStatement = $this->databaseConnection->getConnection()->query($this->query); $this->data = $pdoStatement->fetchAll(PDO::FETCH_ASSOC); } }
protected function buildPreparedColumnArray($columns, PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection) { $columnArray = []; foreach ($columns as $columnName) { $columnArray[] = "{$connection->quoteSchemaObject($columnName)} = ?"; } return $columnArray; }
/** * @param PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection * @param PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet */ public function execute(PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection, PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet) { $databaseDataSet = $connection->createDataSet(); foreach ($dataSet as $table) { /* @var $table PHPUnit_Extensions_Database_DataSet_ITable */ $databaseTableMetaData = $databaseDataSet->getTableMetaData($table->getTableMetaData()->getTableName()); $query = $this->buildOperationQuery($databaseTableMetaData, $table); $statement = $connection->getConnection()->prepare($query); for ($i = 0; $i < $table->getRowCount(); $i++) { $args = $this->buildOperationArguments($databaseTableMetaData, $table, $i); try { $statement->execute($args); } catch (Exception $e) { throw new PHPUnit_Extensions_Database_Operation_Exception($this->operationName, $query, $args, $table, $e->getMessage()); } } } }
protected function buildOperationQuery(PHPUnit_Extensions_Database_DataSet_ITableMetaData $databaseTableMetaData, PHPUnit_Extensions_Database_DataSet_ITable $table, PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection) { $columnCount = count($table->getTableMetaData()->getColumns()); if ($columnCount > 0) { $placeHolders = ''; foreach ($table->getTableMetaData()->getColumns() as $key => $column) { $placeHolders .= ':param' . $key . 'x, '; } $placeHolders = substr($placeHolders, 0, -2); $columns = ''; foreach ($table->getTableMetaData()->getColumns() as $column) { $columns .= $connection->quoteSchemaObject($column) . ', '; } $columns = substr($columns, 0, -2); $query = "\n INSERT INTO {$connection->quoteSchemaObject($table->getTableMetaData()->getTableName())}\n ({$columns})\n VALUES\n ({$placeHolders})\n "; return $query; } else { return FALSE; } }
/** * @param PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection * @param PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet */ public function execute(PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection, PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet) { $insertOperation = new PHPUnit_Extensions_Database_Operation_Insert(); $updateOperation = new PHPUnit_Extensions_Database_Operation_Update(); $databaseDataSet = $connection->createDataSet(); foreach ($dataSet as $table) { /* @var $table PHPUnit_Extensions_Database_DataSet_ITable */ $databaseTableMetaData = $databaseDataSet->getTableMetaData($table->getTableMetaData()->getTableName()); $insertQuery = $insertOperation->buildOperationQuery($databaseTableMetaData, $table, $connection); $updateQuery = $updateOperation->buildOperationQuery($databaseTableMetaData, $table, $connection); $selectQuery = $this->buildOperationQuery($databaseTableMetaData, $table, $connection); $insertStatement = $connection->getConnection()->prepare($insertQuery); $updateStatement = $connection->getConnection()->prepare($updateQuery); $selectStatement = $connection->getConnection()->prepare($selectQuery); $rowCount = $table->getRowCount(); for ($i = 0; $i < $rowCount; $i++) { $selectArgs = $this->buildOperationArguments($databaseTableMetaData, $table, $i); $query = $selectQuery; $args = $selectArgs; try { $selectStatement->execute($selectArgs); if ($selectStatement->fetchColumn(0) > 0) { $updateArgs = $updateOperation->buildOperationArguments($databaseTableMetaData, $table, $i); $query = $updateQuery; $args = $updateArgs; $updateStatement->execute($updateArgs); } else { $insertArgs = $insertOperation->buildOperationArguments($databaseTableMetaData, $table, $i); $query = $insertQuery; $args = $insertArgs; $insertStatement->execute($insertArgs); } } catch (Exception $e) { throw new PHPUnit_Extensions_Database_Operation_Exception($this->operationName, $query, $args, $table, $e->getMessage()); } } } }
protected function createTableMetaData() { if ($this->tableMetaData === NULL) { $this->loadData(); // if some rows are in the table $columns = array(); if (isset($this->data[0])) { // get column names from data $columns = array_keys($this->data[0]); } else { // if no rows found, get column names from database $pdoStatement = $this->databaseConnection->getConnection()->prepare("SELECT column_name FROM information_schema.COLUMNS WHERE table_schema=:schema AND table_name=:table"); $pdoStatement->execute(array("table" => $this->tableName, "schema" => $this->databaseConnection->getSchema())); $columns = $pdoStatement->fetchAll(PDO::FETCH_COLUMN, 0); } // create metadata $this->tableMetaData = new PHPUnit_Extensions_Database_DataSet_DefaultTableMetaData($this->tableName, $columns); } }
/** * Disable foreign key constraint checking prior to running the stock PHPUnit * truncate operation and then re-enable it. * * @param \PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection * @param \PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet * @return void */ public function execute(\PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection, \PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet) { if (defined('WPINC')) { $connection->getConnection()->query("SET foreign_key_checks = 0"); } foreach ($dataSet->getReverseIterator() as $table) { /* @var $table PHPUnit_Extensions_Database_DataSet_ITable */ $query = "\n {$connection->getTruncateCommand()}\n {$connection->quoteSchemaObject($table->getTableMetaData()->getTableName())}\n "; if (defined('WPINC')) { $query .= ""; } else { $query .= " RESTART IDENTITY CASCADE"; } try { $connection->getConnection()->query($query); } catch (PDOException $e) { throw new PHPUnit_Extensions_Database_Operation_Exception('TRUNCATE', $query, array(), $table, $e->getMessage()); } } if (defined('WPINC')) { $connection->getConnection()->query("SET foreign_key_checks = 1"); } }
public function execute(PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection, PHPUnit_Extensions_Database_DataSet_IDataSet $dataSet) { $connection->getConnection()->query('SET ' . $this->_elem . '=' . $this->_value); }
public function decorateConnectionGetConnectionWith($returnValue) { $this->connectionMock->expects($this->any())->method('getConnection')->will($this->returnValue($returnValue)); }
public function testGetAdapterConvenienceMethod() { $this->_connectionMock->expects($this->once())->method('getConnection'); $this->getAdapter(); }
/** * Returns a list of table names for the database * * @return Array */ public function getTableNames() { return $this->databaseConnection->getMetaData()->getTableNames(); }
private function isMysql(PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection) { return $connection->getConnection()->getAttribute(PDO::ATTR_DRIVER_NAME) == 'mysql'; }
/** * Closes the specified connection. * * @param PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection */ public function closeConnection(PHPUnit_Extensions_Database_DB_IDatabaseConnection $connection) { $connection->close(); }
public function __construct(IDatabaseConnection $connection) { $this->connection = $connection; $this->setUpOperation = new \PHPUnit_Extensions_Database_Operation_Composite(array(new Operations\Truncate($connection->allowsCascading()), OperationFactory::INSERT())); $this->tearDownOperation = OperationFactory::NONE(); }