From aa9258cbd162bfb317a0915647e7b85c9e50987d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Lorenzo=20Rodr=C3=ADguez?= Date: Mon, 11 Jan 2010 12:08:46 -0430 Subject: [PATCH] Adding test for DboSource::group() and virtual fields Closes #184 --- cake/libs/model/datasources/dbo_source.php | 1 - .../libs/model/datasources/dbo_source.test.php | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/cake/libs/model/datasources/dbo_source.php b/cake/libs/model/datasources/dbo_source.php index 8b39acb167f..88b673dfee1 100755 --- a/cake/libs/model/datasources/dbo_source.php +++ b/cake/libs/model/datasources/dbo_source.php @@ -2333,7 +2333,6 @@ function group($group, $model = null) { if (!is_array($group)) { $group = array($group); } - foreach($group as $index => $key) { if ($model->isVirtualField($key)) { $group[$index] = '(' . $model->getVirtualField($key) . ')'; diff --git a/cake/tests/cases/libs/model/datasources/dbo_source.test.php b/cake/tests/cases/libs/model/datasources/dbo_source.test.php index 8b5ee8b62c5..0cd9bc0f966 100644 --- a/cake/tests/cases/libs/model/datasources/dbo_source.test.php +++ b/cake/tests/cases/libs/model/datasources/dbo_source.test.php @@ -4240,5 +4240,23 @@ function testVirtualFieldsFetch() { )); $this->assertEqual($expected, $result); } + +/** + * test calculate to generate claculate statements on virtual fields + * + * @return void + */ + function testVirtualFieldsInGroup() { + $this->loadFixtures('Article'); + + $Article =& ClassRegistry::init('Article'); + $Article->virtualFields = array( + 'this_year' => 'YEAR(Article.created)' + ); + + $result = $this->db->group('this_year',$Article); + $expected = " GROUP BY (YEAR(`Article`.`created`))"; + $this->assertEqual($expected, $result); + } } ?> \ No newline at end of file