require "test_helper" require "fluent/plugin/formatter_sekoia" class FormatterSEKOIATest < Test::Unit::TestCase def setup Fluent::Test.setup end def create_driver(conf = CONFIG) Fluent::Test::Driver::Formatter.new(Fluent::Plugin::FormatterSEKOIA).configure(conf) end def test_format_default formatter_driver = create_driver %( @type sekoia ) tag = "test-formatter" time = Fluent::EventTime.new(0, 123456000) record = {"log" => "test-log"} assert_equal "<14>1 1970-01-01T00:00:00.123456+00:00 - - - - [SEKOIA@53288 intake_key=\"\"] test-log\n", formatter_driver.instance.format(tag, time, record) end def test_format_without_message_size formatter_driver = create_driver %( @type sekoia ) tag = "test-formatter" time = Fluent::EventTime.new(0, 123456000) record = {"log" => "test-log"} assert_equal "<14>1 1970-01-01T00:00:00.123456+00:00 - - - - [SEKOIA@53288 intake_key=\"\"] test-log\n", formatter_driver.instance.format(tag, time, record) end def test_format_with_message_size formatter_driver = create_driver %( @type sekoia rfc6587_message_size true ) tag = "test-formatter" time = Fluent::EventTime.new(0, 123456000) record = {"log" => "test-log"} formatted_message = "<14>1 1970-01-01T00:00:00.123456+00:00 - - - - [SEKOIA@53288 intake_key=\"\"] test-log" message_size = formatted_message.length assert_equal "#{message_size} #{formatted_message}", formatter_driver.instance.format(tag, time, record) end def test_format_with_app_name formatter_driver = create_driver %( @type sekoia app_name_field example.custom_field ) tag = "test-formatter" time = Fluent::EventTime.new(0, 123456000) record = {"log" => "test-log", "example" => {"custom_field" => "custom-value"}} formatted_message = "<14>1 1970-01-01T00:00:00.123456+00:00 - custom-value - - [SEKOIA@53288 intake_key=\"\"] test-log\n" assert_equal "#{formatted_message}", formatter_driver.instance.format(tag, time, record) end def test_format_with_proc_id formatter_driver = create_driver %( @type sekoia proc_id_field example.custom_field ) tag = "test-formatter" time = Fluent::EventTime.new(0, 123456000) record = {"log" => "test-log", "example" => {"custom_field" => "custom-value"}} formatted_message = "<14>1 1970-01-01T00:00:00.123456+00:00 - - custom-value - [SEKOIA@53288 intake_key=\"\"] test-log\n" assert_equal "#{formatted_message}", formatter_driver.instance.format(tag, time, record) end def test_format_with_intake_key formatter_driver = create_driver %( @type sekoia app_name_field example.custom_field intake_key_field field.intake_key ) tag = "test-formatter" time = Fluent::EventTime.new(0, 123456000) record = { "log" => "test-log", "example" => { "custom_field" => "custom-value" }, "field" => { "intake_key" => "testIntakeKey" } } formatted_message = "<14>1 1970-01-01T00:00:00.123456+00:00 - custom-value - - [SEKOIA@53288 intake_key=\"testIntakeKey\"] test-log\n" assert_equal "#{formatted_message}", formatter_driver.instance.format(tag, time, record) end def test_format_with_intake_key_and_default_path formatter_driver = create_driver %( @type sekoia ) tag = "test-formatter" time = Fluent::EventTime.new(0, 123456000) record = { "log" => "test-log", "kubernetes" => { "annotations" => { "sekoia-io-intake-key" => "1234" }, "labels" => { "app" => "test" } } } formatted_message = "<14>1 1970-01-01T00:00:00.123456+00:00 - test - - [SEKOIA@53288 intake_key=\"1234\"] test-log\n" assert_equal "#{formatted_message}", formatter_driver.instance.format(tag, time, record) end end