class Fluent::Test::TimeSlicedOutputTestDriver
Attributes
tag[RW]
Public Class Methods
new(klass, tag='test', &block)
click to toggle source
Calls superclass method
Fluent::Test::InputTestDriver.new
# File lib/fluent/test/output_test.rb, line 103 def initialize(klass, tag='test', &block) super(klass, &block) @entries = {} @expected_buffer = nil @tag = tag end
Public Instance Methods
emit(record, time=Time.now)
click to toggle source
# File lib/fluent/test/output_test.rb, line 112 def emit(record, time=Time.now) slicer = @instance.instance_eval{@time_slicer} key = slicer.call(time.to_i) @entries[key] = [] unless @entries.has_key?(key) @entries[key] << [time.to_i, record] self end
expect_format(str)
click to toggle source
# File lib/fluent/test/output_test.rb, line 120 def expect_format(str) (@expected_buffer ||= '') << str end
run(&block)
click to toggle source
Calls superclass method
Fluent::Test::InputTestDriver#run
# File lib/fluent/test/output_test.rb, line 124 def run(&block) result = [] super { buffer = '' @entries.keys.each {|key| es = ArrayEventStream.new(@entries[key]) @instance.emit(@tag, es, NullOutputChain.instance) buffer << @instance.format_stream(@tag, es) } block.call if block if @expected_buffer assert_equal(@expected_buffer, buffer) end chunks = @instance.instance_eval { @buffer.instance_eval { chunks = [] @map.keys.each {|key| chunks.push(@map.delete(key)) } chunks } } chunks.each { |chunk| result.push(@instance.write(chunk)) } } result end