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
|
require File.expand_path('../helper', __FILE__)
class StringTerminalTest < Test::Unit::TestCase
def test_terminal?
rule = StringTerminal.new
assert(rule.terminal?)
end
def test_eql?
rule = StringTerminal.new('abc')
assert_equal('abc', rule)
end
def test_exec
rule = StringTerminal.new('abc')
events = rule.exec(Input.new('abc'))
assert_equal([rule, CLOSE, 3], events)
end
def test_exec_miss
rule = StringTerminal.new('abc')
events = rule.exec(Input.new('def'))
assert_equal([], events)
end
def test_exec_short
rule = StringTerminal.new('abc')
events = rule.exec(Input.new('ab'))
assert_equal([], events)
end
def test_exec_long
rule = StringTerminal.new('abc')
events = rule.exec(Input.new('abcd'))
assert_equal([rule, CLOSE, 3], events)
end
def test_exec_case_insensitive
rule = StringTerminal.new('abc', Regexp::IGNORECASE)
events = rule.exec(Input.new('abc'))
assert_equal([rule, CLOSE, 3], events)
events = rule.exec(Input.new('ABC'))
assert_equal([rule, CLOSE, 3], events)
events = rule.exec(Input.new('Abc'))
assert_equal([rule, CLOSE, 3], events)
end
def test_to_s
rule = StringTerminal.new('abc')
assert_equal('"abc"', rule.to_s)
end
def test_to_s_case_insensitive
rule = StringTerminal.new('abc', Regexp::IGNORECASE)
assert_equal('`abc`', rule.to_s)
end
end
|