class Fluent::Test::TestDriver

def initialize(klass, &block)

def initialize(klass, &block)
  if klass.is_a?(Class)
    if block
      # Create new class for test w/ overwritten methods
      #   klass.dup is worse because its ancestors does NOT include original class name
      klass_name = klass.name
      klass = Class.new(klass)
      klass.define_singleton_method("name") { klass_name }
      klass.module_eval(&block)
    end
    @instance = klass.new
  else
    @instance = klass
  end
  @instance.router = Engine.root_agent.event_router
  @instance.log = TestLogger.new
  Engine.root_agent.instance_variable_set(:@log, @instance.log)
  @config = Config.new
end