flapjack 0.7.27 → 0.7.28

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. data/.gitignore +1 -0
  2. data/CHANGELOG.md +9 -0
  3. data/bin/flapjack +22 -28
  4. data/bin/flapjack-nagios-receiver +5 -27
  5. data/bin/flapjack-populator +2 -2
  6. data/bin/flapper +13 -14
  7. data/bin/receive-events +3 -20
  8. data/bin/simulate-failed-check +3 -20
  9. data/etc/flapjack_config.yaml.example +119 -86
  10. data/features/cli.feature +69 -0
  11. data/features/events.feature +15 -0
  12. data/features/packaging-lintian.feature +4 -6
  13. data/features/rollup.feature +198 -0
  14. data/features/steps/cli_steps.rb +81 -0
  15. data/features/steps/events_steps.rb +26 -16
  16. data/features/steps/notifications_steps.rb +2 -2
  17. data/features/steps/packaging-lintian_steps.rb +2 -2
  18. data/features/support/daemons.rb +113 -0
  19. data/features/support/env.rb +26 -4
  20. data/lib/flapjack/configuration.rb +2 -0
  21. data/lib/flapjack/data/contact.rb +76 -5
  22. data/lib/flapjack/data/entity_check.rb +16 -0
  23. data/lib/flapjack/data/message.rb +11 -8
  24. data/lib/flapjack/data/notification.rb +31 -3
  25. data/lib/flapjack/data/notification_rule.rb +1 -1
  26. data/lib/flapjack/filters/delays.rb +1 -5
  27. data/lib/flapjack/gateways/api/contact_methods.rb +12 -6
  28. data/lib/flapjack/gateways/email.rb +35 -26
  29. data/lib/flapjack/gateways/email/alert.html.erb +4 -4
  30. data/lib/flapjack/gateways/email/alert.text.erb +2 -2
  31. data/lib/flapjack/gateways/email/alert_subject.text.erb +14 -0
  32. data/lib/flapjack/gateways/email/rollup.html.erb +48 -0
  33. data/lib/flapjack/gateways/email/rollup.text.erb +20 -0
  34. data/lib/flapjack/gateways/email/rollup_subject.text.erb +19 -0
  35. data/lib/flapjack/gateways/jabber.rb +97 -47
  36. data/lib/flapjack/gateways/sms_messagenet.rb +26 -24
  37. data/lib/flapjack/gateways/sms_messagenet/alert.text.erb +15 -0
  38. data/lib/flapjack/gateways/sms_messagenet/rollup.text.erb +34 -0
  39. data/lib/flapjack/gateways/web/views/contact.html.erb +16 -8
  40. data/lib/flapjack/notifier.rb +17 -4
  41. data/lib/flapjack/processor.rb +1 -1
  42. data/lib/flapjack/version.rb +1 -1
  43. data/spec/lib/flapjack/coordinator_spec.rb +19 -19
  44. data/spec/lib/flapjack/data/contact_spec.rb +100 -25
  45. data/spec/lib/flapjack/data/event_spec.rb +1 -1
  46. data/spec/lib/flapjack/data/message_spec.rb +1 -1
  47. data/spec/lib/flapjack/data/notification_spec.rb +11 -3
  48. data/spec/lib/flapjack/gateways/api/contact_methods_spec.rb +36 -17
  49. data/spec/lib/flapjack/gateways/api/entity_check_presenter_spec.rb +1 -1
  50. data/spec/lib/flapjack/gateways/api/entity_methods_spec.rb +38 -38
  51. data/spec/lib/flapjack/gateways/api/entity_presenter_spec.rb +15 -15
  52. data/spec/lib/flapjack/gateways/email_spec.rb +4 -4
  53. data/spec/lib/flapjack/gateways/jabber_spec.rb +13 -14
  54. data/spec/lib/flapjack/gateways/oobetet_spec.rb +2 -2
  55. data/spec/lib/flapjack/gateways/pagerduty_spec.rb +5 -5
  56. data/spec/lib/flapjack/gateways/sms_messagenet.spec.rb +1 -1
  57. data/spec/lib/flapjack/gateways/web/views/contact.html.erb_spec.rb +2 -2
  58. data/spec/lib/flapjack/gateways/web_spec.rb +4 -4
  59. data/spec/lib/flapjack/logger_spec.rb +3 -3
  60. data/spec/lib/flapjack/pikelet_spec.rb +10 -10
  61. data/spec/lib/flapjack/processor_spec.rb +4 -4
  62. data/spec/lib/flapjack/redis_pool_spec.rb +1 -1
  63. metadata +70 -5
  64. checksums.yaml +0 -15
@@ -5,7 +5,7 @@ describe Flapjack::Data::Event do
5
5
 
6
6
  let(:entity_name) { 'xyz-example.com' }
7
7
  let(:check) { 'ping' }
8
- let(:mock_redis) { mock(::Redis) }
8
+ let(:mock_redis) { double(::Redis) }
9
9
 
10
10
  let!(:time) { Time.now}
11
11
 
@@ -3,7 +3,7 @@ require 'flapjack/data/message'
3
3
 
4
4
  describe Flapjack::Data::Message do
5
5
 
6
- let(:contact) { mock(Flapjack::Data::Contact) }
6
+ let(:contact) { double(Flapjack::Data::Contact) }
7
7
 
8
8
  it "assigns itself an ID" do
9
9
  message = Flapjack::Data::Message.for_contact(contact)
@@ -3,11 +3,11 @@ require 'flapjack/data/notification'
3
3
 
4
4
  describe Flapjack::Data::Notification, :redis => true, :logger => true do
5
5
 
6
- let(:event) { mock(Flapjack::Data::Event) }
6
+ let(:event) { double(Flapjack::Data::Event) }
7
7
 
8
- let(:contact) { mock(Flapjack::Data::Contact) }
8
+ let(:contact) { double(Flapjack::Data::Contact) }
9
9
 
10
- let(:timezone) { mock('timezone') }
10
+ let(:timezone) { double('timezone') }
11
11
 
12
12
  it "generates a notification for an event" # do
13
13
  # notification = Flapjack::Data::Notification.for_event(event, :type => 'problem',
@@ -27,6 +27,14 @@ describe Flapjack::Data::Notification, :redis => true, :logger => true do
27
27
  contact.should_receive(:notification_rules).and_return([])
28
28
  contact.should_receive(:media).and_return('email' => 'example@example.com',
29
29
  'sms' => '0123456789')
30
+ contact.should_receive(:add_alerting_check_for_media).with("email", nil)
31
+ contact.should_receive(:add_alerting_check_for_media).with("sms", nil)
32
+ contact.should_receive(:clean_alerting_checks_for_media).with("email").and_return(0)
33
+ contact.should_receive(:clean_alerting_checks_for_media).with("sms").and_return(0)
34
+ contact.should_receive(:count_alerting_checks_for_media).with("email").and_return(0)
35
+ contact.should_receive(:count_alerting_checks_for_media).with("sms").and_return(0)
36
+ contact.should_receive(:rollup_threshold_for_media).with("email").and_return(nil)
37
+ contact.should_receive(:rollup_threshold_for_media).with("sms").and_return(nil)
30
38
 
31
39
  messages = notification.messages([contact], :default_timezone => timezone,
32
40
  :logger => @logger)
@@ -7,7 +7,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
7
7
  Flapjack::Gateways::API
8
8
  end
9
9
 
10
- let(:contact) { mock(Flapjack::Data::Contact, :id => '21') }
10
+ let(:contact) { double(Flapjack::Data::Contact, :id => '21') }
11
11
  let(:contact_core) {
12
12
  {'id' => contact.id,
13
13
  'first_name' => "Ada",
@@ -29,10 +29,14 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
29
29
  }
30
30
  }
31
31
 
32
- let(:redis) { mock(::Redis) }
32
+ let(:media_rollup_thresholds) {
33
+ {'email' => 5}
34
+ }
35
+
36
+ let(:redis) { double(::Redis) }
33
37
 
34
38
  let(:notification_rule) {
35
- mock(Flapjack::Data::NotificationRule, :id => '1', :contact_id => '21')
39
+ double(Flapjack::Data::NotificationRule, :id => '1', :contact_id => '21')
36
40
  }
37
41
 
38
42
  let(:notification_rule_data) {
@@ -134,7 +138,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
134
138
  ]
135
139
  }
136
140
 
137
- existing = mock(Flapjack::Data::Contact)
141
+ existing = double(Flapjack::Data::Contact)
138
142
  existing.should_receive(:id).and_return("0363")
139
143
  existing.should_receive(:update).with(contacts['contacts'][1])
140
144
 
@@ -155,7 +159,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
155
159
  ]
156
160
  }
157
161
 
158
- existing = mock(Flapjack::Data::Contact)
162
+ existing = double(Flapjack::Data::Contact)
159
163
  existing.should_receive(:id).twice.and_return("0362")
160
164
  existing.should_receive(:delete!)
161
165
 
@@ -195,7 +199,7 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
195
199
  end
196
200
 
197
201
  it "lists a contact's notification rules" do
198
- notification_rule_2 = mock(Flapjack::Data::NotificationRule, :id => '2', :contact_id => '21')
202
+ notification_rule_2 = double(Flapjack::Data::NotificationRule, :id => '2', :contact_id => '21')
199
203
  notification_rule.should_receive(:to_json).and_return('"rule_1"')
200
204
  notification_rule_2.should_receive(:to_json).and_return('"rule_2"')
201
205
  notification_rules = [ notification_rule, notification_rule_2 ]
@@ -351,11 +355,13 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
351
355
  it "returns the media of a contact" do
352
356
  contact.should_receive(:media).and_return(media)
353
357
  contact.should_receive(:media_intervals).and_return(media_intervals)
358
+ contact.should_receive(:media_rollup_thresholds).and_return(media_rollup_thresholds)
354
359
  Flapjack::Data::Contact.should_receive(:find_by_id).
355
360
  with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
356
361
  result = Hash[ *(media.keys.collect {|m|
357
- [m, {'address' => media[m],
358
- 'interval' => media_intervals[m] }]
362
+ [m, {'address' => media[m],
363
+ 'interval' => media_intervals[m],
364
+ 'rollup_threshold' => media_rollup_thresholds[m] }]
359
365
  }).flatten(1)].to_json
360
366
 
361
367
  get "/contacts/#{contact.id}/media"
@@ -375,10 +381,15 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
375
381
  it "returns the specified media of a contact" do
376
382
  contact.should_receive(:media).and_return(media)
377
383
  contact.should_receive(:media_intervals).and_return(media_intervals)
384
+ contact.should_receive(:media_rollup_thresholds).and_return(media_rollup_thresholds)
378
385
  Flapjack::Data::Contact.should_receive(:find_by_id).
379
386
  with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
380
387
 
381
- result = {'address' => media['sms'], 'interval' => media_intervals['sms']}
388
+ result = {
389
+ 'address' => media['sms'],
390
+ 'interval' => media_intervals['sms'],
391
+ 'rollup_threshold' => media_rollup_thresholds['sms'],
392
+ }
382
393
 
383
394
  get "/contacts/#{contact.id}/media/sms"
384
395
  last_response.should be_ok
@@ -408,17 +419,22 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
408
419
  # may distinguish between them
409
420
  alt_media = media.merge('sms' => '04987654321')
410
421
  alt_media_intervals = media_intervals.merge('sms' => '200')
422
+ alt_media_rollup_thresholds = media_rollup_thresholds.merge('sms' => '5')
411
423
 
412
424
  contact.should_receive(:set_address_for_media).with('sms', '04987654321')
413
425
  contact.should_receive(:set_interval_for_media).with('sms', '200')
426
+ contact.should_receive(:set_rollup_threshold_for_media).with('sms', '5')
414
427
  contact.should_receive(:media).and_return(alt_media)
415
428
  contact.should_receive(:media_intervals).and_return(alt_media_intervals)
429
+ contact.should_receive(:media_rollup_thresholds).and_return(alt_media_rollup_thresholds)
416
430
  Flapjack::Data::Contact.should_receive(:find_by_id).
417
431
  with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
418
432
 
419
- result = {'address' => alt_media['sms'], 'interval' => alt_media_intervals['sms']}
433
+ result = {'address' => alt_media['sms'],
434
+ 'interval' => alt_media_intervals['sms'],
435
+ 'rollup_threshold' => alt_media_rollup_thresholds['sms']}
420
436
 
421
- put "/contacts/#{contact.id}/media/sms", {:address => '04987654321', :interval => '200'}
437
+ put "/contacts/#{contact.id}/media/sms", {:address => '04987654321', :interval => '200', :rollup_threshold => '5'}
422
438
  last_response.should be_ok
423
439
  last_response.body.should be_json_eql(result.to_json)
424
440
  end
@@ -442,11 +458,14 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
442
458
  it "creates a media of a contact even if no interval is provided" do
443
459
  alt_media = media.merge('sms' => '04987654321')
444
460
  alt_media_intervals = media_intervals.merge('sms' => nil)
461
+ alt_media_rollup_thresholds = media_rollup_thresholds.merge('sms' => nil)
445
462
 
446
463
  contact.should_receive(:set_address_for_media).with('sms', '04987654321')
447
464
  contact.should_receive(:set_interval_for_media).with('sms', nil)
465
+ contact.should_receive(:set_rollup_threshold_for_media).with("sms", nil)
448
466
  contact.should_receive(:media).and_return(alt_media)
449
467
  contact.should_receive(:media_intervals).and_return(alt_media_intervals)
468
+ contact.should_receive(:media_rollup_thresholds).and_return(alt_media_rollup_thresholds)
450
469
  Flapjack::Data::Contact.should_receive(:find_by_id).
451
470
  with(contact.id, {:redis => redis, :logger => @logger}).and_return(contact)
452
471
 
@@ -618,9 +637,9 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
618
637
  end
619
638
 
620
639
  it "gets all entity tags for a contact" do
621
- entity_1 = mock(Flapjack::Data::Entity)
640
+ entity_1 = double(Flapjack::Data::Entity)
622
641
  entity_1.should_receive(:name).and_return('entity_1')
623
- entity_2 = mock(Flapjack::Data::Entity)
642
+ entity_2 = double(Flapjack::Data::Entity)
624
643
  entity_2.should_receive(:name).and_return('entity_2')
625
644
  tag_data = [{:entity => entity_1, :tags => ['web']},
626
645
  {:entity => entity_2, :tags => ['app']}]
@@ -646,10 +665,10 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
646
665
  end
647
666
 
648
667
  it "adds tags to multiple entities for a contact" do
649
- entity_1 = mock(Flapjack::Data::Entity)
668
+ entity_1 = double(Flapjack::Data::Entity)
650
669
  entity_1.should_receive(:name).twice.and_return('entity_1')
651
670
  entity_1.should_receive(:add_tags).with('web')
652
- entity_2 = mock(Flapjack::Data::Entity)
671
+ entity_2 = double(Flapjack::Data::Entity)
653
672
  entity_2.should_receive(:name).twice.and_return('entity_2')
654
673
  entity_2.should_receive(:add_tags).with('app')
655
674
 
@@ -680,10 +699,10 @@ describe 'Flapjack::Gateways::API::ContactMethods', :sinatra => true, :logger =>
680
699
  end
681
700
 
682
701
  it "deletes tags from multiple entities for a contact" do
683
- entity_1 = mock(Flapjack::Data::Entity)
702
+ entity_1 = double(Flapjack::Data::Entity)
684
703
  entity_1.should_receive(:name).and_return('entity_1')
685
704
  entity_1.should_receive(:delete_tags).with('web')
686
- entity_2 = mock(Flapjack::Data::Entity)
705
+ entity_2 = double(Flapjack::Data::Entity)
687
706
  entity_2.should_receive(:name).and_return('entity_2')
688
707
  entity_2.should_receive(:delete_tags).with('app')
689
708
 
@@ -3,7 +3,7 @@ require 'flapjack/gateways/api/entity_check_presenter'
3
3
 
4
4
  describe 'Flapjack::Gateways::API::EntityCheckPresenter' do
5
5
 
6
- let(:entity_check) { mock(Flapjack::Data::EntityCheck) }
6
+ let(:entity_check) { double(Flapjack::Data::EntityCheck) }
7
7
 
8
8
  let(:time) { Time.now.to_i }
9
9
 
@@ -7,17 +7,17 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
7
7
  Flapjack::Gateways::API
8
8
  end
9
9
 
10
- let(:entity) { mock(Flapjack::Data::Entity) }
11
- let(:entity_check) { mock(Flapjack::Data::EntityCheck) }
10
+ let(:entity) { double(Flapjack::Data::Entity) }
11
+ let(:entity_check) { double(Flapjack::Data::EntityCheck) }
12
12
 
13
13
  let(:entity_name) { 'www.example.net'}
14
14
  let(:entity_name_esc) { URI.escape(entity_name) }
15
15
  let(:check) { 'ping' }
16
16
 
17
- let(:entity_presenter) { mock(Flapjack::Gateways::API::EntityPresenter) }
18
- let(:entity_check_presenter) { mock(Flapjack::Gateways::API::EntityCheckPresenter) }
17
+ let(:entity_presenter) { double(Flapjack::Gateways::API::EntityPresenter) }
18
+ let(:entity_check_presenter) { double(Flapjack::Gateways::API::EntityCheckPresenter) }
19
19
 
20
- let(:redis) { mock(::Redis) }
20
+ let(:redis) { double(::Redis) }
21
21
 
22
22
  before(:all) do
23
23
  Flapjack::Gateways::API.class_eval {
@@ -48,7 +48,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
48
48
  context 'non-bulk API calls' do
49
49
 
50
50
  it "returns the status for all checks on an entity" do
51
- status = mock('status', :to_json => 'status!'.to_json)
51
+ status = double('status', :to_json => 'status!'.to_json)
52
52
  result = {:entity => entity_name, :check => check, :status => status}
53
53
  entity_presenter.should_receive(:status).and_return(result)
54
54
 
@@ -72,7 +72,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
72
72
  end
73
73
 
74
74
  it "returns the status for a check on an entity" do
75
- status = mock('status', :to_json => 'status!'.to_json)
75
+ status = double('status', :to_json => 'status!'.to_json)
76
76
  entity_check_presenter.should_receive(:status).and_return(status)
77
77
 
78
78
  Flapjack::Gateways::API::EntityCheckPresenter.should_receive(:new).
@@ -109,7 +109,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
109
109
  end
110
110
 
111
111
  it "returns a list of scheduled maintenance periods for an entity" do
112
- sched = mock('sched', :to_json => 'sched!'.to_json)
112
+ sched = double('sched', :to_json => 'sched!'.to_json)
113
113
  result = {:entity => entity_name, :check => check, :scheduled_maintenances => sched}
114
114
  entity_presenter.should_receive(:scheduled_maintenances).with(nil, nil).and_return(result)
115
115
  Flapjack::Gateways::API::EntityPresenter.should_receive(:new).
@@ -126,7 +126,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
126
126
  start = Time.parse('1 Jan 2012')
127
127
  finish = Time.parse('6 Jan 2012')
128
128
 
129
- sched = mock('sched', :to_json => 'sched!'.to_json)
129
+ sched = double('sched', :to_json => 'sched!'.to_json)
130
130
  result = {:entity => entity_name, :check => check, :scheduled_maintenances => sched}
131
131
  entity_presenter.should_receive(:scheduled_maintenances).with(start.to_i, finish.to_i).and_return(result)
132
132
  Flapjack::Gateways::API::EntityPresenter.should_receive(:new).
@@ -141,7 +141,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
141
141
  end
142
142
 
143
143
  it "returns a list of scheduled maintenance periods for a check on an entity" do
144
- sched = mock('sched', :to_json => 'sched!'.to_json)
144
+ sched = double('sched', :to_json => 'sched!'.to_json)
145
145
  entity_check_presenter.should_receive(:scheduled_maintenances).with(nil, nil).and_return(sched)
146
146
  Flapjack::Gateways::API::EntityCheckPresenter.should_receive(:new).
147
147
  with(entity_check).and_return(entity_check_presenter)
@@ -171,7 +171,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
171
171
  end
172
172
 
173
173
  it "returns a list of unscheduled maintenance periods for an entity" do
174
- unsched = mock('unsched', :to_json => 'unsched!'.to_json)
174
+ unsched = double('unsched', :to_json => 'unsched!'.to_json)
175
175
  result = {:entity => entity_name, :check => check, :unscheduled_maintenances => unsched}
176
176
  entity_presenter.should_receive(:unscheduled_maintenances).with(nil, nil).and_return(result)
177
177
  Flapjack::Gateways::API::EntityPresenter.should_receive(:new).
@@ -185,7 +185,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
185
185
  end
186
186
 
187
187
  it "returns a list of unscheduled maintenance periods for a check on an entity" do
188
- unsched = mock('unsched', :to_json => 'unsched!'.to_json)
188
+ unsched = double('unsched', :to_json => 'unsched!'.to_json)
189
189
  entity_check_presenter.should_receive(:unscheduled_maintenances).with(nil, nil).and_return(unsched)
190
190
  Flapjack::Gateways::API::EntityCheckPresenter.should_receive(:new).
191
191
  with(entity_check).and_return(entity_check_presenter)
@@ -203,7 +203,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
203
203
  start = Time.parse('1 Jan 2012')
204
204
  finish = Time.parse('6 Jan 2012')
205
205
 
206
- unsched = mock('unsched', :to_json => 'unsched!'.to_json)
206
+ unsched = double('unsched', :to_json => 'unsched!'.to_json)
207
207
  entity_check_presenter.should_receive(:unscheduled_maintenances).with(start.to_i, finish.to_i).and_return(unsched)
208
208
  Flapjack::Gateways::API::EntityCheckPresenter.should_receive(:new).
209
209
  with(entity_check).and_return(entity_check_presenter)
@@ -219,7 +219,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
219
219
  end
220
220
 
221
221
  it "returns a list of outages for an entity" do
222
- out = mock('out', :to_json => 'out!'.to_json)
222
+ out = double('out', :to_json => 'out!'.to_json)
223
223
  result = {:entity => entity_name, :check => check, :outages => out}
224
224
  entity_presenter.should_receive(:outages).with(nil, nil).and_return(result)
225
225
  Flapjack::Gateways::API::EntityPresenter.should_receive(:new).
@@ -233,7 +233,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
233
233
  end
234
234
 
235
235
  it "returns a list of outages for a check on an entity" do
236
- out = mock('out', :to_json => 'out!'.to_json)
236
+ out = double('out', :to_json => 'out!'.to_json)
237
237
  entity_check_presenter.should_receive(:outages).with(nil, nil).and_return(out)
238
238
  Flapjack::Gateways::API::EntityCheckPresenter.should_receive(:new).
239
239
  with(entity_check).and_return(entity_check_presenter)
@@ -248,7 +248,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
248
248
  end
249
249
 
250
250
  it "returns a list of downtimes for an entity" do
251
- down = mock('down', :to_json => 'down!'.to_json)
251
+ down = double('down', :to_json => 'down!'.to_json)
252
252
  result = {:entity => entity_name, :check => check, :downtime => down}
253
253
  entity_presenter.should_receive(:downtime).with(nil, nil).and_return(result)
254
254
  Flapjack::Gateways::API::EntityPresenter.should_receive(:new).
@@ -262,7 +262,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
262
262
  end
263
263
 
264
264
  it "returns a list of downtimes for a check on an entity" do
265
- down = mock('down', :to_json => 'down!'.to_json)
265
+ down = double('down', :to_json => 'down!'.to_json)
266
266
  entity_check_presenter.should_receive(:downtime).with(nil, nil).and_return(down)
267
267
  Flapjack::Gateways::API::EntityCheckPresenter.should_receive(:new).
268
268
  with(entity_check).and_return(entity_check_presenter)
@@ -298,7 +298,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
298
298
  context 'bulk API calls' do
299
299
 
300
300
  it "returns the status for all checks on an entity" do
301
- status = mock('status')
301
+ status = double('status')
302
302
  result = [{:entity => entity_name, :check => check, :status => status}]
303
303
  entity_presenter.should_receive(:status).and_return(result)
304
304
 
@@ -321,7 +321,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
321
321
  end
322
322
 
323
323
  it "returns the status for a check on an entity" do
324
- status = mock('status')
324
+ status = double('status')
325
325
  result = [{:entity => entity_name, :check => check, :status => status}]
326
326
  entity_check_presenter.should_receive(:status).and_return(status)
327
327
 
@@ -435,7 +435,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
435
435
  it "deletes scheduled maintenance periods for multiple entity checks" do
436
436
  start_time = Time.now + (60 * 60) # an hour from now
437
437
 
438
- entity_check_2 = mock(Flapjack::Data::EntityCheck)
438
+ entity_check_2 = double(Flapjack::Data::EntityCheck)
439
439
 
440
440
  entity_check.should_receive(:end_scheduled_maintenance).with(start_time.to_i)
441
441
  entity_check_2.should_receive(:end_scheduled_maintenance).with(start_time.to_i)
@@ -453,7 +453,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
453
453
  end
454
454
 
455
455
  it "returns a list of scheduled maintenance periods for an entity" do
456
- sm = mock('sched_maint')
456
+ sm = double('sched_maint')
457
457
  result = [{:entity => entity_name, :check => check, :scheduled_maintenances => sm}]
458
458
 
459
459
  entity_presenter.should_receive(:scheduled_maintenances).with(nil, nil).and_return(result)
@@ -473,7 +473,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
473
473
  start = Time.parse('1 Jan 2012')
474
474
  finish = Time.parse('6 Jan 2012')
475
475
 
476
- sm = mock('sched_maint')
476
+ sm = double('sched_maint')
477
477
  result = [{:entity => entity_name, :check => check, :scheduled_maintenances => sm}]
478
478
 
479
479
  entity_presenter.should_receive(:scheduled_maintenances).with(start.to_i, finish.to_i).and_return(result)
@@ -491,7 +491,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
491
491
  end
492
492
 
493
493
  it "returns a list of scheduled maintenance periods for a check on an entity" do
494
- sm = mock('sched_maint')
494
+ sm = double('sched_maint')
495
495
  result = [{:entity => entity_name, :check => check, :scheduled_maintenances => sm}]
496
496
 
497
497
  entity_check_presenter.should_receive(:scheduled_maintenances).with(nil, nil).and_return(sm)
@@ -511,7 +511,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
511
511
  end
512
512
 
513
513
  it "returns a list of unscheduled maintenance periods for an entity" do
514
- um = mock('unsched_maint')
514
+ um = double('unsched_maint')
515
515
  result = [{:entity => entity_name, :check => check, :unscheduled_maintenances => um}]
516
516
 
517
517
  entity_presenter.should_receive(:unscheduled_maintenances).with(nil, nil).and_return(result)
@@ -528,7 +528,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
528
528
  end
529
529
 
530
530
  it "returns a list of unscheduled maintenance periods for a check on an entity" do
531
- um = mock('unsched_maint')
531
+ um = double('unsched_maint')
532
532
  result = [{:entity => entity_name, :check => check, :unscheduled_maintenances => um}]
533
533
 
534
534
  entity_check_presenter.should_receive(:unscheduled_maintenances).with(nil, nil).and_return(um)
@@ -551,7 +551,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
551
551
  start = Time.parse('1 Jan 2012')
552
552
  finish = Time.parse('6 Jan 2012')
553
553
 
554
- um = mock('unsched_maint')
554
+ um = double('unsched_maint')
555
555
  result = [{:entity => entity_name, :check => check, :unscheduled_maintenances => um}]
556
556
 
557
557
  entity_check_presenter.should_receive(:unscheduled_maintenances).with(start.to_i, finish.to_i).and_return(um)
@@ -572,22 +572,22 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
572
572
  end
573
573
 
574
574
  it "returns a list of outages, for one whole entity and two checks on another entity" do
575
- outages_1 = mock('outages_1')
576
- outages_2 = mock('outages_2')
577
- outages_3 = mock('outages_3')
575
+ outages_1 = double('outages_1')
576
+ outages_2 = double('outages_2')
577
+ outages_3 = double('outages_3')
578
578
 
579
579
  entity_2_name = 'entity_2'
580
- entity_2 = mock(Flapjack::Data::Entity)
580
+ entity_2 = double(Flapjack::Data::Entity)
581
581
 
582
582
  result = [{:entity => entity_name, :check => check, :outages => outages_1},
583
583
  {:entity => entity_2_name, :check => 'foo', :outages => outages_2},
584
584
  {:entity => entity_2_name, :check => 'bar', :outages => outages_3}]
585
585
 
586
- foo_check = mock(Flapjack::Data::EntityCheck)
587
- bar_check = mock(Flapjack::Data::EntityCheck)
586
+ foo_check = double(Flapjack::Data::EntityCheck)
587
+ bar_check = double(Flapjack::Data::EntityCheck)
588
588
 
589
- foo_check_presenter = mock(Flapjack::Gateways::API::EntityCheckPresenter)
590
- bar_check_presenter = mock(Flapjack::Gateways::API::EntityCheckPresenter)
589
+ foo_check_presenter = double(Flapjack::Gateways::API::EntityCheckPresenter)
590
+ bar_check_presenter = double(Flapjack::Gateways::API::EntityCheckPresenter)
591
591
 
592
592
  entity_presenter.should_receive(:outages).with(nil, nil).and_return(result[0])
593
593
  foo_check_presenter.should_receive(:outages).with(nil, nil).and_return(outages_2)
@@ -617,7 +617,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
617
617
  end
618
618
 
619
619
  it "returns a list of outages for a check on an entity" do
620
- outages = mock('outages')
620
+ outages = double('outages')
621
621
  result = [{:entity => entity_name, :check => check, :outages => outages}]
622
622
 
623
623
  entity_check_presenter.should_receive(:outages).with(nil, nil).and_return(outages)
@@ -637,7 +637,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
637
637
  end
638
638
 
639
639
  it "returns a list of downtimes for an entity" do
640
- downtime = mock('downtime')
640
+ downtime = double('downtime')
641
641
  result = [{:entity => entity_name, :check => check, :downtime => downtime}]
642
642
 
643
643
  entity_presenter.should_receive(:downtime).with(nil, nil).and_return(result)
@@ -654,7 +654,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
654
654
  end
655
655
 
656
656
  it "returns a list of downtimes for a check on an entity" do
657
- downtime = mock('downtime')
657
+ downtime = double('downtime')
658
658
  result = [{:entity => entity_name, :check => check, :downtime => downtime}]
659
659
 
660
660
  entity_check_presenter.should_receive(:downtime).with(nil, nil).and_return(downtime)
@@ -686,7 +686,7 @@ describe 'Flapjack::Gateways::API::EntityMethods', :sinatra => true, :logger =>
686
686
  Flapjack::Data::EntityCheck.should_receive(:for_entity).
687
687
  with(entity, check, :redis => redis).and_return(entity_check)
688
688
 
689
- entity_check_2 = mock(Flapjack::Data::EntityCheck)
689
+ entity_check_2 = double(Flapjack::Data::EntityCheck)
690
690
  entity_check_2.should_receive(:entity).and_return(entity)
691
691
  entity_check_2.should_receive(:entity_name).and_return(entity_name)
692
692
  entity_check_2.should_receive(:check).and_return('foo')