aboutsummaryrefslogtreecommitdiff
path: root/test/tc_mauve_alert_changed.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/tc_mauve_alert_changed.rb')
-rw-r--r--test/tc_mauve_alert_changed.rb76
1 files changed, 76 insertions, 0 deletions
diff --git a/test/tc_mauve_alert_changed.rb b/test/tc_mauve_alert_changed.rb
new file mode 100644
index 0000000..52f1f25
--- /dev/null
+++ b/test/tc_mauve_alert_changed.rb
@@ -0,0 +1,76 @@
+$:.unshift "../lib"
+
+require 'mauve/alert'
+require 'mauve/alert_changed'
+require 'mauve/configuration'
+require 'mauve/configuration_builder'
+require 'mauve/configuration_builders'
+require 'th_mauve'
+
+class TcMauveAlertChanged < Mauve::UnitTest
+ include Mauve
+
+ def setup
+ super
+ setup_database
+ end
+
+ def teardown
+ teardown_database
+ super
+ end
+
+ def test_reminder
+
+ config=<<EOF
+server {
+ database "sqlite::memory:"
+}
+
+person("test_person") {
+ all { true }
+}
+
+alert_group("test_group") {
+
+ notify("test_person") {
+ every 5.minutes
+ }
+
+}
+EOF
+
+ Mauve::Configuration.current = Mauve::ConfigurationBuilder.parse(config)
+
+ Server.instance.setup
+
+ alert = Mauve::Alert.new(:source => "test", :alert_id => "test_alert", :summary => "test alert")
+ alert.raise!
+
+ reminders = 1
+ notifications = 1
+
+ mins = 0
+ 121.times do
+ mins += 1
+
+ assert_equal(notifications, Server.instance.notification_buffer.length)
+ assert_equal(reminders, AlertChanged.count)
+
+ Timecop.freeze(Time.now+1.minutes)
+
+ if mins % 5 == 0
+ notifications += 1
+ reminders += 1
+ end
+
+ AlertChanged.all.each{|ac| ac.poll}
+ end
+
+ end
+
+
+end
+
+
+