From e651d15df594018eca7f626fb3ea39d085c5ce8a Mon Sep 17 00:00:00 2001 From: mark_story Date: Thu, 25 Jun 2015 22:21:23 -0400 Subject: [PATCH] Add tests for less greedy field parsing in SQLite. Refs #6887 --- .../Model/Datasource/Database/SqliteTest.php | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/lib/Cake/Test/Case/Model/Datasource/Database/SqliteTest.php b/lib/Cake/Test/Case/Model/Datasource/Database/SqliteTest.php index 48ca6851357..4d2c3898f8c 100644 --- a/lib/Cake/Test/Case/Model/Datasource/Database/SqliteTest.php +++ b/lib/Cake/Test/Case/Model/Datasource/Database/SqliteTest.php @@ -560,4 +560,30 @@ public function testFetchRowColumnParsing() { $this->assertEquals($expected, $result); } + /** + * Test parsing more complex field names. + * + * @return void + */ + public function testFetchColumnRowParsingMoreComplex() + { + $this->loadFixtures('User'); + $sql = 'SELECT + COUNT(*) AS User__count, + COUNT(CASE id WHEN 2 THEN 1 ELSE NULL END) as User__case, + AVG(CAST("User"."id" AS BIGINT)) AS User__bigint + FROM "users" AS "User" + WHERE "User"."id" > 0'; + $result = $this->Dbo->fetchRow($sql); + + $expected = array( + '0' => array( + 'User__count' => '4', + 'User__case' => '1', + 'User__bigint' => '2.5', + ), + ); + $this->assertEquals($expected, $result); + } + }