Commit b8896c4f authored by Benjamin Eberlei's avatar Benjamin Eberlei

Fix DBAL tests to make testsuite run on SQL Azure

parent 3fd222f7
......@@ -20,13 +20,14 @@ class DataAccessTest extends \Doctrine\Tests\DbalFunctionalTestCase
$table->addColumn('test_int', 'integer');
$table->addColumn('test_string', 'string');
$table->addColumn('test_datetime', 'datetime', array('notnull' => false));
$table->setPrimaryKey(array('test_int'));
$sm = $this->_conn->getSchemaManager();
$sm->createTable($table);
$this->_conn->insert('fetch_table', array('test_int' => 1, 'test_string' => 'foo', 'test_datetime' => '2010-01-01 10:10:10'));
} catch(\Exception $e) {
}
}
......@@ -121,6 +122,7 @@ class DataAccessTest extends \Doctrine\Tests\DbalFunctionalTestCase
$stmt->execute(array($paramInt, $paramStr));
$row = $stmt->fetch(\PDO::FETCH_ASSOC);
$this->assertTrue($row !== false);
$row = array_change_key_case($row, \CASE_LOWER);
$this->assertEquals(array('test_int' => 1, 'test_string' => 'foo'), $row);
}
......@@ -145,8 +147,10 @@ class DataAccessTest extends \Doctrine\Tests\DbalFunctionalTestCase
$sql = "SELECT test_int, test_string FROM fetch_table WHERE test_int = ? AND test_string = ?";
$row = $this->_conn->fetchAssoc($sql, array(1, 'foo'));
$this->assertTrue($row !== false);
$row = array_change_key_case($row, \CASE_LOWER);
$this->assertEquals(1, $row['test_int']);
$this->assertEquals('foo', $row['test_string']);
}
......@@ -196,7 +200,7 @@ class DataAccessTest extends \Doctrine\Tests\DbalFunctionalTestCase
$sql = 'INSERT INTO fetch_table (test_int, test_string, test_datetime) VALUES (?, ?, ?)';
$affectedRows = $this->_conn->executeUpdate($sql,
array(1 => 1, 2 => 'foo', 3 => $datetime),
array(1 => 50, 2 => 'foo', 3 => $datetime),
array(1 => PDO::PARAM_INT, 2 => PDO::PARAM_STR, 3 => Type::DATETIME)
);
......@@ -220,7 +224,7 @@ class DataAccessTest extends \Doctrine\Tests\DbalFunctionalTestCase
$this->assertEquals(1, $stmt->fetchColumn());
}
/**
* @group DBAL-78
*/
......@@ -229,17 +233,17 @@ class DataAccessTest extends \Doctrine\Tests\DbalFunctionalTestCase
for ($i = 100; $i < 110; $i++) {
$this->_conn->insert('fetch_table', array('test_int' => $i, 'test_string' => 'foo' . $i, 'test_datetime' => '2010-01-01 10:10:10'));
}
$stmt = $this->_conn->executeQuery('SELECT test_int FROM fetch_table WHERE test_int IN (?)',
array(array(100, 101, 102, 103, 104)), array(Connection::PARAM_INT_ARRAY));
$data = $stmt->fetchAll(PDO::FETCH_NUM);
$this->assertEquals(5, count($data));
$this->assertEquals(array(array(100), array(101), array(102), array(103), array(104)), $data);
$stmt = $this->_conn->executeQuery('SELECT test_int FROM fetch_table WHERE test_string IN (?)',
array(array('foo100', 'foo101', 'foo102', 'foo103', 'foo104')), array(Connection::PARAM_STR_ARRAY));
$data = $stmt->fetchAll(PDO::FETCH_NUM);
$this->assertEquals(5, count($data));
$this->assertEquals(array(array(100), array(101), array(102), array(103), array(104)), $data);
......
......@@ -27,7 +27,7 @@ class NamedParametersTest extends \Doctrine\Tests\DbalFunctionalTestCase
array('id'=>3,'foo'=>1,'bar'=>3),
)
),
array(
'SELECT * FROM ddc1372_foobar f WHERE f.foo = :foo AND f.bar IN (:bar)',
array('foo'=>1,'bar'=> array(1, 2, 3)),
......@@ -38,7 +38,7 @@ class NamedParametersTest extends \Doctrine\Tests\DbalFunctionalTestCase
array('id'=>3,'foo'=>1,'bar'=>3),
)
),
array(
'SELECT * FROM ddc1372_foobar f WHERE f.bar IN (:bar) AND f.foo = :foo',
array('foo'=>1,'bar'=> array(1, 2, 3)),
......@@ -49,7 +49,7 @@ class NamedParametersTest extends \Doctrine\Tests\DbalFunctionalTestCase
array('id'=>3,'foo'=>1,'bar'=>3),
)
),
array(
'SELECT * FROM ddc1372_foobar f WHERE f.bar IN (:bar) AND f.foo = :foo',
array('foo'=>1,'bar'=> array('1', '2', '3')),
......@@ -60,7 +60,7 @@ class NamedParametersTest extends \Doctrine\Tests\DbalFunctionalTestCase
array('id'=>3,'foo'=>1,'bar'=>3),
)
),
array(
'SELECT * FROM ddc1372_foobar f WHERE f.bar IN (:bar) AND f.foo IN (:foo)',
array('foo'=>array('1'),'bar'=> array(1, 2, 3,4)),
......@@ -72,7 +72,7 @@ class NamedParametersTest extends \Doctrine\Tests\DbalFunctionalTestCase
array('id'=>4,'foo'=>1,'bar'=>4),
)
),
array(
'SELECT * FROM ddc1372_foobar f WHERE f.bar IN (:bar) AND f.foo IN (:foo)',
array('foo'=>1,'bar'=> 2),
......@@ -81,7 +81,7 @@ class NamedParametersTest extends \Doctrine\Tests\DbalFunctionalTestCase
array('id'=>2,'foo'=>1,'bar'=>2),
)
),
array(
'SELECT * FROM ddc1372_foobar f WHERE f.bar = :arg AND f.foo <> :arg',
array('arg'=>'1'),
......@@ -90,7 +90,7 @@ class NamedParametersTest extends \Doctrine\Tests\DbalFunctionalTestCase
array('id'=>5,'foo'=>2,'bar'=>1),
)
),
array(
'SELECT * FROM ddc1372_foobar f WHERE f.bar NOT IN (:arg) AND f.foo IN (:arg)',
array('arg'=>array(1, 2)),
......@@ -100,10 +100,10 @@ class NamedParametersTest extends \Doctrine\Tests\DbalFunctionalTestCase
array('id'=>4,'foo'=>1,'bar'=>4),
)
),
);
}
public function setUp()
{
parent::setUp();
......@@ -114,6 +114,7 @@ class NamedParametersTest extends \Doctrine\Tests\DbalFunctionalTestCase
$table->addColumn('id', 'integer');
$table->addColumn('foo','string');
$table->addColumn('bar','string');
$table->setPrimaryKey(array('id'));
$sm = $this->_conn->getSchemaManager();
......@@ -148,7 +149,7 @@ class NamedParametersTest extends \Doctrine\Tests\DbalFunctionalTestCase
* @param string $query
* @param array $params
* @param array $types
* @param array $expected
* @param array $expected
*/
public function testTicket($query,$params,$types,$expected)
{
......
......@@ -15,16 +15,16 @@ require_once __DIR__ . '/../../TestInit.php';
class PortabilityTest extends \Doctrine\Tests\DbalFunctionalTestCase
{
static private $hasTable = false;
private $portableConnection;
public function tearDown()
{
if ($this->portableConnection) {
$this->portableConnection->close();
}
}
private function getPortableConnection($portabilityMode = \Doctrine\DBAL\Portability\Connection::PORTABILITY_ALL, $case = \PDO::CASE_LOWER)
{
if (!$this->portableConnection) {
......@@ -40,38 +40,39 @@ class PortabilityTest extends \Doctrine\Tests\DbalFunctionalTestCase
$table->addColumn('Test_Int', 'integer');
$table->addColumn('Test_String', 'string', array('fixed' => true, 'length' => 32));
$table->addColumn('Test_Null', 'string', array('notnull' => false));
$table->setPrimaryKey(array('Test_Int'));
$sm = $this->portableConnection->getSchemaManager();
$sm->createTable($table);
$this->portableConnection->insert('portability_table', array('Test_Int' => 1, 'Test_String' => 'foo', 'Test_Null' => ''));
$this->portableConnection->insert('portability_table', array('Test_Int' => 1, 'Test_String' => 'foo ', 'Test_Null' => null));
$this->portableConnection->insert('portability_table', array('Test_Int' => 2, 'Test_String' => 'foo ', 'Test_Null' => null));
} catch(\Exception $e) {
}
}
return $this->portableConnection;
}
public function testFullFetchMode()
{
$rows = $this->getPortableConnection()->fetchAll('SELECT * FROM portability_table');
$this->assertFetchResultRows($rows);
$stmt = $this->getPortableConnection()->query('SELECT * FROM portability_table');
while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
$this->assertFetchResultRow($row);
}
$stmt = $this->getPortableConnection()->prepare('SELECT * FROM portability_table');
$stmt->execute();
while ($row = $stmt->fetch(\PDO::FETCH_ASSOC)) {
$this->assertFetchResultRow($row);
}
}
public function assertFetchResultRows($rows)
{
$this->assertEquals(2, count($rows));
......@@ -79,10 +80,10 @@ class PortabilityTest extends \Doctrine\Tests\DbalFunctionalTestCase
$this->assertFetchResultRow($row);
}
}
public function assertFetchResultRow($row)
{
$this->assertEquals(1, $row['test_int']);
$this->assertTrue(in_array($row['test_int'], array(1, 2)), "Primary key test_int should either be 1 or 2.");
$this->assertArrayHasKey('test_string', $row, "Case should be lowered.");
$this->assertEquals(3, strlen($row['test_string']), "test_string should be rtrimed to length of three for CHAR(32) column.");
$this->assertNull($row['test_null']);
......
......@@ -24,6 +24,7 @@ class ResultCacheTest extends \Doctrine\Tests\DbalFunctionalTestCase
$table = new \Doctrine\DBAL\Schema\Table("caching");
$table->addColumn('test_int', 'integer');
$table->addColumn('test_string', 'string', array('notnull' => false));
$table->setPrimaryKey(array('test_int'));
$sm = $this->_conn->getSchemaManager();
$sm->createTable($table);
......
......@@ -33,6 +33,7 @@ class TemporaryTableTest extends \Doctrine\Tests\DbalFunctionalTestCase
$table = new Table("non_temporary");
$table->addColumn("id", "integer");
$table->setPrimaryKey(array('id'));
$this->_conn->getSchemaManager()->createTable($table);
$this->_conn->beginTransaction();
......@@ -64,6 +65,7 @@ class TemporaryTableTest extends \Doctrine\Tests\DbalFunctionalTestCase
$table = new Table("non_temporary");
$table->addColumn("id", "integer");
$table->setPrimaryKey(array('id'));
$this->_conn->getSchemaManager()->createTable($table);
$this->_conn->beginTransaction();
......@@ -77,7 +79,7 @@ class TemporaryTableTest extends \Doctrine\Tests\DbalFunctionalTestCase
try {
$this->_conn->exec($platform->getDropTemporaryTableSQL($tempTable));
} catch(\Exception $e) {
}
$rows = $this->_conn->fetchAll('SELECT * FROM non_temporary');
......
......@@ -6,7 +6,7 @@ use Doctrine\DBAL\Types\Type;
use Doctrine\Tests\DBAL\Mocks;
require_once __DIR__ . '/../../TestInit.php';
class DateTimeTest extends \Doctrine\Tests\DbalTestCase
{
protected
......@@ -24,7 +24,7 @@ class DateTimeTest extends \Doctrine\Tests\DbalTestCase
$date = new \DateTime('1985-09-01 10:10:10');
$expected = $date->format($this->_platform->getDateTimeTzFormatString());
$actual = is_string($this->_type->convertToDatabaseValue($date, $this->_platform));
$actual = $this->_type->convertToDatabaseValue($date, $this->_platform);
$this->assertEquals($expected, $actual);
}
......
......@@ -24,7 +24,7 @@ class DateTimeTzTest extends \Doctrine\Tests\DbalTestCase
$date = new \DateTime('1985-09-01 10:10:10');
$expected = $date->format($this->_platform->getDateTimeTzFormatString());
$actual = is_string($this->_type->convertToDatabaseValue($date, $this->_platform));
$actual = $this->_type->convertToDatabaseValue($date, $this->_platform);
$this->assertEquals($expected, $actual);
}
......@@ -36,7 +36,7 @@ class DateTimeTzTest extends \Doctrine\Tests\DbalTestCase
$this->assertInstanceOf('DateTime', $date);
$this->assertEquals('1985-09-01 00:00:00', $date->format('Y-m-d H:i:s'));
}
public function testInvalidDateFormatConversion()
{
$this->setExpectedException('Doctrine\DBAL\Types\ConversionException');
......
......@@ -27,7 +27,7 @@ class VarDateTimeTest extends \Doctrine\Tests\DbalTestCase
$date = new \DateTime('1985-09-01 10:10:10');
$expected = $date->format($this->_platform->getDateTimeTzFormatString());
$actual = is_string($this->_type->convertToDatabaseValue($date, $this->_platform));
$actual = $this->_type->convertToDatabaseValue($date, $this->_platform);
$this->assertEquals($expected, $actual);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment