# Returns true if the query is a grouped query
def grouped?
- !group_by.blank?
+ !group_by_column.nil?
end
def group_by_column
- groupable_columns.detect {|c| c.name.to_s == group_by}
+ groupable_columns.detect {|c| c.groupable && c.name.to_s == group_by}
end
def group_by_statement
- group_by_column.groupable
+ group_by_column.try(:groupable)
end
def project_statement
q = Query.new
assert q.groupable_columns.detect {|c| c.is_a? QueryCustomFieldColumn}
end
+
+ def test_grouped_with_valid_column
+ q = Query.new(:group_by => 'status')
+ assert q.grouped?
+ assert_not_nil q.group_by_column
+ assert_equal :status, q.group_by_column.name
+ assert_not_nil q.group_by_statement
+ assert_equal 'status', q.group_by_statement
+ end
+
+ def test_grouped_with_invalid_column
+ q = Query.new(:group_by => 'foo')
+ assert !q.grouped?
+ assert_nil q.group_by_column
+ assert_nil q.group_by_statement
+ end
def test_default_sort
q = Query.new