spec/lib/flapjack/data/notification_spec.rb in flapjack-0.7.11 vs spec/lib/flapjack/data/notification_spec.rb in flapjack-0.7.12
- old
+ new
@@ -1,63 +1,51 @@
require 'spec_helper'
require 'flapjack/data/notification'
-describe Flapjack::Data::Notification, :redis => true do
+describe Flapjack::Data::Notification, :redis => true, :logger => true do
- let(:event) { mock(Flapjack::Data::Event) }
+ let(:event) { mock(Flapjack::Data::Event) }
let(:contact) { mock(Flapjack::Data::Contact) }
+ let(:timezone) { mock('timezone') }
+
it "generates a notification for an event" do
notification = Flapjack::Data::Notification.for_event(event, :type => 'problem',
- :max_notified_severity => nil)
+ :max_notified_severity => nil, :contacts => [contact],
+ :default_timezone => timezone, :logger => @logger)
notification.should_not be_nil
notification.event.should == event
notification.type.should == 'problem'
end
it "generates messages for contacts" do
notification = Flapjack::Data::Notification.for_event(event, :type => 'problem',
- :max_notified_severity => nil)
+ :max_notified_severity => nil, :contacts => [contact],
+ :default_timezone => timezone, :logger => @logger)
+
+ contact.should_receive(:id).and_return('23')
+ contact.should_receive(:notification_rules).and_return([])
contact.should_receive(:media).and_return('email' => 'example@example.com',
'sms' => '0123456789')
- messages = notification.messages(:contacts => [contact])
+ event.should_receive(:id).and_return('abc-123.com:ping')
+ event.should_receive(:state).and_return('critical')
+ event.should_receive(:summary).and_return('Shiny & happy')
+ event.should_receive(:details).and_return('Really Shiny & happy')
+ event.should_receive(:time).and_return(Time.now.to_i)
+ event.should_receive(:duration).and_return(nil)
+
+ messages = notification.messages
messages.should_not be_nil
messages.should have(2).items
- messages.first.notification.should == notification
messages.first.contact.should == contact
messages.first.medium.should == 'email'
messages.first.address.should == 'example@example.com'
- messages.last.notification.should == notification
messages.last.contact.should == contact
messages.last.medium.should == 'sms'
messages.last.address.should == '0123456789'
- end
-
- it "returns its contained data" do
- notification = Flapjack::Data::Notification.for_event(event, :type => 'problem',
- :max_notified_severity => nil)
-
- t = Time.now.to_i
-
- event.should_receive(:id).and_return('example.com:ping')
- event.should_receive(:state).and_return('ok')
- event.should_receive(:summary).and_return('Shiny & happy')
- event.should_receive(:details).and_return('Really Shiny & happy')
- event.should_receive(:time).and_return(t)
- event.should_receive(:duration).and_return(nil)
-
- notification.contents.should == {'event_id' => 'example.com:ping',
- 'state' => 'ok',
- 'summary' => 'Shiny & happy',
- 'details' => 'Really Shiny & happy',
- 'time' => t,
- 'duration' => nil,
- 'notification_type' => 'problem',
- 'max_notified_severity' => nil}
-
end
end