Browse Source

fixed unit test for sqlite

tags/2.0.0-beta
Carsten Brandt 11 years ago
parent
commit
937a55f4fa
  1. 31
      tests/unit/framework/db/sqlite/SqliteActiveRecordTest.php

31
tests/unit/framework/db/sqlite/SqliteActiveRecordTest.php

@ -1,6 +1,7 @@
<?php <?php
namespace yiiunit\framework\db\sqlite; namespace yiiunit\framework\db\sqlite;
use yiiunit\data\ar\Customer;
use yiiunit\framework\db\ActiveRecordTest; use yiiunit\framework\db\ActiveRecordTest;
/** /**
@ -10,4 +11,34 @@ use yiiunit\framework\db\ActiveRecordTest;
class SqliteActiveRecordTest extends ActiveRecordTest class SqliteActiveRecordTest extends ActiveRecordTest
{ {
protected $driverName = 'sqlite'; protected $driverName = 'sqlite';
/**
* Some PDO implementations(e.g. cubrid) do not support boolean values.
* Make sure this does not affect AR layer.
*/
public function testBooleanAttribute()
{
$customer = new Customer();
$customer->name = 'boolean customer';
$customer->email = 'mail@example.com';
$customer->status = true;
$customer->save(false);
$customer->refresh();
$this->assertEquals(1, $customer->status);
$customer->status = false;
$customer->save(false);
$customer->refresh();
// sqlite will return empty string here but it would still
// evaluate to false or null so we accept it
$this->assertTrue(0 == $customer->status);
$customers = Customer::find()->where(['status' => true])->all();
$this->assertEquals(2, count($customers));
$customers = Customer::find()->where(['status' => false])->all();
$this->assertEquals(1, count($customers));
}
} }

Loading…
Cancel
Save