Sha256: d703a9412cc2ea836395a6be9ee583932e4600612ad1e509c47b44256339ab35

Contents?: true

Size: 910 Bytes

Versions: 5

Compression:

Stored size: 910 Bytes

Contents

require File.dirname(__FILE__) + '/helper'

class RuleTest < Test::Unit::TestCase

  module MatchModule
    def a_test
      :test
    end
  end

  NumericProc = Proc.new {
    def to_i
      text.to_i
    end

    def to_f
      text.to_f
    end
  }

  NumericModule = Module.new(&NumericProc)

  def test_match_module
    rule = EqualRule.new('a')
    rule.ext = MatchModule
    match = rule.match(input('a'))
    assert(match)
    assert_equal(:test, match.a_test)
  end

  def test_numeric_proc
    rule = EqualRule.new(1)
    rule.ext = NumericProc
    match = rule.match(input('1'))
    assert(match)
    assert_equal(1, match.to_i)
    assert_instance_of(Float, match.to_f)
  end

  def test_numeric_module
    rule = EqualRule.new(1)
    rule.ext = NumericModule
    match = rule.match(input('1'))
    assert(match)
    assert_equal(1, match.to_i)
    assert_instance_of(Float, match.to_f)
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
citrus-1.4.0 test/rule_test.rb
citrus-1.3.0 test/rule_test.rb
citrus-1.2.2 test/rule_test.rb
citrus-1.2.1 test/rule_test.rb
citrus-1.2.0 test/rule_test.rb