##// END OF EJS Templates
Remove contexts in QueryTest....
Jean-Philippe Lang -
r13292:e7518a9e0c19
parent child
Show More
@@ -1278,142 +1278,138 class QueryTest < ActiveSupport::TestCase
1278 1278 end
1279 1279 end
1280 1280
1281 context "#statement" do
1282 context "with 'member_of_group' filter" do
1283 setup do
1284 Group.destroy_all # No fixtures
1285 @user_in_group = User.generate!
1286 @second_user_in_group = User.generate!
1287 @user_in_group2 = User.generate!
1288 @user_not_in_group = User.generate!
1289
1290 @group = Group.generate!.reload
1291 @group.users << @user_in_group
1292 @group.users << @second_user_in_group
1293
1294 @group2 = Group.generate!.reload
1295 @group2.users << @user_in_group2
1296
1297 end
1298
1299 should "search assigned to for users in the group" do
1300 @query = IssueQuery.new(:name => '_')
1301 @query.add_filter('member_of_group', '=', [@group.id.to_s])
1302
1303 assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@group.id}')"
1304 assert_find_issues_with_query_is_successful @query
1305 end
1306
1307 should "search not assigned to any group member (none)" do
1308 @query = IssueQuery.new(:name => '_')
1309 @query.add_filter('member_of_group', '!*', [''])
1310
1311 # Users not in a group
1312 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}')"
1313 assert_find_issues_with_query_is_successful @query
1314 end
1315
1316 should "search assigned to any group member (all)" do
1317 @query = IssueQuery.new(:name => '_')
1318 @query.add_filter('member_of_group', '*', [''])
1319
1320 # Only users in a group
1321 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}')"
1322 assert_find_issues_with_query_is_successful @query
1323 end
1324
1325 should "return an empty set with = empty group" do
1326 @empty_group = Group.generate!
1327 @query = IssueQuery.new(:name => '_')
1328 @query.add_filter('member_of_group', '=', [@empty_group.id.to_s])
1329
1330 assert_equal [], find_issues_with_query(@query)
1331 end
1332
1333 should "return issues with ! empty group" do
1334 @empty_group = Group.generate!
1335 @query = IssueQuery.new(:name => '_')
1336 @query.add_filter('member_of_group', '!', [@empty_group.id.to_s])
1337
1338 assert_find_issues_with_query_is_successful @query
1339 end
1340 end
1281 def setup_member_of_group
1282 Group.destroy_all # No fixtures
1283 @user_in_group = User.generate!
1284 @second_user_in_group = User.generate!
1285 @user_in_group2 = User.generate!
1286 @user_not_in_group = User.generate!
1287
1288 @group = Group.generate!.reload
1289 @group.users << @user_in_group
1290 @group.users << @second_user_in_group
1341 1291
1342 context "with 'assigned_to_role' filter" do
1343 setup do
1344 @manager_role = Role.find_by_name('Manager')
1345 @developer_role = Role.find_by_name('Developer')
1292 @group2 = Group.generate!.reload
1293 @group2.users << @user_in_group2
1346 1294
1347 @project = Project.generate!
1348 @manager = User.generate!
1349 @developer = User.generate!
1350 @boss = User.generate!
1351 @guest = User.generate!
1352 User.add_to_project(@manager, @project, @manager_role)
1353 User.add_to_project(@developer, @project, @developer_role)
1354 User.add_to_project(@boss, @project, [@manager_role, @developer_role])
1295 @query = IssueQuery.new(:name => '_')
1296 end
1355 1297
1356 @issue1 = Issue.generate!(:project => @project, :assigned_to_id => @manager.id)
1357 @issue2 = Issue.generate!(:project => @project, :assigned_to_id => @developer.id)
1358 @issue3 = Issue.generate!(:project => @project, :assigned_to_id => @boss.id)
1359 @issue4 = Issue.generate!(:project => @project, :assigned_to_id => @guest.id)
1360 @issue5 = Issue.generate!(:project => @project)
1361 end
1298 test "member_of_group filter should search assigned to for users in the group" do
1299 setup_member_of_group
1300 @query.add_filter('member_of_group', '=', [@group.id.to_s])
1362 1301
1363 should "search assigned to for users with the Role" do
1364 @query = IssueQuery.new(:name => '_', :project => @project)
1365 @query.add_filter('assigned_to_role', '=', [@manager_role.id.to_s])
1302 assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@group.id}')"
1303 assert_find_issues_with_query_is_successful @query
1304 end
1305
1306 test "member_of_group filter should search not assigned to any group member (none)" do
1307 setup_member_of_group
1308 @query.add_filter('member_of_group', '!*', [''])
1309
1310 # Users not in a group
1311 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}')"
1312 assert_find_issues_with_query_is_successful @query
1313 end
1366 1314
1367 assert_query_result [@issue1, @issue3], @query
1368 end
1315 test "member_of_group filter should search assigned to any group member (all)" do
1316 setup_member_of_group
1317 @query.add_filter('member_of_group', '*', [''])
1369 1318
1370 should "search assigned to for users with the Role on the issue project" do
1371 other_project = Project.generate!
1372 User.add_to_project(@developer, other_project, @manager_role)
1319 # Only users in a group
1320 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}')"
1321 assert_find_issues_with_query_is_successful @query
1322 end
1373 1323
1374 @query = IssueQuery.new(:name => '_', :project => @project)
1375 @query.add_filter('assigned_to_role', '=', [@manager_role.id.to_s])
1324 test "member_of_group filter should return an empty set with = empty group" do
1325 setup_member_of_group
1326 @empty_group = Group.generate!
1327 @query.add_filter('member_of_group', '=', [@empty_group.id.to_s])
1376 1328
1377 assert_query_result [@issue1, @issue3], @query
1378 end
1329 assert_equal [], find_issues_with_query(@query)
1330 end
1379 1331
1380 should "return an empty set with empty role" do
1381 @empty_role = Role.generate!
1382 @query = IssueQuery.new(:name => '_', :project => @project)
1383 @query.add_filter('assigned_to_role', '=', [@empty_role.id.to_s])
1332 test "member_of_group filter should return issues with ! empty group" do
1333 setup_member_of_group
1334 @empty_group = Group.generate!
1335 @query.add_filter('member_of_group', '!', [@empty_group.id.to_s])
1384 1336
1385 assert_query_result [], @query
1386 end
1337 assert_find_issues_with_query_is_successful @query
1338 end
1387 1339
1388 should "search assigned to for users without the Role" do
1389 @query = IssueQuery.new(:name => '_', :project => @project)
1390 @query.add_filter('assigned_to_role', '!', [@manager_role.id.to_s])
1340 def setup_assigned_to_role
1341 @manager_role = Role.find_by_name('Manager')
1342 @developer_role = Role.find_by_name('Developer')
1391 1343
1392 assert_query_result [@issue2, @issue4, @issue5], @query
1393 end
1344 @project = Project.generate!
1345 @manager = User.generate!
1346 @developer = User.generate!
1347 @boss = User.generate!
1348 @guest = User.generate!
1349 User.add_to_project(@manager, @project, @manager_role)
1350 User.add_to_project(@developer, @project, @developer_role)
1351 User.add_to_project(@boss, @project, [@manager_role, @developer_role])
1394 1352
1395 should "search assigned to for users not assigned to any Role (none)" do
1396 @query = IssueQuery.new(:name => '_', :project => @project)
1397 @query.add_filter('assigned_to_role', '!*', [''])
1353 @issue1 = Issue.generate!(:project => @project, :assigned_to_id => @manager.id)
1354 @issue2 = Issue.generate!(:project => @project, :assigned_to_id => @developer.id)
1355 @issue3 = Issue.generate!(:project => @project, :assigned_to_id => @boss.id)
1356 @issue4 = Issue.generate!(:project => @project, :assigned_to_id => @guest.id)
1357 @issue5 = Issue.generate!(:project => @project)
1398 1358
1399 assert_query_result [@issue4, @issue5], @query
1400 end
1359 @query = IssueQuery.new(:name => '_', :project => @project)
1360 end
1401 1361
1402 should "search assigned to for users assigned to any Role (all)" do
1403 @query = IssueQuery.new(:name => '_', :project => @project)
1404 @query.add_filter('assigned_to_role', '*', [''])
1362 test "assigned_to_role filter should search assigned to for users with the Role" do
1363 setup_assigned_to_role
1364 @query.add_filter('assigned_to_role', '=', [@manager_role.id.to_s])
1405 1365
1406 assert_query_result [@issue1, @issue2, @issue3], @query
1407 end
1366 assert_query_result [@issue1, @issue3], @query
1367 end
1408 1368
1409 should "return issues with ! empty role" do
1410 @empty_role = Role.generate!
1411 @query = IssueQuery.new(:name => '_', :project => @project)
1412 @query.add_filter('assigned_to_role', '!', [@empty_role.id.to_s])
1369 test "assigned_to_role filter should search assigned to for users with the Role on the issue project" do
1370 setup_assigned_to_role
1371 other_project = Project.generate!
1372 User.add_to_project(@developer, other_project, @manager_role)
1373 @query.add_filter('assigned_to_role', '=', [@manager_role.id.to_s])
1413 1374
1414 assert_query_result [@issue1, @issue2, @issue3, @issue4, @issue5], @query
1415 end
1416 end
1375 assert_query_result [@issue1, @issue3], @query
1376 end
1377
1378 test "assigned_to_role filter should return an empty set with empty role" do
1379 setup_assigned_to_role
1380 @empty_role = Role.generate!
1381 @query.add_filter('assigned_to_role', '=', [@empty_role.id.to_s])
1382
1383 assert_query_result [], @query
1384 end
1385
1386 test "assigned_to_role filter should search assigned to for users without the Role" do
1387 setup_assigned_to_role
1388 @query.add_filter('assigned_to_role', '!', [@manager_role.id.to_s])
1389
1390 assert_query_result [@issue2, @issue4, @issue5], @query
1391 end
1392
1393 test "assigned_to_role filter should search assigned to for users not assigned to any Role (none)" do
1394 setup_assigned_to_role
1395 @query.add_filter('assigned_to_role', '!*', [''])
1396
1397 assert_query_result [@issue4, @issue5], @query
1398 end
1399
1400 test "assigned_to_role filter should search assigned to for users assigned to any Role (all)" do
1401 setup_assigned_to_role
1402 @query.add_filter('assigned_to_role', '*', [''])
1403
1404 assert_query_result [@issue1, @issue2, @issue3], @query
1405 end
1406
1407 test "assigned_to_role filter should return issues with ! empty role" do
1408 setup_assigned_to_role
1409 @empty_role = Role.generate!
1410 @query.add_filter('assigned_to_role', '!', [@empty_role.id.to_s])
1411
1412 assert_query_result [@issue1, @issue2, @issue3, @issue4, @issue5], @query
1417 1413 end
1418 1414
1419 1415 def test_query_column_should_accept_a_symbol_as_caption
General Comments 0
You need to be logged in to leave comments. Login now