##// 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 end
1278 end
1279 end
1279 end
1280
1280
1281 context "#statement" do
1281 def setup_member_of_group
1282 context "with 'member_of_group' filter" do
1282 Group.destroy_all # No fixtures
1283 setup do
1283 @user_in_group = User.generate!
1284 Group.destroy_all # No fixtures
1284 @second_user_in_group = User.generate!
1285 @user_in_group = User.generate!
1285 @user_in_group2 = User.generate!
1286 @second_user_in_group = User.generate!
1286 @user_not_in_group = User.generate!
1287 @user_in_group2 = User.generate!
1287
1288 @user_not_in_group = User.generate!
1288 @group = Group.generate!.reload
1289
1289 @group.users << @user_in_group
1290 @group = Group.generate!.reload
1290 @group.users << @second_user_in_group
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
1341
1291
1342 context "with 'assigned_to_role' filter" do
1292 @group2 = Group.generate!.reload
1343 setup do
1293 @group2.users << @user_in_group2
1344 @manager_role = Role.find_by_name('Manager')
1345 @developer_role = Role.find_by_name('Developer')
1346
1294
1347 @project = Project.generate!
1295 @query = IssueQuery.new(:name => '_')
1348 @manager = User.generate!
1296 end
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])
1355
1297
1356 @issue1 = Issue.generate!(:project => @project, :assigned_to_id => @manager.id)
1298 test "member_of_group filter should search assigned to for users in the group" do
1357 @issue2 = Issue.generate!(:project => @project, :assigned_to_id => @developer.id)
1299 setup_member_of_group
1358 @issue3 = Issue.generate!(:project => @project, :assigned_to_id => @boss.id)
1300 @query.add_filter('member_of_group', '=', [@group.id.to_s])
1359 @issue4 = Issue.generate!(:project => @project, :assigned_to_id => @guest.id)
1360 @issue5 = Issue.generate!(:project => @project)
1361 end
1362
1301
1363 should "search assigned to for users with the Role" do
1302 assert_query_statement_includes @query, "#{Issue.table_name}.assigned_to_id IN ('#{@user_in_group.id}','#{@second_user_in_group.id}','#{@group.id}')"
1364 @query = IssueQuery.new(:name => '_', :project => @project)
1303 assert_find_issues_with_query_is_successful @query
1365 @query.add_filter('assigned_to_role', '=', [@manager_role.id.to_s])
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
1315 test "member_of_group filter should search assigned to any group member (all)" do
1368 end
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
1319 # Only users in a group
1371 other_project = Project.generate!
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}')"
1372 User.add_to_project(@developer, other_project, @manager_role)
1321 assert_find_issues_with_query_is_successful @query
1322 end
1373
1323
1374 @query = IssueQuery.new(:name => '_', :project => @project)
1324 test "member_of_group filter should return an empty set with = empty group" do
1375 @query.add_filter('assigned_to_role', '=', [@manager_role.id.to_s])
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
1329 assert_equal [], find_issues_with_query(@query)
1378 end
1330 end
1379
1331
1380 should "return an empty set with empty role" do
1332 test "member_of_group filter should return issues with ! empty group" do
1381 @empty_role = Role.generate!
1333 setup_member_of_group
1382 @query = IssueQuery.new(:name => '_', :project => @project)
1334 @empty_group = Group.generate!
1383 @query.add_filter('assigned_to_role', '=', [@empty_role.id.to_s])
1335 @query.add_filter('member_of_group', '!', [@empty_group.id.to_s])
1384
1336
1385 assert_query_result [], @query
1337 assert_find_issues_with_query_is_successful @query
1386 end
1338 end
1387
1339
1388 should "search assigned to for users without the Role" do
1340 def setup_assigned_to_role
1389 @query = IssueQuery.new(:name => '_', :project => @project)
1341 @manager_role = Role.find_by_name('Manager')
1390 @query.add_filter('assigned_to_role', '!', [@manager_role.id.to_s])
1342 @developer_role = Role.find_by_name('Developer')
1391
1343
1392 assert_query_result [@issue2, @issue4, @issue5], @query
1344 @project = Project.generate!
1393 end
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
1353 @issue1 = Issue.generate!(:project => @project, :assigned_to_id => @manager.id)
1396 @query = IssueQuery.new(:name => '_', :project => @project)
1354 @issue2 = Issue.generate!(:project => @project, :assigned_to_id => @developer.id)
1397 @query.add_filter('assigned_to_role', '!*', [''])
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
1359 @query = IssueQuery.new(:name => '_', :project => @project)
1400 end
1360 end
1401
1361
1402 should "search assigned to for users assigned to any Role (all)" do
1362 test "assigned_to_role filter should search assigned to for users with the Role" do
1403 @query = IssueQuery.new(:name => '_', :project => @project)
1363 setup_assigned_to_role
1404 @query.add_filter('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
1366 assert_query_result [@issue1, @issue3], @query
1407 end
1367 end
1408
1368
1409 should "return issues with ! empty role" do
1369 test "assigned_to_role filter should search assigned to for users with the Role on the issue project" do
1410 @empty_role = Role.generate!
1370 setup_assigned_to_role
1411 @query = IssueQuery.new(:name => '_', :project => @project)
1371 other_project = Project.generate!
1412 @query.add_filter('assigned_to_role', '!', [@empty_role.id.to_s])
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
1375 assert_query_result [@issue1, @issue3], @query
1415 end
1376 end
1416 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 end
1413 end
1418
1414
1419 def test_query_column_should_accept_a_symbol_as_caption
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