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
|
$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.require_empty = false
self.expected = Array
end
def default_processor exp
t, *rest = exp
s(t, *rest.map { |s| "#{s} woot" })
end
end
class TestCompositeSexpProcessor < Minitest::Test
def setup
@p = CompositeSexpProcessor.new
end
def test_process_default
data = s(1, 2, 3)
result = @p.process(data.dup)
assert_equal(data.dup, result)
end
def test_process_fake1
data = s(: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 = s(: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
skip
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
|