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