Permalink
Fetching contributors…
Cannot retrieve contributors at this time
61 lines (48 sloc) 1.39 KB
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