1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
#!/usr/local/bin/ruby -w
$TESTING = true
require 'composite_sexp_processor'
require 'minitest/autorun'
class FakeProcessor1 < SexpProcessor # ZenTest SKIP
def initialize
super
self.warn_on_default = false
self.default_method = :default_processor
self.expected = Array
end
def default_processor(exp)
result = []
result << exp.shift
until exp.empty? do
result << exp.shift.to_s + " woot"
end
result
end
end
class TestCompositeSexpProcessor < MiniTest::Unit::TestCase
def setup
@p = CompositeSexpProcessor.new
end
def test_process_default
data = [1, 2, 3]
result = @p.process(data.dup)
assert_equal(data.dup, result)
end
def test_process_fake1
data = [:x, 1, 2, 3]
@p << FakeProcessor1.new
result = @p.process(data.dup)
assert_equal [:x, "1 woot", "2 woot", "3 woot"], result
end
def test_process_fake1_twice
data = [:x, 1, 2, 3]
@p << FakeProcessor1.new
@p << FakeProcessor1.new
result = @p.process(data.dup)
assert_equal [:x, "1 woot woot", "2 woot woot", "3 woot woot"], result
end
def test_processors
# everything is tested by test_append
end
def test_append
assert_equal([], @p.processors)
assert_raises(ArgumentError) do
@p << 42
end
fp1 = FakeProcessor1.new
@p << fp1
assert_equal([fp1], @p.processors)
end
end
|