diff options
-rw-r--r-- | app/models/incoming_message.rb | 6 | ||||
-rw-r--r-- | spec/models/incoming_message_spec.rb | 12 |
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 |