Sha256: f2aa9bc16fb9d28ee0a6faf167d88ebae6dbd16a03886ecf1ebd686b3fdef3c4

Contents?: true

Size: 1.96 KB

Versions: 7

Compression:

Stored size: 1.96 KB

Contents

require "helper"

class SqlInputTest < Test::Unit::TestCase
  def setup
    Fluent::Test.setup
  end

  def teardown
  end

  CONFIG = %[
    adapter postgresql
    host localhost
    port 5432
    database fluentd_test

    username fluentd
    password fluentd

    tag_prefix db

    <table>
      table messages
      tag logs
      update_column updated_at
      time_column updated_at
    </table>
  ]

  def create_driver(conf = CONFIG)
    Fluent::Test::InputTestDriver.new(Fluent::SQLInput).configure(conf)
  end

  def test_configure
    d = create_driver
    expected = {
      host: "localhost",
      port: 5432,
      adapter: "postgresql",
      database: "fluentd_test",
      username: "fluentd",
      password: "fluentd",
      tag_prefix: "db"
    }
    actual = {
      host: d.instance.host,
      port: d.instance.port,
      adapter: d.instance.adapter,
      database: d.instance.database,
      username: d.instance.username,
      password: d.instance.password,
      tag_prefix: d.instance.tag_prefix
    }
    assert_equal(expected, actual)
    tables = d.instance.instance_variable_get(:@tables)
    assert_equal(1, tables.size)
    messages = tables.first
    assert_equal("messages", messages.table)
    assert_equal("logs", messages.tag)
  end

  def test_message
    d = create_driver(CONFIG + "select_interval 1")
    Message.create!(message: "message 1")
    Message.create!(message: "message 2")
    Message.create!(message: "message 3")

    d.run

    assert_equal("db.logs", d.emits[0][0])
    expected = [
      [d.emits[0][1], "message 1"],
      [d.emits[1][1], "message 2"],
      [d.emits[2][1], "message 3"],
    ]
    actual = [
      [Time.parse(d.emits[0][2]["updated_at"]).to_i, d.emits[0][2]["message"]],
      [Time.parse(d.emits[1][2]["updated_at"]).to_i, d.emits[1][2]["message"]],
      [Time.parse(d.emits[2][2]["updated_at"]).to_i, d.emits[2][2]["message"]],
    ]
    assert_equal(expected, actual)
  end

  class Message < ActiveRecord::Base
  end
end

Version data entries

7 entries across 7 versions & 2 rubygems

Version Path
fluent-plugin-sql-0.6.1 test/plugin/test_in_sql.rb
fluent-plugin-sql-enchanced-0.5.5 test/plugin/test_in_sql.rb
fluent-plugin-sql-0.6.0 test/plugin/test_in_sql.rb
fluent-plugin-sql-enchanced-0.5.3 test/plugin/test_in_sql.rb
fluent-plugin-sql-enchanced-0.5.2 test/plugin/test_in_sql.rb
fluent-plugin-sql-0.5.2 test/plugin/test_in_sql.rb
fluent-plugin-sql-0.5.1 test/plugin/test_in_sql.rb