test/step_test.rb in rodimus-0.1.0 vs test/step_test.rb in rodimus-0.1.1

- old
+ new

@@ -3,40 +3,46 @@ module Rodimus Rodimus.configure do |config| config.logger = Logger.new(nil) end + + class TestIO < IO + attr_reader :history + + def initialize + @history = [] + end + + def close; nil; end + + def puts(string) + history << string + end + end class TestStep < MiniTest::Unit::TestCase def setup @test_string = "row 1\nrow 2" @incoming = StringIO.new(@test_string) - @outgoing = StringIO.new + @outgoing = TestIO.new + @step = Object.new + @step.extend(Rodimus::Step) + @step.incoming = @incoming + @step.outgoing = @outgoing end def test_streaming_rows - step = Object.new - step.extend(Rodimus::Step) - step.incoming = @incoming - step.outgoing = @outgoing - step.run - @outgoing.rewind - assert_equal @test_string, @outgoing.read.chomp + @step.run + assert_equal @test_string, @outgoing.history.join end def test_process_row - step = Class.new do - include Rodimus::Step - - def process_row(row) - row.upcase - end - end.new - step.incoming = @incoming - step.outgoing = @outgoing - step.run - @outgoing.rewind - assert_equal @test_string.upcase, @outgoing.read.chomp + @step.define_singleton_method(:process_row) do |row| + row.upcase + end + @step.run + assert_equal @test_string.upcase, @outgoing.history.join end end end