Made database retrieval conscious about data types
This commit is contained in:
parent
a74b133cfc
commit
76d544572c
2 changed files with 27 additions and 2 deletions
|
@ -48,11 +48,29 @@ class Assert
|
||||||
}
|
}
|
||||||
|
|
||||||
public function areEqual($expected, $actual)
|
public function areEqual($expected, $actual)
|
||||||
|
{
|
||||||
|
if ($expected !== $actual)
|
||||||
|
$this->fail('Assertion failed. Expected: "' . $this->dumpVar($expected) . '", got: "' . $this->dumpVar($actual) . '"');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function areEquivalent($expected, $actual)
|
||||||
{
|
{
|
||||||
if ($expected != $actual)
|
if ($expected != $actual)
|
||||||
$this->fail('Assertion failed. Expected: "' . $this->dumpVar($expected) . '", got: "' . $this->dumpVar($actual) . '"');
|
$this->fail('Assertion failed. Expected: "' . $this->dumpVar($expected) . '", got: "' . $this->dumpVar($actual) . '"');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function areNotEqual($expected, $actual)
|
||||||
|
{
|
||||||
|
if ($expected === $actual)
|
||||||
|
$this->fail('Assertion failed. Specified objects are equal');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function areNotEquivalent($expected, $actual)
|
||||||
|
{
|
||||||
|
if ($expected == $actual)
|
||||||
|
$this->fail('Assertion failed. Specified objects are equivalent');
|
||||||
|
}
|
||||||
|
|
||||||
public function dumpVar($var)
|
public function dumpVar($var)
|
||||||
{
|
{
|
||||||
ob_start();
|
ob_start();
|
||||||
|
|
|
@ -59,7 +59,7 @@ abstract class AbstractCrudModel implements IModel
|
||||||
$stmt = new Sql\SelectStatement();
|
$stmt = new Sql\SelectStatement();
|
||||||
$stmt->setColumn(new Sql\AliasFunctor(new Sql\CountFunctor('1'), 'count'));
|
$stmt->setColumn(new Sql\AliasFunctor(new Sql\CountFunctor('1'), 'count'));
|
||||||
$stmt->setTable(static::getTableName());
|
$stmt->setTable(static::getTableName());
|
||||||
return Database::fetchOne($stmt)['count'];
|
return (int) Database::fetchOne($stmt)['count'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -75,6 +75,13 @@ abstract class AbstractCrudModel implements IModel
|
||||||
public static function convertRow($row)
|
public static function convertRow($row)
|
||||||
{
|
{
|
||||||
$entity = static::spawn();
|
$entity = static::spawn();
|
||||||
|
|
||||||
|
//todo: force this to be implemented by children
|
||||||
|
//instead of providing clumsy generic solution
|
||||||
|
|
||||||
|
if (isset($row['id']))
|
||||||
|
$row['id'] = (int) $row['id'];
|
||||||
|
|
||||||
foreach ($row as $key => $val)
|
foreach ($row as $key => $val)
|
||||||
{
|
{
|
||||||
if (isset(self::$keyCache[$key]))
|
if (isset(self::$keyCache[$key]))
|
||||||
|
@ -132,7 +139,7 @@ abstract class AbstractCrudModel implements IModel
|
||||||
$stmt->setColumn($key, new Sql\Binding($val));
|
$stmt->setColumn($key, new Sql\Binding($val));
|
||||||
}
|
}
|
||||||
Database::exec($stmt);
|
Database::exec($stmt);
|
||||||
$entity->id = Database::lastInsertId();
|
$entity->id = (int) Database::lastInsertId();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue