/vendor/gems/facets-2.4.5/test/more/test_overload.rb
Ruby | 160 lines | 108 code | 45 blank | 7 comment | 0 complexity | 636763ccc40355f8192a781089efc7a9 MD5 | raw file
Possible License(s): GPL-3.0, GPL-2.0, IPL-1.0, AGPL-1.0, LGPL-3.0
- # Test facets/overload.rb
- require 'facets/overload.rb'
- require 'test/unit'
- #
- #
- class TC_Overload_01 < Test::Unit::TestCase
- class X
- def x
- "hello"
- end
- overload :x, Array do |x|
- [Array, x]
- end
- overload :x, Symbol do |x|
- [Symbol, x]
- end
- end
- def setup
- @x = X.new
- end
- def test_x
- assert_equal( "hello", @x.x )
- end
- def test_a
- assert_equal( [Array, [1]], @x.x([1]) )
- end
- def test_s
- assert_equal( [Symbol, :a], @x.x(:a) )
- end
- end
- #
- #
- class TC_Overload_02 < Test::Unit::TestCase
- class X
- def x
- "hello"
- end
- overload :x, Integer do |i|
- i
- end
- overload :x, String, String do |s1, s2|
- [s1, s2]
- end
- end
- def setup
- @x = X.new
- end
- def test_x
- assert_equal( "hello", @x.x )
- end
- def test_i
- assert_equal( 1, @x.x(1) )
- end
- def test_s
- assert_equal( ["a","b"], @x.x("a","b") )
- end
- end
- #
- #
- class TC_Overload_03 < Test::Unit::TestCase
- class SubArray < Array
- end
- class SubSubArray < SubArray
- end
-
-
- class X
- def x
- "hello"
- end
- overload :x, Integer do |i|
- i
- end
-
- overload :x, Symbol do |s|
- s
- end
-
- overload :x, String, String do |s1, s2|
- [s1, s2]
- end
- overload :x, Symbol, String do |s1, s2|
- [s1, s2]
- end
-
- overload :x, Array do |a|
- "array"
- end
- end
- def setup
- @x = X.new
- end
- def test_x
- assert_equal( "hello", @x.x )
- end
- def test_i
- assert_equal( 1, @x.x(1) )
- end
- def test_strings
- assert_equal( ["a","b"], @x.x("a","b") )
- end
- def test_symbol_string
- assert_equal( [:a,"b"], @x.x(:a,"b") )
- end
- def test_sym
- assert_equal( :sym, @x.x(:sym) )
- end
-
- def test_subarray
- assert_equal("array", @x.x([]))
- assert_equal("array", @x.x(SubArray.new))
- assert_equal("array", @x.x(SubSubArray.new))
- end
-
- def test_raise
- assert_raise ArgumentError do
- X.module_eval do
- overload :x, 42 do end
- end
- end
- end
- end