email_process_customer_selection_based_on_sender_recipient_test.rb 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. require 'test_helper'
  2. class EmailProcessCustomerSelectionBasedOnSenderRecipient < ActiveSupport::TestCase
  3. setup do
  4. groups = Group.all
  5. roles = Role.where(name: 'Agent')
  6. @agent1 = User.create_or_update(
  7. login: 'user-customer-selection-agent1@example.com',
  8. firstname: 'UserOutOfOffice',
  9. lastname: 'Agent1',
  10. email: 'user-customer-selection-agent1@example.com',
  11. password: 'agentpw',
  12. active: true,
  13. roles: roles,
  14. groups: groups,
  15. updated_by_id: 1,
  16. created_by_id: 1,
  17. )
  18. roles = Role.where(name: 'Customer')
  19. @customer1 = User.create_or_update(
  20. login: 'user-customer-selection-customer1@example.com',
  21. firstname: 'UserOutOfOffice',
  22. lastname: 'customer1',
  23. email: 'user-customer-selection-customer1@example.com',
  24. password: 'customerpw',
  25. active: true,
  26. roles: roles,
  27. updated_by_id: 1,
  28. created_by_id: 1,
  29. )
  30. end
  31. test 'customer need to be customer' do
  32. email_raw_string = "From: #{@agent1.email}
  33. To: #{@customer1.email}
  34. Subject: test
  35. Some Text"
  36. ticket_p, article_p, user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
  37. ticket = Ticket.find(ticket_p.id)
  38. article = Ticket::Article.find(article_p.id)
  39. assert_equal('test', ticket.title)
  40. assert_equal('new', ticket.state.name)
  41. assert_equal('Agent', ticket.create_article_sender.name)
  42. assert_equal('Agent', article.sender.name)
  43. assert_equal(@customer1.email, ticket.customer.email)
  44. assert_equal(@customer1.firstname, ticket.customer.firstname)
  45. assert_equal(@customer1.lastname, ticket.customer.lastname)
  46. end
  47. test 'agent need to be customer' do
  48. Setting.set('postmaster_sender_is_agent_search_for_customer', false)
  49. email_raw_string = "From: #{@agent1.email}
  50. To: #{@customer1.email}
  51. Subject: test
  52. Some Text"
  53. ticket_p, article_p, user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
  54. ticket = Ticket.find(ticket_p.id)
  55. article = Ticket::Article.find(article_p.id)
  56. assert_equal('test', ticket.title)
  57. assert_equal('new', ticket.state.name)
  58. assert_equal('Agent', ticket.create_article_sender.name)
  59. assert_equal('Agent', article.sender.name)
  60. assert_equal(@agent1.email, ticket.customer.email)
  61. assert_equal(@agent1.firstname, ticket.customer.firstname)
  62. assert_equal(@agent1.lastname, ticket.customer.lastname)
  63. end
  64. end