role_validate_agent_limit_test.rb 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. # encoding: utf-8
  2. require 'test_helper'
  3. class RoleValidateAgentLimit < ActiveSupport::TestCase
  4. test 'role_validate_agent_limit' do
  5. users = User.of_role('Agent')
  6. UserInfo.current_user_id = 1
  7. Setting.set('system_agent_limit', users.count + 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. updated_by_id: 1,
  14. created_by_id: 1
  15. )
  16. role_agent_limit_fail = Role.create(
  17. name: 'agent-limit-test-fail',
  18. note: 'agent-limit-test-fail Role.',
  19. permissions: [],
  20. updated_by_id: 1,
  21. created_by_id: 1
  22. )
  23. user1 = User.create(
  24. firstname: 'Firstname',
  25. lastname: 'Lastname',
  26. email: 'some@example.com',
  27. login: 'some-agentlimit@example.com',
  28. roles: [role_agent_limit_success],
  29. )
  30. user2 = User.create(
  31. firstname: 'Firstname1',
  32. lastname: 'Lastname1',
  33. email: 'some-agentlimit-1@example.com',
  34. login: 'some-agentlimit-1@example.com',
  35. roles: [role_agent_limit_success],
  36. )
  37. user3 = User.create(
  38. firstname: 'Firstname2',
  39. lastname: 'Lastname2',
  40. email: 'some-agentlimit-2@example.com',
  41. login: 'some-agentlimit-2@example.com',
  42. roles: [role_agent_limit_fail],
  43. )
  44. role_agent_limit_success.permissions = permission_ticket_agent
  45. assert_raises(Exceptions::UnprocessableEntity) {
  46. role_agent_limit_fail.permissions = permission_ticket_agent
  47. }
  48. user1.destroy
  49. user2.destroy
  50. user3.destroy
  51. role_agent_limit_success.destroy
  52. role_agent_limit_fail.destroy
  53. Setting.set('system_agent_limit', nil)
  54. end
  55. end