PageRenderTime 63ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 1ms

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

https://bitbucket.org/mediashelf/fedora-migrator
Ruby | 120 lines | 104 code | 14 blank | 2 comment | 0 complexity | d1b032c6aa4d1b68bc69a76703160c23 MD5 | raw file
Possible License(s): GPL-3.0, GPL-2.0, IPL-1.0, AGPL-1.0, LGPL-3.0
  1. # Test for facets/annotations.rb
  2. require 'test/unit'
  3. require 'facets/annotations'
  4. class TestAnnotation1 < Test::Unit::TestCase
  5. class X
  6. def x1 ; end
  7. ann :x1, :a=>1
  8. ann :x1, :b=>2
  9. end
  10. def test_1_01
  11. assert_equal( X.ann(:x1,:a), X.ann(:x1,:a) )
  12. assert_equal( X.ann(:x1,:a).object_id, X.ann(:x1,:a).object_id )
  13. end
  14. def test_1_02
  15. X.ann :x1, :a => 2
  16. assert_equal( 2, X.ann(:x1,:a) )
  17. end
  18. end
  19. class TestAnnotation2 < Test::Unit::TestCase
  20. class X
  21. def x1 ; end
  22. ann :x1, :a=>1
  23. ann :x1, :b=>2
  24. end
  25. class Y < X ; end
  26. def test_2_01
  27. assert_equal( Y.ann(:x1,:a), Y.ann(:x1,:a) )
  28. assert_equal( Y.ann(:x1,:a).object_id, Y.ann(:x1,:a).object_id )
  29. end
  30. def test_2_02
  31. assert_equal( 1, Y.ann(:x1,:a) )
  32. assert_equal( 2, Y.ann(:x1,:b) )
  33. end
  34. def test_2_03
  35. Y.ann :x1,:a => 2
  36. assert_equal( 2, Y.ann(:x1,:a) )
  37. assert_equal( 2, Y.ann(:x1,:b) )
  38. end
  39. end
  40. class TestAnnotation3 < Test::Unit::TestCase
  41. class X
  42. ann :foo, Integer
  43. end
  44. class Y < X
  45. ann :foo, String
  46. end
  47. def test_3_01
  48. assert_equal( Integer, X.ann(:foo, :class) )
  49. end
  50. def test_3_02
  51. assert_equal( String, Y.ann(:foo, :class) )
  52. end
  53. end
  54. class TestAnnotation4 < Test::Unit::TestCase
  55. class X
  56. ann :foo, :doc => "hello"
  57. ann :foo, :bar => []
  58. end
  59. class Y < X
  60. ann :foo, :class => String, :doc => "bye"
  61. end
  62. def test_4_01
  63. assert_equal( "hello", X.ann(:foo,:doc) )
  64. end
  65. def test_4_02
  66. assert_equal( X.ann(:foo), { :doc => "hello", :bar => [] } )
  67. end
  68. def test_4_03
  69. X.ann(:foo,:bar) << "1"
  70. assert_equal( ["1"], X.ann(:foo,:bar) )
  71. end
  72. def test_4_04
  73. assert_equal( "bye", Y.ann(:foo,:doc) )
  74. end
  75. def test_4_05
  76. #assert_equal( nil, Y.ann(:foo,:bar) )
  77. assert_equal( ["1"], Y.ann(:foo,:bar) )
  78. end
  79. def test_4_06
  80. Y.ann(:foo, :doc => "cap")
  81. assert_equal( "cap", Y.ann(:foo, :doc) )
  82. end
  83. def test_4_07
  84. Y.ann!(:foo,:bar) << "2"
  85. assert_equal( ["1", "2"], Y.ann(:foo,:bar) )
  86. assert_equal( ["1", "2"], Y.ann(:foo,:bar) )
  87. assert_equal( ["1"], X.ann(:foo,:bar) )
  88. end
  89. end
  90. class TC_Attributes_Using_Attr < Test::Unit::TestCase
  91. class A
  92. attr :x, :cast=>"to_s"
  93. end
  94. def test_01
  95. assert_equal( "to_s", A.ann(:x,:cast) )
  96. end
  97. end
  98. class TC_Attributes_Using_Attr_Accessor < Test::Unit::TestCase
  99. class A
  100. attr_accessor :x, :cast=>"to_s"
  101. end
  102. def test_01
  103. a = A.new
  104. assert_equal( [:x], A.instance_attributes )
  105. end
  106. end