test/mixin/test_plaintextformatter.rb in fluent-mixin-plaintextformatter-0.2.2 vs test/mixin/test_plaintextformatter.rb in fluent-mixin-plaintextformatter-0.2.3

- old
+ new

@@ -103,11 +103,11 @@ # output_include_time true, output_include_tag true, localtime, separator SOH assert_equal ['2012/07/13:07:05:05', 'b'], line.chomp.split(/\001/, 3)[0..1] # output_data_type json assert_equal r, JSON.parse(line.chomp.split(/\001/, 3)[2]) end - + def test_default_without_time_tag p = create_plugin_instance(Fluent::TestCOutput, "type testc\n") r = {'foo' => 'foo foo baz', 'bar' => 10000} # stringify assert_equal r, JSON.parse(p.stringify_record(r)) @@ -172,10 +172,35 @@ assert_equal "10000,foo foo baz", p.stringify_record(r) # format assert_equal "10000,foo foo baz\n", p.format('test.a', 1342163105, r) end + def test_format_invalid_utf8_sequence + invalid_str = [0xFA, 0xFB].pack('CC').force_encoding('utf-8') + valid_str = [0xFF, 0xE3].pack("U*") + + p1 = create_plugin_instance(Fluent::TestAOutput, %[ +type testa +output_include_time true +output_include_tag true +output_data_type json +]) + r1 = p1.format('tag', Fluent::Engine.now, {'foo' => valid_str, 'bar' => invalid_str + valid_str}) + # #format should logs for this record (but we cannot test it...) + assert_equal '', r1 + + p2 = create_plugin_instance(Fluent::TestAOutput, %[ +type testa +output_include_time true +output_include_tag true +output_data_type ltsv +]) + r2 = p2.format('tag', Fluent::Engine.now, {'foo' => valid_str, 'bar' => invalid_str + valid_str}) + # #format should logs for this record (but we cannot test it...) + assert_equal '', r2 + end + def test_field_separator_newline_ltsv p = create_plugin_instance(Fluent::TestDOutput, "type testd\nutc\n") r = {'foo' => 'foo foo baz', 'bar' => 10000} rs = {:foo => 'foo foo baz', :bar => "10000"} # stringify @@ -196,7 +221,21 @@ # LTSV breaks compatibility for LTSV.parse # Results of LTSV.parse(string_of_single_object) returns Array instance after v0.0.2 obj_from_ltsv = obj_from_ltsv.first end assert_equal rs, obj_from_ltsv + end + + def test_format_boolean_attribute + p = create_plugin_instance(Fluent::TestAOutput, %[ +type testa +output_include_time true +output_include_tag true +output_data_type attr:foo,bar +]) + r = {'foo' => true, 'bar' => false} + # stringify + assert_equal "true\tfalse", p.stringify_record(r) + # format + assert_equal "2012-07-13T07:05:05Z\ttest.a\ttrue\tfalse\n", p.format('test.a', 1342163105, r) end end