email_process_state_open_set.rb 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  1. # encoding: utf-8
  2. require 'test_helper'
  3. class EmailProcessStateOpenSet < ActiveSupport::TestCase
  4. setup do
  5. groups = Group.all
  6. roles = Role.where(name: 'Agent')
  7. @agent1 = User.create_or_update(
  8. login: 'agent-ticket-state-open-set@example.com',
  9. firstname: 'StateOpenSet',
  10. lastname: 'Agent1',
  11. email: 'agent-ticket-state-open-set@example.com',
  12. password: 'agentpw',
  13. active: true,
  14. roles: roles,
  15. groups: groups,
  16. updated_by_id: 1,
  17. created_by_id: 1,
  18. )
  19. roles = Role.where(name: 'Customer')
  20. @customer1 = User.create_or_update(
  21. login: 'customer-ticket-state-open-set@example.com',
  22. firstname: 'StateOpenSet',
  23. lastname: 'Customer',
  24. email: 'customer-ticket-state-open-set@example.com',
  25. password: 'customerpw',
  26. active: true,
  27. roles: roles,
  28. updated_by_id: 1,
  29. created_by_id: 1,
  30. )
  31. end
  32. test 'new as agent' do
  33. email_raw_string = "From: agent-ticket-state-open-set@example.com
  34. To: customer-ticket-state-open-set@example.com
  35. Subject: test sender is agent
  36. Some Text"
  37. ticket_p, article_p, user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
  38. ticket = Ticket.find(ticket_p.id)
  39. article = Ticket::Article.find(article_p.id)
  40. assert_equal('test sender is agent', ticket.title)
  41. assert_equal('new', ticket.state.name)
  42. assert_equal('Agent', ticket.create_article_sender.name)
  43. assert_equal('Agent', article.sender.name)
  44. assert_equal('customer-ticket-state-open-set@example.com', ticket.customer.email)
  45. assert_equal('StateOpenSet', ticket.customer.firstname)
  46. assert_equal('Customer', ticket.customer.lastname)
  47. article = Ticket::Article.create!(
  48. ticket_id: ticket.id,
  49. type_id: Ticket::Article::Type.find_by(name: 'email').id,
  50. sender_id: Ticket::Article::Sender.find_by(name: 'Customer').id,
  51. body: 'test',
  52. internal: false,
  53. updated_by_id: @customer1.id,
  54. created_by_id: @customer1.id,
  55. )
  56. ticket.reload
  57. assert_equal('test sender is agent', ticket.title)
  58. assert_equal('new', ticket.state.name)
  59. assert_equal('Agent', ticket.create_article_sender.name)
  60. assert_equal('Customer', article.sender.name)
  61. assert_equal('customer-ticket-state-open-set@example.com', ticket.customer.email)
  62. assert_equal('StateOpenSet', ticket.customer.firstname)
  63. assert_equal('Customer', ticket.customer.lastname)
  64. article = Ticket::Article.create!(
  65. ticket_id: ticket.id,
  66. type_id: Ticket::Article::Type.find_by(name: 'email').id,
  67. sender_id: Ticket::Article::Sender.find_by(name: 'Agent').id,
  68. body: 'test',
  69. internal: false,
  70. updated_by_id: @agent1.id,
  71. created_by_id: @agent1.id,
  72. )
  73. ticket.reload
  74. assert_equal('test sender is agent', ticket.title)
  75. assert_equal('open', ticket.state.name)
  76. assert_equal('Agent', ticket.create_article_sender.name)
  77. assert_equal('Agent', article.sender.name)
  78. assert_equal('customer-ticket-state-open-set@example.com', ticket.customer.email)
  79. assert_equal('StateOpenSet', ticket.customer.firstname)
  80. assert_equal('Customer', ticket.customer.lastname)
  81. end
  82. test 'new as customer' do
  83. email_raw_string = "From: customer-ticket-state-open-set@example.com
  84. To: agent-ticket-state-open-set@example.com
  85. Subject: test sender is customer
  86. Some Text"
  87. ticket_p, article_p, user_p, mail = Channel::EmailParser.new.process({}, email_raw_string)
  88. ticket = Ticket.find(ticket_p.id)
  89. article = Ticket::Article.find(article_p.id)
  90. assert_equal('test sender is customer', ticket.title)
  91. assert_equal('new', ticket.state.name)
  92. assert_equal('Customer', ticket.create_article_sender.name)
  93. assert_equal('Customer', article.sender.name)
  94. assert_equal('customer-ticket-state-open-set@example.com', ticket.customer.email)
  95. assert_equal('StateOpenSet', ticket.customer.firstname)
  96. assert_equal('Customer', ticket.customer.lastname)
  97. article = Ticket::Article.create!(
  98. ticket_id: ticket.id,
  99. type_id: Ticket::Article::Type.find_by(name: 'email').id,
  100. sender_id: Ticket::Article::Sender.find_by(name: 'Customer').id,
  101. body: 'test',
  102. internal: false,
  103. updated_by_id: @customer1.id,
  104. created_by_id: @customer1.id,
  105. )
  106. ticket.reload
  107. assert_equal('test sender is customer', ticket.title)
  108. assert_equal('new', ticket.state.name)
  109. assert_equal('Customer', ticket.create_article_sender.name)
  110. assert_equal('Customer', article.sender.name)
  111. assert_equal('customer-ticket-state-open-set@example.com', ticket.customer.email)
  112. assert_equal('StateOpenSet', ticket.customer.firstname)
  113. assert_equal('Customer', ticket.customer.lastname)
  114. article = Ticket::Article.create!(
  115. ticket_id: ticket.id,
  116. type_id: Ticket::Article::Type.find_by(name: 'email').id,
  117. sender_id: Ticket::Article::Sender.find_by(name: 'Agent').id,
  118. body: 'test',
  119. internal: false,
  120. updated_by_id: @agent1.id,
  121. created_by_id: @agent1.id,
  122. )
  123. ticket.reload
  124. assert_equal('test sender is customer', ticket.title)
  125. assert_equal('open', ticket.state.name)
  126. assert_equal('Customer', ticket.create_article_sender.name)
  127. assert_equal('Agent', article.sender.name)
  128. assert_equal('customer-ticket-state-open-set@example.com', ticket.customer.email)
  129. assert_equal('StateOpenSet', ticket.customer.firstname)
  130. assert_equal('Customer', ticket.customer.lastname)
  131. end
  132. end