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
    /**
     * @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());
                }
            }
        }
    }
Example #3
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)
 {
     $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);
 }
Example #4
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)
 {
     $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);
 }
Example #5
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)
 {
     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());
             }
         }
     }
 }
Example #6
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);
 }