Sha256: 32e815fda9ffe4b852481c666d9b08012229f1617b6af49585fb158c6a38b5bc

Contents?: true

Size: 1.9 KB

Versions: 48

Compression:

Stored size: 1.9 KB

Contents

require_relative 'helper'
require 'fluent/filter'

class FilterTest < Test::Unit::TestCase
  include Fluent

  setup do
    Fluent::Test.setup
    @time = Fluent::Engine.now
  end

  def create_driver(klass = Fluent::Filter, conf = '')
    Test::FilterTestDriver.new(klass).configure(conf, true)
  end

  def emit(klass, msgs, conf = '')
    d = create_driver(klass, conf)
    d.run {
      msgs.each {|msg|
        d.emit({'message' => msg}, @time)
      }
    }.filtered
  end

  sub_test_case 'configure' do
    test 'check default' do
      assert_nothing_raised { create_driver }
    end
  end

  sub_test_case 'filter' do
    test 'NotImplementedError' do
      not_implemented_filter = Class.new(Fluent::Filter)
      assert_raise(NotImplementedError) { emit(not_implemented_filter, ['foo']) }
    end

    test 'null filter' do
      null_filter = Class.new(Fluent::Filter) do |c|
        def filter(tag, time, record)
          nil
        end
      end
      es = emit(null_filter, ['foo'])
      assert_equal(0, es.instance_variable_get(:@record_array).size)
    end

    test 'pass filter' do
      pass_filter = Class.new(Fluent::Filter) do |c|
        def filter(tag, time, record)
          record
        end
      end
      es = emit(pass_filter, ['foo'])
      assert_equal(1, es.instance_variable_get(:@record_array).size)
    end
  end

  sub_test_case 'filter_stream' do
    test 'null filter' do
      null_filter = Class.new(Fluent::Filter) do |c|
        def filter_stream(tag, es)
          MultiEventStream.new
        end
      end
      es = emit(null_filter, ['foo'])
      assert_equal(0, es.instance_variable_get(:@record_array).size)
    end

    test 'pass filter' do
      pass_filter = Class.new(Fluent::Filter) do |c|
        def filter_stream(tag, es)
          es
        end
      end
      es = emit(pass_filter, ['foo'])
      assert_equal(1, es.instance_variable_get(:@record_array).size)
    end
  end
end

Version data entries

48 entries across 48 versions & 2 rubygems

Version Path
fluentd-0.12.43 test/test_filter.rb
fluentd-0.12.42 test/test_filter.rb
fluentd-0.12.41 test/test_filter.rb
fluentd-0.12.40 test/test_filter.rb
fluentd-0.12.39 test/test_filter.rb
fluentd-0.12.38 test/test_filter.rb
fluentd-0.12.37 test/test_filter.rb
fluentd-0.12.36 test/test_filter.rb
fluent-plugin-detect-memb-exceptions-0.0.2 vendor/bundle/ruby/2.0.0/gems/fluentd-0.12.35/test/test_filter.rb
fluent-plugin-detect-memb-exceptions-0.0.1 vendor/bundle/ruby/2.0.0/gems/fluentd-0.12.35/test/test_filter.rb
fluentd-0.12.35 test/test_filter.rb
fluentd-0.12.34 test/test_filter.rb
fluentd-0.12.33 test/test_filter.rb
fluentd-0.12.32 test/test_filter.rb
fluentd-0.12.31 test/test_filter.rb
fluentd-0.12.30 test/test_filter.rb
fluentd-0.12.29 test/test_filter.rb
fluentd-0.14.3 test/test_filter.rb
fluentd-0.12.28 test/test_filter.rb
fluentd-0.14.2 test/test_filter.rb