/** * * @param PHPUnit_Extensions_Database_DataSet_ITable $table * @param int $rowNum * @return array */ protected function buildInsertValues(\PHPUnit_Extensions_Database_DataSet_ITable $table, $rowNum) { $values = array(); foreach ($table->getTableMetaData()->getColumns() as $columnName) { $values[$columnName] = $table->getValue($rowNum, $columnName); } return $values; }
protected function buildOperationArguments(PHPUnit_Extensions_Database_DataSet_ITableMetaData $databaseTableMetaData, PHPUnit_Extensions_Database_DataSet_ITable $table, $row) { $args = array(); foreach ($table->getTableMetaData()->getColumns() as $columnName) { $args[] = $table->getValue($row, $columnName); } return $args; }
/** * @param PHPUnit_Extensions_Database_DataSet_ITable $table */ protected function saveTable(PHPUnit_Extensions_Database_DataSet_ITable $table) { $rowCount = $table->getRowCount(); $this->startTable($table); for ($i = 0; $i < $rowCount; $i++) { $this->row($table->getRow($i), $table); } $this->endTable($table); }
/** * Override to save a table row. * * @param array $row * @param PHPUnit_Extensions_Database_DataSet_ITable $table */ protected function row(array $row, PHPUnit_Extensions_Database_DataSet_ITable $table) { fwrite($this->fh, "\t<{$table->getTableMetaData()->getTableName()}\n"); foreach ($table->getTableMetaData()->getColumns() as $columnName) { if (isset($row[$columnName])) { fwrite($this->fh, "\t\t{$columnName}=\"" . htmlspecialchars($row[$columnName]) . "\"\n"); } } fwrite($this->fh, "\t/>\n"); }
/** * * @param \PHPUnit_Extensions_Database_DataSet_ITable $table * @param int $rowNum * @return array */ protected function buildInsertValues(\PHPUnit_Extensions_Database_DataSet_ITable $table, $rowNum) { $values = array(); foreach ($table->getTableMetaData()->getColumns() as $columnName) { try { $values[$columnName] = $table->getValue($rowNum, $columnName); } catch (FixtureValueNotExistsException $doNothing) { } } return $values; }
/** * Adds the rows in the passed table to the current table. * * @param PHPUnit_Extensions_Database_DataSet_ITable $table */ public function addTableRows(PHPUnit_Extensions_Database_DataSet_ITable $table) { $tableColumns = $this->getTableMetaData()->getColumns(); $rowCount = $table->getRowCount(); for ($i = 0; $i < $rowCount; $i++) { $newRow = array(); foreach ($tableColumns as $columnName) { $newRow[$columnName] = $table->getValue($i, $columnName); } $this->addRow($newRow); } }
/** * Determines whether or not the given table matches the table used to * create this constraint. * * @param PHPUnit_Extensions_Database_DataSet_ITable $other * @return bool */ public function evaluate($other) { if ($other instanceof PHPUnit_Extensions_Database_DataSet_ITable) { try { $this->value->assertEquals($other); return TRUE; } catch (Exception $e) { $this->failure_reason = $e->getMessage(); return FALSE; } } else { throw new InvalidArgumentException("PHPUnit_Extensions_Database_DataSet_ITable expected"); } }
public function __toString() { $columns = $this->getTableMetaData()->getColumns(); $lineSeperator = str_repeat('+----------------------', count($columns)) . "+\n"; $lineLength = strlen($lineSeperator) - 1; $tableString = $lineSeperator; $tableString .= '| ' . str_pad($this->getTableMetaData()->getTableName(), $lineLength - 4, ' ', STR_PAD_RIGHT) . " |\n"; $tableString .= $lineSeperator; $tableString .= $this->rowToString($columns); $tableString .= $lineSeperator; $rowCount = $this->getRowCount(); for ($i = 0; $i < $rowCount; $i++) { $values = array(); foreach ($columns as $columnName) { if ($this->other) { try { if ($this->getValue($i, $columnName) != $this->other->getValue($i, $columnName)) { $values[] = sprintf('%s != actual %s', var_export($this->getValue($i, $columnName), TRUE), var_export($this->other->getValue($i, $columnName), TRUE)); } else { $values[] = $this->getValue($i, $columnName); } } catch (\InvalidArgumentException $ex) { $values[] = $this->getValue($i, $columnName) . ': no row'; } } else { $values[] = $this->getValue($i, $columnName); } } $tableString .= $this->rowToString($values) . $lineSeperator; } return ($this->other ? '(table diff enabled)' : '') . "\n" . $tableString . "\n"; }
/** * Evaluates the constraint for parameter $other. Returns TRUE if the * constraint is met, FALSE otherwise. * * This method can be overridden to implement the evaluation algorithm. * * @param mixed $other Value or object to evaluate. * @return bool */ protected function matches($other) { if (!$other instanceof PHPUnit_Extensions_Database_DataSet_ITable) { throw new InvalidArgumentException('PHPUnit_Extensions_Database_DataSet_ITable expected'); } return $this->value->matches($other); }
/** * Returns the value for the given column on the given row. * * @param int $row * @param int $column */ public function getValue($row, $column) { if (in_array($column, $this->getTableMetaData()->getColumns())) { return $this->originalTable->getValue($row, $column); } else { throw new InvalidArgumentException("The given row ({$row}) and column ({$column}) do not exist in table {$this->getTableMetaData()->getTableName()}"); } }
/** * Override to save a table row. * * @param array $row * @param PHPUnit_Extensions_Database_DataSet_ITable $table */ protected function row(array $row, PHPUnit_Extensions_Database_DataSet_ITable $table) { fwrite($this->fh, "\t\t<row>\n"); foreach ($table->getTableMetaData()->getColumns() as $columnName) { if (isset($row[$columnName])) { fwrite($this->fh, "\t\t\t<value>" . htmlspecialchars($row[$columnName]) . "</value>\n"); } else { fwrite($this->fh, "\t\t\t<null />\n"); } } fwrite($this->fh, "\t\t</row>\n"); }
/** * Loads data into local data table if it's not already loaded */ protected function loadData() { if ($this->data === NULL) { $data = array(); for ($row = 0; $row < $this->originalTable->getRowCount(); $row++) { $tRow = array(); foreach ($this->getTableMetaData()->getColumns() as $col) { $tRow[$col] = $this->getValue($row, $col); } $data[$row] = $tRow; } $this->data = $data; } }
/** * Asserts that the given table matches this table. * * @param PHPUnit_Extensions_Database_DataSet_ITable $other */ public function assertEquals(PHPUnit_Extensions_Database_DataSet_ITable $other) { $thisMetaData = $this->getTableMetaData(); $otherMetaData = $other->getTableMetaData(); $thisMetaData->assertEquals($otherMetaData); if ($this->getRowCount() != $other->getRowCount()) { throw new Exception("Expected row count of {$this->getRowCount()}, has a row count of {$other->getRowCount()}"); } $columns = $thisMetaData->getColumns(); for ($i = 0; $i < $this->getRowCount(); $i++) { foreach ($columns as $columnName) { if ($this->getValue($i, $columnName) != $other->getValue($i, $columnName)) { throw new Exception("Expected value of {$this->getValue($i, $columnName)} for row {$i} column {$columnName}, has a value of {$other->getValue($i, $columnName)}"); } } } return TRUE; }
/** * Returns a string representation of the constraint. * * @return string */ public function toString() { return sprintf('is equal to expected %s', $this->value->__toString()); }
/** * Asserts that a given table contains a given row * * @param array $expectedRow Row expected to find * @param PHPUnit_Extensions_Database_DataSet_ITable $table Table to look into * @param string $message Optional message */ public function assertTableContains(array $expectedRow, PHPUnit_Extensions_Database_DataSet_ITable $table, $message = '') { self::assertThat($table->assertContainsRow($expectedRow), self::isTrue(), $message); }
/** * Override to save a table row. * * @param array $row * @param PHPUnit_Extensions_Database_DataSet_ITable $table */ protected function row(array $row, PHPUnit_Extensions_Database_DataSet_ITable $table) { fwrite($this->fh, "\t" . '<row>' . "\n"); foreach ($table->getTableMetaData()->getColumns() as $columnName) { fwrite($this->fh, "\t\t" . '<field name="' . $columnName . '"'); if (isset($row[$columnName])) { fwrite($this->fh, '>' . htmlspecialchars($row[$columnName]) . '</field>' . "\n"); } else { fwrite($this->fh, ' xsi:nil="true" />' . "\n"); } } fwrite($this->fh, "\t" . '</row>' . "\n"); }
/** * Asserts that the given table matches this table. * * @param PHPUnit_Extensions_Database_DataSet_ITable $other */ public function matches(PHPUnit_Extensions_Database_DataSet_ITable $other) { $thisMetaData = $this->getTableMetaData(); $otherMetaData = $other->getTableMetaData(); if (!$thisMetaData->matches($otherMetaData) || $this->getRowCount() != $other->getRowCount()) { return FALSE; } $columns = $thisMetaData->getColumns(); $rowCount = $this->getRowCount(); for ($i = 0; $i < $rowCount; $i++) { foreach ($columns as $columnName) { if ($this->getValue($i, $columnName) != $other->getValue($i, $columnName)) { return FALSE; } } } return TRUE; }
public function matches(\PHPUnit_Extensions_Database_DataSet_ITable $other) { return $this->table->getName() == $other->getTable()->getTableName(); }