'self', 'group_function' => 'count', 'sort_dir' => 'a', 'table_alias' => 'calls', 'table_key' => 'self' ), 'calls__count ASC' ), array( array( 'column_function' => 'avg', 'column_key' => 'self:duration_hours', 'group_function' => 'avg', 'name' => 'duration_hours', 'sort_dir' => 'a', 'table_alias' => 'calls', 'table_key' => 'self', 'type' => 'int' ), 'calls_avg_duration_hours ASC' ), array( array( 'column_function' => 'max', 'column_key' => 'self:duration_hours', 'group_function' => 'max', 'name' => 'duration_hours', 'sort_dir' => 'a', 'table_alias' => 'calls', 'table_key' => 'self', 'type' => 'int' ), 'calls_max_duration_hours ASC' ), array( array( 'column_function' => 'min', 'column_key' => 'self:duration_hours', 'group_function' => 'min', 'name' => 'duration_hours', 'sort_dir' => 'a', 'table_alias' => 'calls', 'table_key' => 'self', 'type' => 'int' ), 'calls_min_duration_hours ASC' ), array( array( 'column_function' => 'sum', 'column_key' => 'self:duration_hours', 'group_function' => 'sum', 'name' => 'duration_hours', 'sort_dir' => 'a', 'table_alias' => 'calls', 'table_key' => 'self', 'type' => 'int' ), 'calls_sum_duration_hours ASC' ) ); } /** * Test asserts that for group functions order by is alias instead of table.field * * @dataProvider dataProvider * @group 57902 * @return void */ public function testQueryOrderBy($layout_def, $expected) { $layoutManager = new LayoutManager(); $sugarWidgetReportField = new SugarWidgetReportField($layoutManager); $actual = $sugarWidgetReportField->queryOrderBy($layout_def); $this->assertEquals($expected, $actual, 'ORDER BY string is incorrect'); } }