class Fluent::Test::Driver::Filter

def filtered_records

def filtered_records
  @filtered.map {|_time, record| record }
end

def initialize(klass, opts: {}, &block)

def initialize(klass, opts: {}, &block)
  super
  raise ArgumentError, "plugin is not an instance of Fluent::Plugin::Filter" unless @instance.is_a? Fluent::Plugin::Filter
  @filtered = []
end

def instance_hook_after_started

def instance_hook_after_started
  super
  filter_hook = ->(time, record) { @filtered << [time, record] }
  m = Module.new do
    define_method(:filter_stream) do |tag, es|
      new_es = super(tag, es)
      new_es.each do |time, record|
        filter_hook.call(time, record)
      end
      new_es
    end
  end
  @instance.singleton_class.prepend(m)
end