aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLouise Crow <louise.crow@gmail.com>2013-07-31 17:16:56 +0100
committerLouise Crow <louise.crow@gmail.com>2013-09-16 12:25:22 +0100
commitfee41e5045ebee47c12ea6f9d2e6a39ad8110cae (patch)
treed736a4f1878a92330db06b15d930e38e96736253
parent4e2c4501587b7bf59a2f639a4891581c681d553e (diff)
Add response_event helper
Add a convenience method for getting the 'response' event associated with an incoming message.
-rw-r--r--app/models/incoming_message.rb6
-rw-r--r--spec/models/incoming_message_spec.rb12
2 files changed, 18 insertions, 0 deletions
diff --git a/app/models/incoming_message.rb b/app/models/incoming_message.rb
index fd7b226a6..bf05cb0d1 100644
--- a/app/models/incoming_message.rb
+++ b/app/models/incoming_message.rb
@@ -65,6 +65,12 @@ class IncomingMessage < ActiveRecord::Base
'application/zip' => 1,
}
+ # Given that there are in theory many info request events, a convenience method for
+ # getting the response event
+ def response_event
+ self.info_request_events.detect{ |e| e.event_type == 'response' }
+ end
+
# Return a cached structured mail object
def mail(force = nil)
if (!force.nil? || @mail.nil?) && !self.raw_email.nil?
diff --git a/spec/models/incoming_message_spec.rb b/spec/models/incoming_message_spec.rb
index eda96f2a7..f249ee87e 100644
--- a/spec/models/incoming_message_spec.rb
+++ b/spec/models/incoming_message_spec.rb
@@ -42,6 +42,18 @@ describe IncomingMessage, 'when validating' do
end
+describe IncomingMessage, 'when getting a response event' do
+
+ it 'should return an event with event_type "response"' do
+ incoming_message = IncomingMessage.new
+ ['comment', 'response'].each do |event_type|
+ incoming_message.info_request_events << InfoRequestEvent.new(:event_type => event_type)
+ end
+ incoming_message.response_event.event_type.should == 'response'
+ end
+
+end
+
describe IncomingMessage, " when dealing with incoming mail" do
before(:each) do