Sha256: 19ddf052633ef3f3c7db0b0258f7be036dc2c934814bc7d4ade8822fe0a49a6f

Contents?: true

Size: 905 Bytes

Versions: 3

Compression:

Stored size: 905 Bytes

Contents

require File.expand_path('../helper', __FILE__)

class ButPredicateTest < Test::Unit::TestCase
  def test_terminal?
    rule = ButPredicate.new
    assert_equal(false, rule.terminal?)
  end

  def test_exec
    rule = ButPredicate.new('abc')

    events = rule.exec(Input.new('def'))
    assert_equal([rule.id, CLOSE, 3], events)

    events = rule.exec(Input.new('defabc'))
    assert_equal([rule.id, CLOSE, 3], events)
  end

  def test_exec_miss
    rule = ButPredicate.new('abc')
    events = rule.exec(Input.new('abc'))
    assert_equal([], events)
  end

  def test_consumption
    rule = ButPredicate.new('abc')

    input = Input.new('def')
    events = rule.exec(input)
    assert_equal(3, input.pos)

    input = Input.new('defabc')
    events = rule.exec(input)
    assert_equal(3, input.pos)
  end

  def test_to_s
    rule = ButPredicate.new('a')
    assert_equal('~"a"', rule.to_s)
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
citrus-2.2.2 test/but_predicate_test.rb
citrus-2.2.1 test/but_predicate_test.rb
citrus-2.2.0 test/but_predicate_test.rb