2017-04-18 07:38:53 +00:00
|
|
|
# encoding: utf-8
|
|
|
|
require 'test_helper'
|
|
|
|
|
|
|
|
class RoleValidateAgentLimit < ActiveSupport::TestCase
|
|
|
|
test 'role_validate_agent_limit' do
|
|
|
|
|
2017-10-20 11:32:52 +00:00
|
|
|
agent_max = User.with_permissions('ticket.agent').count
|
2017-04-18 07:38:53 +00:00
|
|
|
UserInfo.current_user_id = 1
|
2017-10-20 11:32:52 +00:00
|
|
|
Setting.set('system_agent_limit', agent_max + 2)
|
2017-04-18 07:38:53 +00:00
|
|
|
|
|
|
|
permission_ticket_agent = Permission.where(name: 'ticket.agent')
|
|
|
|
|
2017-10-20 11:32:52 +00:00
|
|
|
role_agent_limit_success = Role.create!(
|
2017-04-18 07:38:53 +00:00
|
|
|
name: 'agent-limit-test-success',
|
|
|
|
note: 'agent-limit-test-success Role.',
|
|
|
|
permissions: [],
|
2017-10-20 11:32:52 +00:00
|
|
|
active: true,
|
2017-04-18 07:38:53 +00:00
|
|
|
)
|
2017-10-20 11:32:52 +00:00
|
|
|
role_agent_limit_fail = Role.create!(
|
2017-04-18 07:38:53 +00:00
|
|
|
name: 'agent-limit-test-fail',
|
|
|
|
note: 'agent-limit-test-fail Role.',
|
|
|
|
permissions: [],
|
2017-10-20 11:32:52 +00:00
|
|
|
active: true,
|
2017-04-18 07:38:53 +00:00
|
|
|
)
|
|
|
|
|
2017-10-20 11:32:52 +00:00
|
|
|
user1 = User.create!(
|
|
|
|
firstname: 'Firstname',
|
|
|
|
lastname: 'Lastname',
|
|
|
|
email: 'some-agentlimit-role@example.com',
|
|
|
|
login: 'some-agentlimit-role@example.com',
|
|
|
|
roles: [role_agent_limit_success],
|
|
|
|
active: true,
|
2017-04-18 07:38:53 +00:00
|
|
|
)
|
2017-10-20 11:32:52 +00:00
|
|
|
user2 = User.create!(
|
|
|
|
firstname: 'Firstname1',
|
|
|
|
lastname: 'Lastname1',
|
|
|
|
email: 'some-agentlimit-role-1@example.com',
|
|
|
|
login: 'some-agentlimit-role-1@example.com',
|
|
|
|
roles: [role_agent_limit_success],
|
|
|
|
active: true,
|
2017-04-18 07:38:53 +00:00
|
|
|
)
|
2017-10-20 11:32:52 +00:00
|
|
|
user3 = User.create!(
|
2017-04-18 07:38:53 +00:00
|
|
|
firstname: 'Firstname2',
|
|
|
|
lastname: 'Lastname2',
|
2017-10-20 11:32:52 +00:00
|
|
|
email: 'some-agentlimit-role-2@example.com',
|
|
|
|
login: 'some-agentlimit-role-2@example.com',
|
2017-04-18 07:38:53 +00:00
|
|
|
roles: [role_agent_limit_fail],
|
2017-10-20 11:32:52 +00:00
|
|
|
active: true,
|
2017-04-18 07:38:53 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
role_agent_limit_success.permissions = permission_ticket_agent
|
2017-10-01 12:25:52 +00:00
|
|
|
assert_raises(Exceptions::UnprocessableEntity) do
|
2017-04-18 07:38:53 +00:00
|
|
|
role_agent_limit_fail.permissions = permission_ticket_agent
|
2017-10-01 12:25:52 +00:00
|
|
|
end
|
2017-04-18 07:38:53 +00:00
|
|
|
|
2017-10-20 11:32:52 +00:00
|
|
|
role_agent_limit_fail.active = false
|
|
|
|
role_agent_limit_fail.save!
|
|
|
|
|
|
|
|
role_agent_limit_fail.permissions = permission_ticket_agent
|
|
|
|
|
|
|
|
assert_raises(Exceptions::UnprocessableEntity) do
|
|
|
|
role_agent_limit_fail.active = true
|
|
|
|
role_agent_limit_fail.save!
|
|
|
|
end
|
|
|
|
|
|
|
|
user1.destroy!
|
|
|
|
user2.destroy!
|
|
|
|
user3.destroy!
|
|
|
|
role_agent_limit_success.destroy!
|
|
|
|
role_agent_limit_fail.destroy!
|
2017-04-18 07:38:53 +00:00
|
|
|
Setting.set('system_agent_limit', nil)
|
|
|
|
end
|
|
|
|
end
|