test/plugin/test_def.rb in fluent-plugin-notifier-0.3.0 vs test/plugin/test_def.rb in fluent-plugin-notifier-1.0.0

- old
+ new

@@ -1,15 +1,22 @@ require 'helper' +require 'fluent/test/helpers' class NotifierOutputDefinitionTest < Test::Unit::TestCase - TEST_DEFAULTS = { - :tag => 'n', :tag_warn => nil, :tag_crit => nil, - :interval_1st => 60, :repetitions_1st => 5, - :interval_2nd => 300, :repetitions_2nd => 5, - :interval_3rd => 1800 - } + include Fluent::Test::Helpers + def setup + Fluent::Test.setup + @i = Fluent::Plugin::NotifierOutput.new + @i.configure(config_element()) + end + + def gen_conf(hash) + root = @i.configured_section_create(nil, config_element('root', '', {}, [config_element('def', '', hash)])) + root.def_configs.first + end + TEST_CONF1 = { 'tag' => 'notify', 'pattern' => 'name1', 'target_keys' => 'field1,field2', 'check' => 'numeric_upward', 'warn_threshold' => '1', 'crit_threshold' => '2', } @@ -22,122 +29,122 @@ 'interval_2nd' => '6', 'repetitions_2nd' => '2', 'interval_3rd' => '7' } def test_init - d = Fluent::NotifierOutput::Definition.new(TEST_CONF1, TEST_DEFAULTS) - assert_equal 'name1', d.pattern - assert_equal ['field1','field2'], d.target_keys - assert_equal :upward, d.instance_eval{ @check } - assert_equal 2.0, d.crit_threshold - assert_equal 1.0, d.warn_threshold - assert_equal 'notify', d.tag + d = Fluent::Plugin::NotifierOutput::Definition.new(gen_conf(TEST_CONF1), @i) + assert_equal('name1', d.pattern) + assert_equal(['field1','field2'], d.target_keys) + assert_equal(:upward, d.instance_eval{ @check }) + assert_equal(2.0, d.crit_threshold) + assert_equal(1.0, d.warn_threshold) + assert_equal('notify', d.tag) assert_nil d.tag_warn assert_nil d.tag_crit - assert_equal [60, 300, 1800], d.intervals - assert_equal [5, 5], d.repetitions + assert_equal([60, 300, 1800], d.intervals) + assert_equal([5, 5], d.repetitions) - d = Fluent::NotifierOutput::Definition.new(TEST_CONF2, TEST_DEFAULTS) - assert_equal 'name2', d.pattern - assert_equal /^field\d$/, d.target_key_pattern - assert_equal /^$/, d.exclude_key_pattern - assert_equal :find, d.instance_eval{ @check } - assert_equal /WARN/, d.warn_regexp - assert_equal /CRIT/, d.crit_regexp - assert_equal 'n', d.tag - assert_equal 'warn', d.tag_warn - assert_equal 'crit', d.tag_crit - assert_equal [5, 6, 7], d.intervals - assert_equal [1, 2], d.repetitions + d = Fluent::Plugin::NotifierOutput::Definition.new(gen_conf(TEST_CONF2), @i) + assert_equal('name2', d.pattern) + assert_equal(/^field\d$/, d.target_key_pattern) + assert_equal(/^$/, d.exclude_key_pattern) + assert_equal(:find, d.instance_eval{ @check }) + assert_equal(/WARN/, d.warn_regexp) + assert_equal(/CRIT/, d.crit_regexp) + assert_equal('notification', d.tag) + assert_equal('warn', d.tag_warn) + assert_equal('crit', d.tag_crit) + assert_equal([5, 6, 7], d.intervals) + assert_equal([1, 2], d.repetitions) end def test_match - d = Fluent::NotifierOutput::Definition.new(TEST_CONF1, TEST_DEFAULTS) - assert_equal true, d.match?('field1') - assert_equal true, d.match?('field2') + d = Fluent::Plugin::NotifierOutput::Definition.new(gen_conf(TEST_CONF1), @i) + assert_equal(true, d.match?('field1')) + assert_equal(true, d.match?('field2')) assert ! d.match?('field0') assert ! d.match?('field') assert ! d.match?('') - d = Fluent::NotifierOutput::Definition.new(TEST_CONF2, TEST_DEFAULTS) + d = Fluent::Plugin::NotifierOutput::Definition.new(gen_conf(TEST_CONF2), @i) assert_equal true, d.match?('field0') assert_equal true, d.match?('field1') assert_equal true, d.match?('field9') assert ! d.match?('field') assert ! d.match?('fieldx') assert ! d.match?(' field0') assert ! d.match?('field0 ') - d = Fluent::NotifierOutput::Definition.new(TEST_CONF2.merge({'exclude_key_pattern' => '^field[7-9]$'}), TEST_DEFAULTS) + d = Fluent::Plugin::NotifierOutput::Definition.new(gen_conf(TEST_CONF2.merge({'exclude_key_pattern' => '^field[7-9]$'})), @i) assert_equal true, d.match?('field0') assert_equal true, d.match?('field1') assert ! d.match?('field7') assert ! d.match?('field8') assert ! d.match?('field9') end def test_check_numeric t = Time.strptime('2012-07-19 14:40:30', '%Y-%m-%d %T') - d = Fluent::NotifierOutput::Definition.new(TEST_CONF1, TEST_DEFAULTS) + d = Fluent::Plugin::NotifierOutput::Definition.new(gen_conf(TEST_CONF1), @i) r = d.check('test.tag', t.to_i, {'field1' => '0.8', 'field2' => '1.5'}, 'field1') assert_nil r r = d.check('test.tag', t.to_i, {'field1' => '0.8', 'field2' => '1.5'}, 'field2') - assert_equal "name1\ttest.tag\tfield2", r[:hashkey] - assert_equal d, r[:match_def] - assert_equal 'notify', r[:emit_tag] - assert_equal 'name1', r['pattern'] - assert_equal 'test.tag', r['target_tag'] - assert_equal 'field2', r['target_key'] - assert_equal 'numeric_upward', r['check_type'] - assert_equal 'warn', r['level'] - assert_equal 1.0, r['threshold'] - assert_equal 1.5, r['value'] - assert_equal t.to_s, r['message_time'] + assert_equal("name1\ttest.tag\tfield2", r[:hashkey]) + assert_equal(d, r[:match_def]) + assert_equal('notify', r[:emit_tag]) + assert_equal('name1', r['pattern']) + assert_equal('test.tag', r['target_tag']) + assert_equal('field2', r['target_key']) + assert_equal('numeric_upward', r['check_type']) + assert_equal('warn', r['level']) + assert_equal(1.0, r['threshold']) + assert_equal(1.5, r['value']) + assert_equal(t.to_s, r['message_time']) r = d.check('test.tag', t.to_i, {'field1' => '200', 'field2' => '1.5'}, 'field1') - assert_equal "name1\ttest.tag\tfield1", r[:hashkey] - assert_equal d, r[:match_def] - assert_equal 'notify', r[:emit_tag] - assert_equal 'name1', r['pattern'] - assert_equal 'test.tag', r['target_tag'] - assert_equal 'field1', r['target_key'] - assert_equal 'numeric_upward', r['check_type'] - assert_equal 'crit', r['level'] - assert_equal 2.0, r['threshold'] - assert_equal 200.0, r['value'] - assert_equal t.to_s, r['message_time'] + assert_equal("name1\ttest.tag\tfield1", r[:hashkey]) + assert_equal(d, r[:match_def]) + assert_equal('notify', r[:emit_tag]) + assert_equal('name1', r['pattern']) + assert_equal('test.tag', r['target_tag']) + assert_equal('field1', r['target_key']) + assert_equal('numeric_upward', r['check_type']) + assert_equal('crit', r['level']) + assert_equal(2.0, r['threshold']) + assert_equal(200.0, r['value']) + assert_equal(t.to_s, r['message_time']) end def test_check_string t = Time.strptime('2012-07-19 14:40:30', '%Y-%m-%d %T') - d = Fluent::NotifierOutput::Definition.new(TEST_CONF2, TEST_DEFAULTS) + d = Fluent::Plugin::NotifierOutput::Definition.new(gen_conf(TEST_CONF2), @i) r = d.check('test.tag', t.to_i, {'field0' => 'hoge pos', 'field1' => 'CRIT fooooooo baaaaarrrrrrr'}, 'field0') assert_nil r r = d.check('test.tag', t.to_i, {'field0' => 'hoge pos', 'field1' => 'CRIT fooooooo baaaaarrrrrrr'}, 'field1') - assert_equal "name2\ttest.tag\tfield1", r[:hashkey] - assert_equal d, r[:match_def] - assert_equal 'crit', r[:emit_tag] - assert_equal 'name2', r['pattern'] - assert_equal 'test.tag', r['target_tag'] - assert_equal 'field1', r['target_key'] - assert_equal 'string_find', r['check_type'] - assert_equal 'crit', r['level'] - assert_equal '/CRIT/', r['regexp'] - assert_equal 'CRIT fooooooo baaaaarrrrrrr', r['value'] - assert_equal t.to_s, r['message_time'] + assert_equal("name2\ttest.tag\tfield1", r[:hashkey]) + assert_equal(d, r[:match_def]) + assert_equal('crit', r[:emit_tag]) + assert_equal('name2', r['pattern']) + assert_equal('test.tag', r['target_tag']) + assert_equal('field1', r['target_key']) + assert_equal('string_find', r['check_type']) + assert_equal('crit', r['level']) + assert_equal('/CRIT/', r['regexp']) + assert_equal('CRIT fooooooo baaaaarrrrrrr', r['value']) + assert_equal(t.to_s, r['message_time']) r = d.check('test.tag', t.to_i, {'field0' => 'hoge pos (WARN) check!', 'field1' => 'CRIT fooooooo baaaaarrrrrrr'}, 'field0') - assert_equal "name2\ttest.tag\tfield0", r[:hashkey] - assert_equal d, r[:match_def] - assert_equal 'warn', r[:emit_tag] - assert_equal 'name2', r['pattern'] - assert_equal 'test.tag', r['target_tag'] - assert_equal 'field0', r['target_key'] - assert_equal 'string_find', r['check_type'] - assert_equal 'warn', r['level'] - assert_equal '/WARN/', r['regexp'] - assert_equal 'hoge pos (WARN) check!', r['value'] - assert_equal t.to_s, r['message_time'] + assert_equal("name2\ttest.tag\tfield0", r[:hashkey]) + assert_equal(d, r[:match_def]) + assert_equal('warn', r[:emit_tag]) + assert_equal('name2', r['pattern']) + assert_equal('test.tag', r['target_tag']) + assert_equal('field0', r['target_key']) + assert_equal('string_find', r['check_type']) + assert_equal('warn', r['level']) + assert_equal('/WARN/', r['regexp']) + assert_equal('hoge pos (WARN) check!', r['value']) + assert_equal(t.to_s, r['message_time']) end end