/** * @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(); $dsIterator = $this->iteratorDirection == self::ITERATOR_TYPE_REVERSE ? $dataSet->getReverseIterator() : $dataSet->getIterator(); foreach ($dsIterator as $table) { /* @var $table PHPUnit_Extensions_Database_DataSet_ITable */ $databaseTableMetaData = $databaseDataSet->getTableMetaData($table->getTableMetaData()->getTableName()); $query = $this->buildOperationQuery($databaseTableMetaData, $table, $connection); if ($query === FALSE && $table->getRowCount() > 0) { throw new PHPUnit_Extensions_Database_Operation_Exception($this->operationName, '', array(), $table, "Rows requested for insert, but no columns provided!"); } $statement = $connection->getConnection()->prepare($query); $rowCount = $table->getRowCount(); for ($i = 0; $i < $rowCount; $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() ); } } } }
/** * @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) { if(!($connection instanceof Zend_Test_PHPUnit_Db_Connection)) { // require_once "Zend/Test/PHPUnit/Db/Exception.php"; throw new Zend_Test_PHPUnit_Db_Exception("Not a valid Zend_Test_PHPUnit_Db_Connection instance, ".get_class($connection)." given!"); } $databaseDataSet = $connection->createDataSet(); $dsIterator = $dataSet->getIterator(); foreach($dsIterator as $table) { $tableName = $table->getTableMetaData()->getTableName(); $db = $connection->getConnection(); for($i = 0; $i < $table->getRowCount(); $i++) { $values = $this->buildInsertValues($table, $i); try { $db->insert($tableName, $values); } catch (Exception $e) { throw new PHPUnit_Extensions_Database_Operation_Exception("INSERT", "INSERT INTO ".$tableName." [..]", $values, $table, $e->getMessage()); } } } }
/** * Creates an iterator over the tables in the data set. If $reverse is * true a reverse iterator will be returned. * * @param bool $reverse * @return PHPUnit_Extensions_Database_DataSet_ITableIterator */ protected function createIterator($reverse = FALSE) { $original_tables = $this->originalDataSet->getIterator($reverse); $new_tables = []; foreach ($original_tables as $table) { /* @var $table PHPUnit_Extensions_Database_DataSet_ITable */ $tableName = $table->getTableMetaData()->getTableName(); if (!in_array($tableName, $this->includeTables) && !empty($this->includeTables) || in_array($tableName, $this->excludeTables)) { continue; } elseif (!empty($this->excludeColumns[$tableName]) || !empty($this->includeColumns[$tableName])) { $new_table = new PHPUnit_Extensions_Database_DataSet_TableFilter($table); if (!empty($this->includeColumns[$tableName])) { $new_table->addIncludeColumns($this->includeColumns[$tableName]); } if (!empty($this->excludeColumns[$tableName])) { $new_table->addExcludeColumns($this->excludeColumns[$tableName]); } $new_tables[] = $new_table; } else { $new_tables[] = $table; } } return new PHPUnit_Extensions_Database_DataSet_DefaultTableIterator($new_tables); }
/** * Creates an iterator over the tables in the data set. If $reverse is * true a reverse iterator will be returned. * * @param bool $reverse * @return PHPUnit_Extensions_Database_DataSet_ITableIterator */ protected function createIterator($reverse = FALSE) { $original_tables = $this->originalDataSet->getIterator($reverse); $new_tables = array(); foreach ($original_tables as $table) { /* @var $table PHPUnit_Extensions_Database_DataSet_ITable */ $tableName = $table->getTableMetaData()->getTableName(); if (in_array($tableName, $this->excludeTables)) { continue; } elseif (array_key_exists($tableName, $this->excludeColumns)) { $new_tables[] = new PHPUnit_Extensions_Database_DataSet_TableFilter($table, $this->excludeColumns[$tableName]); } else { $new_tables[] = $table; } } return new PHPUnit_Extensions_Database_DataSet_DefaultTableIterator($new_tables); }
/** * @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) { if (!$connection instanceof \Zend\Test\PHPUnit\Db\Connection) { throw new \Zend\Test\PHPUnit\Db\Exception\InvalidArgumentException("Not a valid Zend_Test_PHPUnit_Db_Connection instance, " . get_class($connection) . " given!"); } $databaseDataSet = $connection->createDataSet(); $dsIterator = $dataSet->getIterator(); foreach ($dsIterator as $table) { $tableName = $table->getTableMetaData()->getTableName(); $db = $connection->getConnection(); for ($i = 0; $i < $table->getRowCount(); $i++) { $values = $this->buildInsertValues($table, $i); try { $db->insert($tableName, $values); } catch (\Exception $e) { throw new \PHPUnit_Extensions_Database_Operation_Exception("INSERT", "INSERT INTO " . $tableName . " [..]", $values, $table, $e->getMessage()); } } } }
/** * Creates an iterator over the tables in the data set. If $reverse is * true a reverse iterator will be returned. * * @param bool $reverse * @return PHPUnit_Extensions_Database_DataSet_ITableIterator */ protected function createIterator($reverse = FALSE) { $innerIterator = $reverse ? $this->dataSet->getReverseIterator() : $this->dataSet->getIterator(); return new PHPUnit_Extensions_Database_DataSet_ReplacementTableIterator($innerIterator, $this->fullReplacements, $this->subStrReplacements); }