diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2014-11-30 13:41:34 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2014-11-30 13:41:34 +0000 |
commit | e7518a9e0c191af82c1ff26082e5ece0dc4cf61b (patch) | |
tree | b1132e90a82afd3e1098d58f37977167ebbdb1ae /test | |
parent | dacae57a3873043c9ef45af1bf472923612ed5e2 (diff) | |
download | redmine-e7518a9e0c191af82c1ff26082e5ece0dc4cf61b.tar.gz redmine-e7518a9e0c191af82c1ff26082e5ece0dc4cf61b.zip |
Remove contexts in QueryTest.
git-svn-id: http://svn.redmine.org/redmine/trunk@13674 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'test')
-rw-r--r-- | test/unit/query_test.rb | 232 |
1 files changed, 114 insertions, 118 deletions
diff --git a/test/unit/query_test.rb b/test/unit/query_test.rb index b8bf2a015..4e174e848 100644 --- a/test/unit/query_test.rb +++ b/test/unit/query_test.rb @@ -1278,142 +1278,138 @@ class QueryTest < ActiveSupport::TestCase end end - context "#statement" do - context "with 'member_of_group' filter" do - setup do - Group.destroy_all # No fixtures - @user_in_group = User.generate! - @second_user_in_group = User.generate! - @user_in_group2 = User.generate! - @user_not_in_group = User.generate! - - @group = Group.generate!.reload - @group.users << @user_in_group - @group.users << @second_user_in_group - - @group2 = Group.generate!.reload - @group2.users << @user_in_group2 - - end - - should "search assigned to for users in the group" do - @query = IssueQuery.new(:name => '_') - @query.add_filter('member_of_group', '=', [@group.id.to_s]) - - assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@group.id}')" - assert_find_issues_with_query_is_successful @query - end - - should "search not assigned to any group member (none)" do - @query = IssueQuery.new(:name => '_') - @query.add_filter('member_of_group', '!*', ['']) - - # Users not in a group - assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IS NULL OR #{Issue.table_name}.assigned_to_id NOT IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@user_in_group2.id}','#{@group.id}','#{@group2.id}')" - assert_find_issues_with_query_is_successful @query - end - - should "search assigned to any group member (all)" do - @query = IssueQuery.new(:name => '_') - @query.add_filter('member_of_group', '*', ['']) - - # Only users in a group - assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@user_in_group2.id}','#{@group.id}','#{@group2.id}')" - assert_find_issues_with_query_is_successful @query - end - - should "return an empty set with = empty group" do - @empty_group = Group.generate! - @query = IssueQuery.new(:name => '_') - @query.add_filter('member_of_group', '=', [@empty_group.id.to_s]) - - assert_equal [], find_issues_with_query(@query) - end - - should "return issues with ! empty group" do - @empty_group = Group.generate! - @query = IssueQuery.new(:name => '_') - @query.add_filter('member_of_group', '!', [@empty_group.id.to_s]) - - assert_find_issues_with_query_is_successful @query - end - end + def setup_member_of_group + Group.destroy_all # No fixtures + @user_in_group = User.generate! + @second_user_in_group = User.generate! + @user_in_group2 = User.generate! + @user_not_in_group = User.generate! + + @group = Group.generate!.reload + @group.users << @user_in_group + @group.users << @second_user_in_group - context "with 'assigned_to_role' filter" do - setup do - @manager_role = Role.find_by_name('Manager') - @developer_role = Role.find_by_name('Developer') + @group2 = Group.generate!.reload + @group2.users << @user_in_group2 - @project = Project.generate! - @manager = User.generate! - @developer = User.generate! - @boss = User.generate! - @guest = User.generate! - User.add_to_project(@manager, @project, @manager_role) - User.add_to_project(@developer, @project, @developer_role) - User.add_to_project(@boss, @project, [@manager_role, @developer_role]) + @query = IssueQuery.new(:name => '_') + end - @issue1 = Issue.generate!(:project => @project, :assigned_to_id => @manager.id) - @issue2 = Issue.generate!(:project => @project, :assigned_to_id => @developer.id) - @issue3 = Issue.generate!(:project => @project, :assigned_to_id => @boss.id) - @issue4 = Issue.generate!(:project => @project, :assigned_to_id => @guest.id) - @issue5 = Issue.generate!(:project => @project) - end + test "member_of_group filter should search assigned to for users in the group" do + setup_member_of_group + @query.add_filter('member_of_group', '=', [@group.id.to_s]) - should "search assigned to for users with the Role" do - @query = IssueQuery.new(:name => '_', :project => @project) - @query.add_filter('assigned_to_role', '=', [@manager_role.id.to_s]) + assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@group.id}')" + assert_find_issues_with_query_is_successful @query + end + + test "member_of_group filter should search not assigned to any group member (none)" do + setup_member_of_group + @query.add_filter('member_of_group', '!*', ['']) + + # Users not in a group + assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IS NULL OR #{Issue.table_name}.assigned_to_id NOT IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@user_in_group2.id}','#{@group.id}','#{@group2.id}')" + assert_find_issues_with_query_is_successful @query + end - assert_query_result [@issue1, @issue3], @query - end + test "member_of_group filter should search assigned to any group member (all)" do + setup_member_of_group + @query.add_filter('member_of_group', '*', ['']) - should "search assigned to for users with the Role on the issue project" do - other_project = Project.generate! - User.add_to_project(@developer, other_project, @manager_role) + # Only users in a group + assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@user_in_group2.id}','#{@group.id}','#{@group2.id}')" + assert_find_issues_with_query_is_successful @query + end - @query = IssueQuery.new(:name => '_', :project => @project) - @query.add_filter('assigned_to_role', '=', [@manager_role.id.to_s]) + test "member_of_group filter should return an empty set with = empty group" do + setup_member_of_group + @empty_group = Group.generate! + @query.add_filter('member_of_group', '=', [@empty_group.id.to_s]) - assert_query_result [@issue1, @issue3], @query - end + assert_equal [], find_issues_with_query(@query) + end - should "return an empty set with empty role" do - @empty_role = Role.generate! - @query = IssueQuery.new(:name => '_', :project => @project) - @query.add_filter('assigned_to_role', '=', [@empty_role.id.to_s]) + test "member_of_group filter should return issues with ! empty group" do + setup_member_of_group + @empty_group = Group.generate! + @query.add_filter('member_of_group', '!', [@empty_group.id.to_s]) - assert_query_result [], @query - end + assert_find_issues_with_query_is_successful @query + end - should "search assigned to for users without the Role" do - @query = IssueQuery.new(:name => '_', :project => @project) - @query.add_filter('assigned_to_role', '!', [@manager_role.id.to_s]) + def setup_assigned_to_role + @manager_role = Role.find_by_name('Manager') + @developer_role = Role.find_by_name('Developer') - assert_query_result [@issue2, @issue4, @issue5], @query - end + @project = Project.generate! + @manager = User.generate! + @developer = User.generate! + @boss = User.generate! + @guest = User.generate! + User.add_to_project(@manager, @project, @manager_role) + User.add_to_project(@developer, @project, @developer_role) + User.add_to_project(@boss, @project, [@manager_role, @developer_role]) - should "search assigned to for users not assigned to any Role (none)" do - @query = IssueQuery.new(:name => '_', :project => @project) - @query.add_filter('assigned_to_role', '!*', ['']) + @issue1 = Issue.generate!(:project => @project, :assigned_to_id => @manager.id) + @issue2 = Issue.generate!(:project => @project, :assigned_to_id => @developer.id) + @issue3 = Issue.generate!(:project => @project, :assigned_to_id => @boss.id) + @issue4 = Issue.generate!(:project => @project, :assigned_to_id => @guest.id) + @issue5 = Issue.generate!(:project => @project) - assert_query_result [@issue4, @issue5], @query - end + @query = IssueQuery.new(:name => '_', :project => @project) + end - should "search assigned to for users assigned to any Role (all)" do - @query = IssueQuery.new(:name => '_', :project => @project) - @query.add_filter('assigned_to_role', '*', ['']) + test "assigned_to_role filter should search assigned to for users with the Role" do + setup_assigned_to_role + @query.add_filter('assigned_to_role', '=', [@manager_role.id.to_s]) - assert_query_result [@issue1, @issue2, @issue3], @query - end + assert_query_result [@issue1, @issue3], @query + end - should "return issues with ! empty role" do - @empty_role = Role.generate! - @query = IssueQuery.new(:name => '_', :project => @project) - @query.add_filter('assigned_to_role', '!', [@empty_role.id.to_s]) + test "assigned_to_role filter should search assigned to for users with the Role on the issue project" do + setup_assigned_to_role + other_project = Project.generate! + User.add_to_project(@developer, other_project, @manager_role) + @query.add_filter('assigned_to_role', '=', [@manager_role.id.to_s]) - assert_query_result [@issue1, @issue2, @issue3, @issue4, @issue5], @query - end - end + assert_query_result [@issue1, @issue3], @query + end + + test "assigned_to_role filter should return an empty set with empty role" do + setup_assigned_to_role + @empty_role = Role.generate! + @query.add_filter('assigned_to_role', '=', [@empty_role.id.to_s]) + + assert_query_result [], @query + end + + test "assigned_to_role filter should search assigned to for users without the Role" do + setup_assigned_to_role + @query.add_filter('assigned_to_role', '!', [@manager_role.id.to_s]) + + assert_query_result [@issue2, @issue4, @issue5], @query + end + + test "assigned_to_role filter should search assigned to for users not assigned to any Role (none)" do + setup_assigned_to_role + @query.add_filter('assigned_to_role', '!*', ['']) + + assert_query_result [@issue4, @issue5], @query + end + + test "assigned_to_role filter should search assigned to for users assigned to any Role (all)" do + setup_assigned_to_role + @query.add_filter('assigned_to_role', '*', ['']) + + assert_query_result [@issue1, @issue2, @issue3], @query + end + + test "assigned_to_role filter should return issues with ! empty role" do + setup_assigned_to_role + @empty_role = Role.generate! + @query.add_filter('assigned_to_role', '!', [@empty_role.id.to_s]) + + assert_query_result [@issue1, @issue2, @issue3, @issue4, @issue5], @query end def test_query_column_should_accept_a_symbol_as_caption |