suitepro/plugins/additionals/test/unit/project_test.rb

84 lines
2.4 KiB
Ruby

require File.expand_path '../../test_helper', __FILE__
class ProjectTest < Additionals::TestCase
fixtures :projects, :trackers, :issue_statuses, :issues,
:journals, :journal_details,
:enumerations, :users, :issue_categories,
:projects_trackers,
:custom_fields,
:custom_fields_projects,
:custom_fields_trackers,
:custom_values,
:roles,
:member_roles,
:members,
:enabled_modules,
:groups_users,
:repositories,
:workflows,
:attachments
def setup
User.current = nil
end
def test_assignable_users_amount
with_settings issue_group_assignment: '1' do
project = Project.find(5)
assert_equal project.assignable_users.count, project.assignable_users_and_groups.count
end
with_settings issue_group_assignment: '0' do
project = Project.find(5)
assert_not_equal project.assignable_users.count, project.assignable_users_and_groups.count
end
end
def test_visible_users
project = projects :projects_005
assert_equal 3, project.visible_users.count
end
def test_visible_principals
project = projects :projects_005
assert_equal 4, project.visible_principals.count
end
def test_destroy_project
User.current = users :users_001
@ecookbook = projects :projects_001
# dashboards
assert @ecookbook.dashboards.any?
@ecookbook.destroy
# make sure that the project non longer exists
assert_raise(ActiveRecord::RecordNotFound) { Project.find(@ecookbook.id) }
# make sure related data was removed
assert_nil Dashboard.where(project_id: @ecookbook.id).first
end
def test_users_by_role
users_by_role = Project.find(1).users_by_role
assert_kind_of Hash, users_by_role
role = Role.find(1)
assert_kind_of Array, users_by_role[role]
assert users_by_role[role].include?(User.find(2))
end
def test_users_by_role_with_hidden_role
Role.update_all users_visibility: 'members_of_visible_projects'
role = Role.find 2
role.hide = 1
role.save!
assert_equal 0, Role.where.not(users_visibility: 'members_of_visible_projects').count
assert role.hide
# User.current = User.find 2
assert_equal 1, Project.find(1).users_by_role.count
User.current = User.find 1
assert_equal 2, Project.find(1).users_by_role.count
end
end