role_validate_agent_limit_test.rb 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. # encoding: utf-8
  2. require 'test_helper'
  3. class RoleValidateAgentLimit < ActiveSupport::TestCase
  4. test 'role_validate_agent_limit' do
  5. agent_max = User.with_permissions('ticket.agent').count
  6. UserInfo.current_user_id = 1
  7. Setting.set('system_agent_limit', agent_max + 2)
  8. permission_ticket_agent = Permission.where(name: 'ticket.agent')
  9. role_agent_limit_success = Role.create!(
  10. name: 'agent-limit-test-success',
  11. note: 'agent-limit-test-success Role.',
  12. permissions: [],
  13. active: true,
  14. )
  15. role_agent_limit_fail = Role.create!(
  16. name: 'agent-limit-test-fail',
  17. note: 'agent-limit-test-fail Role.',
  18. permissions: [],
  19. active: true,
  20. )
  21. user1 = User.create!(
  22. firstname: 'Firstname',
  23. lastname: 'Lastname',
  24. email: 'some-agentlimit-role@example.com',
  25. login: 'some-agentlimit-role@example.com',
  26. roles: [role_agent_limit_success],
  27. active: true,
  28. )
  29. user2 = User.create!(
  30. firstname: 'Firstname1',
  31. lastname: 'Lastname1',
  32. email: 'some-agentlimit-role-1@example.com',
  33. login: 'some-agentlimit-role-1@example.com',
  34. roles: [role_agent_limit_success],
  35. active: true,
  36. )
  37. user3 = User.create!(
  38. firstname: 'Firstname2',
  39. lastname: 'Lastname2',
  40. email: 'some-agentlimit-role-2@example.com',
  41. login: 'some-agentlimit-role-2@example.com',
  42. roles: [role_agent_limit_fail],
  43. active: true,
  44. )
  45. role_agent_limit_success.permissions = permission_ticket_agent
  46. assert_raises(Exceptions::UnprocessableEntity) do
  47. role_agent_limit_fail.permissions = permission_ticket_agent
  48. end
  49. role_agent_limit_fail.active = false
  50. role_agent_limit_fail.save!
  51. role_agent_limit_fail.permissions = permission_ticket_agent
  52. assert_raises(Exceptions::UnprocessableEntity) do
  53. role_agent_limit_fail.active = true
  54. role_agent_limit_fail.save!
  55. end
  56. user1.destroy!
  57. user2.destroy!
  58. user3.destroy!
  59. role_agent_limit_success.destroy!
  60. role_agent_limit_fail.destroy!
  61. Setting.set('system_agent_limit', nil)
  62. end
  63. end