test/plugin/test_out_notifier.rb in fluent-plugin-notifier-0.1.0 vs test/plugin/test_out_notifier.rb in fluent-plugin-notifier-0.2.0
- old
+ new
@@ -1,9 +1,111 @@
require 'helper'
class NotifierOutputTest < Test::Unit::TestCase
CONFIG = %[
+ type notifier
+ input_tag_remove_prefix test
+ <test>
+ check numeric
+ target_key numfield
+ lower_threshold 2.5
+ upper_threshold 5000
+ </test>
+ <test>
+ check regexp
+ target_key textfield
+ include_pattern Target.*
+ exclude_pattern TargetC
+ </test>
+ <def>
+ pattern pattern1
+ check numeric_upward
+ warn_threshold 25
+ crit_threshold 50
+ tag_warn alert.warn
+ tag_crit alert.crit
+ target_keys num1,num2,num3
+ </def>
+ <def>
+ pattern pattern2
+ check string_find
+ crit_regexp ERROR
+ warn_regexp WARNING
+ tag alert
+ target_key_pattern ^message.*$
+ </def>
]
+
def create_driver(conf=CONFIG,tag='test')
Fluent::Test::OutputTestDriver.new(Fluent::NotifierOutput, tag).configure(conf)
+ end
+
+ def test_configure
+ d = create_driver
+ assert_nil nil # no one exception raised
+ end
+
+ def test_emit
+ d = create_driver
+ d.run do
+ d.emit({'num1' => 20, 'message' => 'INFO'})
+ end
+ assert_equal 0, d.emits.size
+
+ d = create_driver
+ d.run do
+ d.emit({'num1' => 30, 'message' => 'INFO'})
+ end
+ assert_equal 0, d.emits.size
+
+ d = create_driver(CONFIG, 'test.input')
+ d.run do
+ d.emit({'num1' => 30, 'message' => 'INFO', 'numfield' => '30', 'textfield' => 'TargetX'})
+ end
+ assert_equal 1, d.emits.size
+ assert_equal 'alert.warn', d.emits[0][0]
+ assert_equal 'pattern1', d.emits[0][2]['pattern']
+ assert_equal 'input', d.emits[0][2]['target_tag']
+ assert_equal 'numeric_upward', d.emits[0][2]['check_type']
+ assert_equal 'warn', d.emits[0][2]['level']
+ assert_equal 25.0, d.emits[0][2]['threshold']
+ assert_equal 30.0, d.emits[0][2]['value']
+
+ d = create_driver
+ d.run do
+ d.emit({'num1' => 60, 'message' => 'foo bar WARNING xxxxx', 'numfield' => '30', 'textfield' => 'TargetX'})
+ end
+ assert_equal 2, d.emits.size
+ assert_equal 'alert.crit', d.emits[0][0]
+ assert_equal 'pattern1', d.emits[0][2]['pattern']
+ assert_equal 'test', d.emits[0][2]['target_tag']
+ assert_equal 'numeric_upward', d.emits[0][2]['check_type']
+ assert_equal 'crit', d.emits[0][2]['level']
+ assert_equal 50.0, d.emits[0][2]['threshold']
+ assert_equal 60.0, d.emits[0][2]['value']
+ assert_equal 'alert', d.emits[1][0]
+ assert_equal 'pattern2', d.emits[1][2]['pattern']
+ assert_equal 'test', d.emits[1][2]['target_tag']
+ assert_equal 'string_find', d.emits[1][2]['check_type']
+ assert_equal 'warn', d.emits[1][2]['level']
+ assert_equal '/WARNING/', d.emits[1][2]['regexp']
+ assert_equal 'foo bar WARNING xxxxx', d.emits[1][2]['value']
+
+ d = create_driver
+ d.run do
+ d.emit({'num1' => 60, 'message' => 'foo bar WARNING xxxxx', 'numfield' => '2.4', 'textfield' => 'TargetX'})
+ end
+ assert_equal 0, d.emits.size
+
+ d = create_driver
+ d.run do
+ d.emit({'num1' => 60, 'message' => 'foo bar WARNING xxxxx', 'numfield' => '20', 'textfield' => 'TargetC'})
+ end
+ assert_equal 0, d.emits.size
+
+ d = create_driver
+ d.run do
+ d.emit({'num1' => 60, 'message' => 'foo bar WARNING xxxxx', 'numfield' => '20'})
+ end
+ assert_equal 0, d.emits.size
end
end