PageRenderTime 60ms CodeModel.GetById 31ms RepoModel.GetById 0ms app.codeStats 0ms

/vendor/gems/activeldap-1.0.9/test-unit/test/collector/test-descendant.rb

https://bitbucket.org/tommyblue/memoldan
Ruby | 135 lines | 109 code | 26 blank | 0 comment | 4 complexity | 2233515919f504f1c734726c5cbf07c1 MD5 | raw file
Possible License(s): GPL-2.0
  1. require 'test/unit'
  2. require 'test/unit/collector/descendant'
  3. class TestUnitCollectorDescendant < Test::Unit::TestCase
  4. def setup
  5. @previous_descendants = Test::Unit::TestCase::DESCENDANTS.dup
  6. Test::Unit::TestCase::DESCENDANTS.clear
  7. @test_case1 = Class.new(Test::Unit::TestCase) do
  8. def self.name
  9. "test-case1"
  10. end
  11. def test_1
  12. end
  13. def test_2
  14. end
  15. end
  16. @test_case2 = Class.new(Test::Unit::TestCase) do
  17. def self.name
  18. "test-case2"
  19. end
  20. def test_0
  21. end
  22. end
  23. @no_test_case = Class.new do
  24. def self.name
  25. "no-test-case"
  26. end
  27. def test_4
  28. end
  29. end
  30. end
  31. def teardown
  32. Test::Unit::TestCase::DESCENDANTS.replace(@previous_descendants)
  33. end
  34. def test_basic_collection
  35. assert_collect(full_suite("name"), "name")
  36. assert_collect(full_suite("name"), "name") do |collector|
  37. collector.filter = []
  38. end
  39. end
  40. def test_filtered_collection
  41. assert_collect(empty_suite) do |collector|
  42. collector.filter = Proc.new {false}
  43. end
  44. assert_collect(full_suite) do |collector|
  45. collector.filter = Proc.new {true}
  46. end
  47. assert_collect(full_suite) do |collector|
  48. collector.filter = Proc.new {nil}
  49. end
  50. assert_collect(empty_suite) do |collector|
  51. collector.filter = [Proc.new {false}, Proc.new {true}]
  52. end
  53. assert_collect(full_suite) do |collector|
  54. collector.filter = [Proc.new {true}, Proc.new {false}]
  55. end
  56. assert_collect(empty_suite) do |collector|
  57. collector.filter = [Proc.new {nil}, Proc.new {false}]
  58. end
  59. assert_collect(full_suite) do |collector|
  60. collector.filter = [Proc.new {nil}, Proc.new {true}]
  61. end
  62. expected = empty_suite
  63. suite1 = Test::Unit::TestSuite.new(@test_case1.name)
  64. suite1 << @test_case1.new("test_1")
  65. suite2 = Test::Unit::TestSuite.new(@test_case2.name)
  66. suite2 << @test_case2.new("test_0")
  67. expected << suite1 << suite2
  68. assert_collect(expected) do |collector|
  69. collector.filter = Proc.new do |test|
  70. ['test_1', 'test_0'].include?(test.method_name)
  71. end
  72. end
  73. expected = empty_suite
  74. suite1 = Test::Unit::TestSuite.new(@test_case1.name)
  75. suite1 << @test_case1.new("test_1")
  76. suite2 = Test::Unit::TestSuite.new(@test_case2.name)
  77. suite2 << @test_case2.new("test_0")
  78. expected << suite1 << suite2
  79. assert_collect(expected) do |collector|
  80. filters = [Proc.new {|test| test.method_name == 'test_1' ? true : nil},
  81. Proc.new {|test| test.method_name == 'test_0' ? true : nil},
  82. Proc.new {false}]
  83. collector.filter = filters
  84. end
  85. end
  86. private
  87. def assert_collect(expected, *collect_args)
  88. collector = Test::Unit::Collector::Descendant.new
  89. yield(collector) if block_given?
  90. assert_equal(expected, collector.send(:collect, *collect_args))
  91. end
  92. def default_name
  93. Test::Unit::Collector::Descendant::NAME
  94. end
  95. def empty_suite(name=nil)
  96. Test::Unit::TestSuite.new(name || default_name)
  97. end
  98. def full_suite(name=nil)
  99. sub_suite1 = Test::Unit::TestSuite.new(@test_case1.name)
  100. sub_suite1 << @test_case1.new('test_1')
  101. sub_suite1 << @test_case1.new('test_2')
  102. sub_suite2 = Test::Unit::TestSuite.new(@test_case2.name)
  103. sub_suite2 << @test_case2.new('test_0')
  104. suite = empty_suite(name)
  105. suite << sub_suite1
  106. suite << sub_suite2
  107. suite
  108. end
  109. end