aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorPatrick J Cherry <patrick@bytemark.co.uk>2012-11-28 09:38:12 +0000
committerPatrick J Cherry <patrick@bytemark.co.uk>2012-11-28 09:38:12 +0000
commita3e4e3a39738a0692732a3f2bc51f1ca5c8e3a70 (patch)
treed4e264c43b20880acfb6c281b97b2d9ba400c45e /test
parentc0f44edb46b7433d9e4a47543ab22fe6fbe81b80 (diff)
Finalised hack to validations such that they only occur when the object is dirty.
Diffstat (limited to 'test')
-rw-r--r--test/tc_mauve_database_peculiarities.rb57
1 files changed, 57 insertions, 0 deletions
diff --git a/test/tc_mauve_database_peculiarities.rb b/test/tc_mauve_database_peculiarities.rb
index 58b73f3..fa21553 100644
--- a/test/tc_mauve_database_peculiarities.rb
+++ b/test/tc_mauve_database_peculiarities.rb
@@ -78,6 +78,63 @@ class TcMauveDatabasePostgresPeculiarities < TcMauveDatabasePeculiarities
super
(system("dropdb #{@temp_db}") || puts("Failed to drop #{@temp_db}")) if @temp_db
end
+
+
+ def test_reminders_only_go_once
+ config=<<EOF
+server {
+ database "#{@db_url}"
+ use_notification_buffer false
+}
+
+notification_method("email") {
+ debug!
+ deliver_to_queue []
+ disable_normal_delivery!
+}
+
+person ("test1") {
+ email "test1@example.com"
+ all { email }
+ suppress_notifications_after( 1 => 1 )
+}
+
+alert_group("default") {
+ notify("test1") {
+ during{ true }
+ every 1.minute
+ }
+}
+EOF
+ Configuration.current = ConfigurationBuilder.parse(config)
+ notification_buffer = Configuration.current.notification_methods["email"].deliver_to_queue
+ Server.instance.setup
+
+ a = Alert.new(
+ :alert_id => "test",
+ :source => "test",
+ :subject => "test"
+ )
+
+ assert(a.raise!, "raise was not successful")
+ assert(a.saved?)
+ assert_equal(1, notification_buffer.length)
+ notification_buffer.pop
+
+ 10.times do
+ Timecop.freeze(Time.now + 1.minute)
+ 5.times do
+ AlertChanged.all.each do |ac|
+ assert(ac.poll)
+ end
+ end
+ assert_equal(1, notification_buffer.length)
+ notification_buffer.pop
+ end
+
+ end
+
+
end
class TcMauveDatabaseSqlite3Peculiarities < TcMauveDatabasePeculiarities