PageRenderTime 57ms CodeModel.GetById 33ms RepoModel.GetById 0ms app.codeStats 0ms

/vendor/gems/facets-2.4.5/test/more/test_overload.rb

https://bitbucket.org/mediashelf/fedora-migrator
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
  1. # Test facets/overload.rb
  2. require 'facets/overload.rb'
  3. require 'test/unit'
  4. #
  5. #
  6. class TC_Overload_01 < Test::Unit::TestCase
  7. class X
  8. def x
  9. "hello"
  10. end
  11. overload :x, Array do |x|
  12. [Array, x]
  13. end
  14. overload :x, Symbol do |x|
  15. [Symbol, x]
  16. end
  17. end
  18. def setup
  19. @x = X.new
  20. end
  21. def test_x
  22. assert_equal( "hello", @x.x )
  23. end
  24. def test_a
  25. assert_equal( [Array, [1]], @x.x([1]) )
  26. end
  27. def test_s
  28. assert_equal( [Symbol, :a], @x.x(:a) )
  29. end
  30. end
  31. #
  32. #
  33. class TC_Overload_02 < Test::Unit::TestCase
  34. class X
  35. def x
  36. "hello"
  37. end
  38. overload :x, Integer do |i|
  39. i
  40. end
  41. overload :x, String, String do |s1, s2|
  42. [s1, s2]
  43. end
  44. end
  45. def setup
  46. @x = X.new
  47. end
  48. def test_x
  49. assert_equal( "hello", @x.x )
  50. end
  51. def test_i
  52. assert_equal( 1, @x.x(1) )
  53. end
  54. def test_s
  55. assert_equal( ["a","b"], @x.x("a","b") )
  56. end
  57. end
  58. #
  59. #
  60. class TC_Overload_03 < Test::Unit::TestCase
  61. class SubArray < Array
  62. end
  63. class SubSubArray < SubArray
  64. end
  65. class X
  66. def x
  67. "hello"
  68. end
  69. overload :x, Integer do |i|
  70. i
  71. end
  72. overload :x, Symbol do |s|
  73. s
  74. end
  75. overload :x, String, String do |s1, s2|
  76. [s1, s2]
  77. end
  78. overload :x, Symbol, String do |s1, s2|
  79. [s1, s2]
  80. end
  81. overload :x, Array do |a|
  82. "array"
  83. end
  84. end
  85. def setup
  86. @x = X.new
  87. end
  88. def test_x
  89. assert_equal( "hello", @x.x )
  90. end
  91. def test_i
  92. assert_equal( 1, @x.x(1) )
  93. end
  94. def test_strings
  95. assert_equal( ["a","b"], @x.x("a","b") )
  96. end
  97. def test_symbol_string
  98. assert_equal( [:a,"b"], @x.x(:a,"b") )
  99. end
  100. def test_sym
  101. assert_equal( :sym, @x.x(:sym) )
  102. end
  103. def test_subarray
  104. assert_equal("array", @x.x([]))
  105. assert_equal("array", @x.x(SubArray.new))
  106. assert_equal("array", @x.x(SubSubArray.new))
  107. end
  108. def test_raise
  109. assert_raise ArgumentError do
  110. X.module_eval do
  111. overload :x, 42 do end
  112. end
  113. end
  114. end
  115. end