PageRenderTime 43ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

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

https://bitbucket.org/mediashelf/fedora-migrator
Ruby | 112 lines | 89 code | 21 blank | 2 comment | 0 complexity | 7ec7b9d2b1df31b3a3a4436caa757960 MD5 | raw file
Possible License(s): GPL-3.0, GPL-2.0, IPL-1.0, AGPL-1.0, LGPL-3.0
  1. # Test facets/openobject.rb
  2. require 'facets/openobject.rb'
  3. require 'test/unit'
  4. class TestOpenObject1 < Test::Unit::TestCase
  5. def test_1_01
  6. o = OpenObject.new
  7. assert( o.respond_to?(:key?) )
  8. end
  9. def test_1_02
  10. assert_instance_of( OpenObject, OpenObject[{}] )
  11. end
  12. def test_1_03
  13. f0 = OpenObject.new
  14. f0[:a] = 1
  15. #assert_equal( [1], f0.to_a )
  16. assert_equal( {:a=>1}, f0.to_h )
  17. end
  18. def test_1_04
  19. f0 = OpenObject[:a=>1]
  20. f0[:b] = 2
  21. assert_equal( {:a=>1,:b=>2}, f0.to_h )
  22. end
  23. def test_1_05
  24. f0 = OpenObject[:class=>1]
  25. assert_equal( 1, f0.class )
  26. end
  27. end
  28. class TestOpenObject2 < Test::Unit::TestCase
  29. def test_2_01
  30. f0 = OpenObject[:f0=>"f0"]
  31. h0 = { :h0=>"h0" }
  32. assert_equal( OpenObject[:f0=>"f0", :h0=>"h0"], f0.send(:merge,h0) )
  33. assert_equal( {:f0=>"f0", :h0=>"h0"}, h0.merge( f0 ) )
  34. end
  35. def test_2_02
  36. f1 = OpenObject[:f1=>"f1"]
  37. h1 = { :h1=>"h1" }
  38. f1.send(:update,h1)
  39. h1.update( f1 )
  40. assert_equal( OpenObject[:f1=>"f1", :h1=>"h1"], f1 )
  41. assert_equal( {:f1=>"f1", :h1=>"h1"}, h1 )
  42. end
  43. def test_2_03
  44. o = OpenObject[:a=>1,:b=>{:x=>9}]
  45. assert_equal( 9, o[:b][:x] )
  46. assert_equal( 9, o.b[:x] )
  47. end
  48. def test_2_04
  49. o = OpenObject["a"=>1,"b"=>{:x=>9}]
  50. assert_equal( 1, o["a"] )
  51. assert_equal( 1, o[:a] )
  52. assert_equal( {:x=>9}, o["b"] )
  53. assert_equal( {:x=>9}, o[:b] )
  54. assert_equal( 9, o["b"][:x] )
  55. assert_equal( nil, o[:b]["x"] )
  56. end
  57. end
  58. class TestOpenObject3 < Test::Unit::TestCase
  59. def test_3_01
  60. fo = OpenObject.new
  61. 9.times{ |i| fo.send( "n#{i}=", 1 ) }
  62. 9.times{ |i|
  63. assert_equal( 1, fo.send( "n#{i}" ) )
  64. }
  65. end
  66. end
  67. class TestOpenObject4 < Test::Unit::TestCase
  68. def test_4_01
  69. ho = {}
  70. fo = OpenObject.new
  71. 5.times{ |i| ho["n#{i}".to_sym]=1 }
  72. 5.times{ |i| fo.send( "n#{i}=", 1 ) }
  73. assert_equal(ho, fo.to_h)
  74. end
  75. end
  76. class TestOpenObject5 < Test::Unit::TestCase
  77. def test_5_01
  78. p = lambda { |x|
  79. x.word = "Hello"
  80. }
  81. o = p.to_openobject
  82. assert_equal( "Hello", o.word )
  83. end
  84. def test_5_02
  85. p = lambda { |x|
  86. x.word = "Hello"
  87. }
  88. o = OpenObject[:a=>1,:b=>2]
  89. assert_instance_of( Proc, o.to_proc )
  90. end
  91. end