getReverseIterator() public method

Returns a reverse iterator for all table objects in the given dataset.
public getReverseIterator ( ) : PHPUnit_Extensions_Database_DataSet_ITableIterator
return PHPUnit_Extensions_Database_DataSet_ITableIterator
Example #1
0
    /**
     * @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()
                    );
                }
            }
        }
    }
Example #2
0
 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());
         }
     }
 }
Example #3
0
 /**
  *
  * @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 (!$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!");
     }
     foreach ($dataSet->getReverseIterator() as $table) {
         try {
             $tableName = $table->getTableMetaData()->getTableName();
             $this->_truncate($connection->getConnection(), $tableName);
         } catch (\Exception $e) {
             throw new \PHPUnit_Extensions_Database_Operation_Exception('TRUNCATE', 'TRUNCATE ' . $tableName . '', array(), $table, $e->getMessage());
         }
     }
 }
Example #4
0
 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());
         }
     }
 }
Example #5
0
 /**
  *
  * @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 (!$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!");
     }
     foreach ($dataSet->getReverseIterator() as $table) {
         try {
             $tableName = $table->getTableMetaData()->getTableName();
             $this->_truncate($connection->getConnection(), $tableName);
         } catch (Exception $e) {
             throw new PHPUnit_Extensions_Database_Operation_Exception('TRUNCATE', 'TRUNCATE ' . $tableName . '', array(), $table, $e->getMessage());
         }
     }
 }
Example #6
0
 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());
         }
     }
 }
Example #7
0
 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 {
             $this->disableForeignKeyChecksForMysql($connection);
             $connection->getConnection()->query($query);
             $this->enableForeignKeyChecksForMysql($connection);
         } catch (\Exception $e) {
             $this->enableForeignKeyChecksForMysql($connection);
             if ($e instanceof PDOException) {
                 throw new PHPUnit_Extensions_Database_Operation_Exception('TRUNCATE', $query, [], $table, $e->getMessage());
             }
             throw $e;
         }
     }
 }
 /**
  * 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");
     }
 }
Example #9
0
 /**
  * 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);
 }