test-unit 3.1.5 → 3.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. checksums.yaml +5 -5
  2. data/BSDL +24 -0
  3. data/COPYING +41 -41
  4. data/README.md +24 -17
  5. data/Rakefile +21 -24
  6. data/doc/text/getting-started.md +246 -0
  7. data/doc/text/news.md +797 -56
  8. data/lib/test/unit/assertion-failed-error.rb +35 -0
  9. data/lib/test/unit/assertions.rb +542 -220
  10. data/lib/test/unit/attribute.rb +78 -4
  11. data/lib/test/unit/auto-runner-loader.rb +17 -0
  12. data/lib/test/unit/autorunner.rb +175 -78
  13. data/lib/test/unit/code-snippet-fetcher.rb +7 -7
  14. data/lib/test/unit/collector/descendant.rb +1 -0
  15. data/lib/test/unit/collector/dir.rb +4 -2
  16. data/lib/test/unit/collector/load.rb +25 -15
  17. data/lib/test/unit/collector/objectspace.rb +1 -0
  18. data/lib/test/unit/collector.rb +31 -0
  19. data/lib/test/unit/color-scheme.rb +29 -2
  20. data/lib/test/unit/data-sets.rb +127 -0
  21. data/lib/test/unit/data.rb +121 -12
  22. data/lib/test/unit/diff.rb +10 -11
  23. data/lib/test/unit/fixture.rb +77 -27
  24. data/lib/test/unit/notification.rb +9 -7
  25. data/lib/test/unit/omission.rb +34 -31
  26. data/lib/test/unit/pending.rb +12 -11
  27. data/lib/test/unit/priority.rb +7 -5
  28. data/lib/test/unit/runner/console.rb +20 -1
  29. data/lib/test/unit/test-suite-creator.rb +30 -9
  30. data/lib/test/unit/testcase.rb +349 -196
  31. data/lib/test/unit/testresult.rb +7 -0
  32. data/lib/test/unit/testsuite.rb +1 -1
  33. data/lib/test/unit/ui/console/testrunner.rb +171 -60
  34. data/lib/test/unit/ui/emacs/testrunner.rb +5 -5
  35. data/lib/test/unit/ui/testrunnermediator.rb +9 -7
  36. data/lib/test/unit/util/backtracefilter.rb +17 -5
  37. data/lib/test/unit/util/memory-usage.rb +47 -0
  38. data/lib/test/unit/util/observable.rb +2 -2
  39. data/lib/test/unit/util/output.rb +5 -4
  40. data/lib/test/unit/util/procwrapper.rb +4 -4
  41. data/lib/test/unit/version.rb +1 -1
  42. data/lib/test/unit/warning.rb +3 -0
  43. data/lib/test/unit.rb +177 -161
  44. data/lib/test-unit.rb +2 -17
  45. metadata +20 -94
  46. data/GPL +0 -339
  47. data/LGPL +0 -502
  48. data/test/collector/test-descendant.rb +0 -178
  49. data/test/collector/test-load.rb +0 -442
  50. data/test/collector/test_dir.rb +0 -406
  51. data/test/collector/test_objectspace.rb +0 -100
  52. data/test/fixtures/header-label.csv +0 -3
  53. data/test/fixtures/header-label.tsv +0 -3
  54. data/test/fixtures/header.csv +0 -3
  55. data/test/fixtures/header.tsv +0 -3
  56. data/test/fixtures/no-header.csv +0 -2
  57. data/test/fixtures/no-header.tsv +0 -2
  58. data/test/fixtures/plus.csv +0 -3
  59. data/test/run-test.rb +0 -22
  60. data/test/test-assertions.rb +0 -2157
  61. data/test/test-attribute-matcher.rb +0 -38
  62. data/test/test-attribute.rb +0 -123
  63. data/test/test-code-snippet.rb +0 -37
  64. data/test/test-color-scheme.rb +0 -82
  65. data/test/test-color.rb +0 -47
  66. data/test/test-data.rb +0 -281
  67. data/test/test-diff.rb +0 -518
  68. data/test/test-emacs-runner.rb +0 -60
  69. data/test/test-error.rb +0 -26
  70. data/test/test-failure.rb +0 -33
  71. data/test/test-fault-location-detector.rb +0 -163
  72. data/test/test-fixture.rb +0 -659
  73. data/test/test-notification.rb +0 -33
  74. data/test/test-omission.rb +0 -81
  75. data/test/test-pending.rb +0 -70
  76. data/test/test-priority.rb +0 -173
  77. data/test/test-test-case.rb +0 -1171
  78. data/test/test-test-result.rb +0 -113
  79. data/test/test-test-suite-creator.rb +0 -97
  80. data/test/test-test-suite.rb +0 -150
  81. data/test/testunit-test-util.rb +0 -31
  82. data/test/ui/test_testrunmediator.rb +0 -20
  83. data/test/util/test-method-owner-finder.rb +0 -38
  84. data/test/util/test-output.rb +0 -11
  85. data/test/util/test_backtracefilter.rb +0 -41
  86. data/test/util/test_observable.rb +0 -102
  87. data/test/util/test_procwrapper.rb +0 -36
@@ -1,113 +0,0 @@
1
- # Author:: Nathaniel Talbott.
2
- # Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
3
- # License:: Ruby license.
4
-
5
- require 'test/unit/testcase'
6
- require 'test/unit/testresult'
7
-
8
- module Test
9
- module Unit
10
- class TC_TestResult < TestCase
11
- def setup
12
- @my_result = TestResult.new
13
- @my_result.add_assertion()
14
- @failure = "failure"
15
- @my_result.add_failure(@failure)
16
- @error = "error"
17
- @my_result.add_error(@error)
18
- end
19
-
20
- def test_result_changed_notification
21
- called1 = false
22
- @my_result.add_listener(TestResult::CHANGED) do |result|
23
- assert_equal(@my_result, result)
24
- called1 = true
25
- end
26
- @my_result.add_assertion
27
- assert_true(called1)
28
-
29
- called1, called2 = false, false
30
- @my_result.add_listener(TestResult::CHANGED) do |result|
31
- assert_equal(@my_result, result)
32
- called2 = true
33
- end
34
- @my_result.add_assertion
35
- assert_equal([true, true], [called1, called2])
36
-
37
- called1, called2 = false, false
38
- @my_result.add_failure("")
39
- assert_equal([true, true], [called1, called2])
40
-
41
- called1, called2 = false, false
42
- @my_result.add_error("")
43
- assert_equal([true, true], [called1, called2])
44
-
45
- called1, called2 = false, false
46
- @my_result.add_run
47
- assert_equal([true, true], [called1, called2])
48
- end
49
-
50
- def test_fault_notification
51
- called1 = false
52
- fault = "fault"
53
- @my_result.add_listener(TestResult::FAULT) do |passed_fault|
54
- assert_equal(fault, passed_fault)
55
- called1 = true
56
- end
57
-
58
- @my_result.add_assertion
59
- assert_false(called1)
60
-
61
- @my_result.add_failure(fault)
62
- assert_true(called1)
63
-
64
- called1, called2 = false, false
65
- @my_result.add_listener(TestResult::FAULT) do |passed_fault|
66
- assert_equal(fault, passed_fault)
67
- called2 = true
68
- end
69
-
70
- @my_result.add_assertion
71
- assert_equal([false, false], [called1, called2])
72
-
73
- called1, called2 = false, false
74
- @my_result.add_failure(fault)
75
- assert_equal([true, true], [called1, called2])
76
-
77
- called1, called2 = false, false
78
- @my_result.add_error(fault)
79
- assert_equal([true, true], [called1, called2])
80
-
81
- called1, called2 = false, false
82
- @my_result.add_run
83
- assert_equal([false, false], [called1, called2])
84
- end
85
-
86
- def test_passed?
87
- result = TestResult.new
88
- assert_true(result.passed?)
89
-
90
- result.add_assertion
91
- assert_true(result.passed?)
92
-
93
- result.add_run
94
- assert_true(result.passed?)
95
-
96
- result.add_failure("")
97
- assert_false(result.passed?)
98
-
99
- result = TestResult.new
100
- result.add_error("")
101
- assert_false(result.passed?)
102
- end
103
-
104
- def test_faults
105
- assert_equal([@failure, @error], @my_result.faults)
106
-
107
- notification = "notification"
108
- @my_result.add_notification(notification)
109
- assert_equal([@failure, @error, notification], @my_result.faults)
110
- end
111
- end
112
- end
113
- end
@@ -1,97 +0,0 @@
1
- require "test/unit"
2
-
3
- module Test
4
- module Unit
5
- class TestTestSuiteCreator < TestCase
6
- def collect_test_names(test_case)
7
- creator = TestSuiteCreator.new(test_case)
8
- creator.send(:collect_test_names)
9
- end
10
-
11
- class TestStandalone < self
12
- def setup
13
- @test_case = Class.new(TestCase) do
14
- def test_in_test_case
15
- end
16
- end
17
- end
18
-
19
- def test_collect_test_names
20
- assert_equal(["test_in_test_case"], collect_test_names(@test_case))
21
- end
22
- end
23
-
24
- class TestInherited < self
25
- def setup
26
- @parent_test_case = Class.new(TestCase) do
27
- def test_in_parent
28
- end
29
- end
30
-
31
- @child_test_case = Class.new(@parent_test_case) do
32
- def test_in_child
33
- end
34
- end
35
- end
36
-
37
- def test_collect_test_names
38
- assert_equal(["test_in_child"], collect_test_names(@child_test_case))
39
- end
40
- end
41
-
42
- class TestModule < self
43
- def setup
44
- test_module = Module.new do
45
- def test_in_module
46
- end
47
- end
48
-
49
- @test_case = Class.new(TestCase) do
50
- include test_module
51
-
52
- def test_in_test_case
53
- end
54
- end
55
- end
56
-
57
- def test_collect_test_names
58
- assert_equal(["test_in_module", "test_in_test_case"].sort,
59
- collect_test_names(@test_case).sort)
60
- end
61
- end
62
-
63
- class TestInheritedModule < self
64
- def setup
65
- parent_test_module = Module.new do
66
- def test_in_module_in_parent
67
- end
68
- end
69
-
70
- child_test_module = Module.new do
71
- def test_in_module_in_child
72
- end
73
- end
74
-
75
- @parent_test_case = Class.new(TestCase) do
76
- include parent_test_module
77
-
78
- def test_in_parent
79
- end
80
- end
81
-
82
- @child_test_case = Class.new(@parent_test_case) do
83
- include child_test_module
84
-
85
- def test_in_child
86
- end
87
- end
88
- end
89
-
90
- def test_collect_test_names
91
- assert_equal(["test_in_child", "test_in_module_in_child"].sort,
92
- collect_test_names(@child_test_case).sort)
93
- end
94
- end
95
- end
96
- end
97
- end
@@ -1,150 +0,0 @@
1
- # Author:: Nathaniel Talbott.
2
- # Copyright:: Copyright (c) 2000-2003 Nathaniel Talbott. All rights reserved.
3
- # License:: Ruby license.
4
-
5
- require 'test/unit'
6
-
7
- module Test
8
- module Unit
9
- class TestTestSuite < TestCase
10
- def setup
11
- @testcase1 = Class.new(TestCase) do
12
- def test_succeed1
13
- assert_block { true }
14
- end
15
- def test_fail
16
- assert_block { false }
17
- end
18
- end
19
-
20
- @testcase2 = Class.new(TestCase) do
21
- def test_succeed2
22
- assert_block { true }
23
- end
24
- def test_error
25
- raise
26
- end
27
- end
28
- end
29
-
30
- def test_add
31
- s = TestSuite.new
32
- assert_equal(s, s << self.class.new("test_add"))
33
- end
34
-
35
- def test_delete
36
- s = TestSuite.new
37
- t1 = self.class.new("test_delete")
38
- s << t1
39
- t2 = self.class.new("test_add")
40
- s << t2
41
- assert_equal(t1, s.delete(t1))
42
- assert_nil(s.delete(t1))
43
- assert_equal(TestSuite.new << t2, s)
44
- end
45
-
46
- def test_delete_tests
47
- suite = TestSuite.new
48
- test1 = self.class.new("test_delete_1")
49
- suite << test1
50
- test2 = self.class.new("test_delete_2")
51
- suite << test2
52
- test3 = self.class.new("test_add")
53
- suite << test3
54
- suite.delete_tests([test1, test2])
55
- assert_equal(1, suite.size)
56
- assert_equal(TestSuite.new << test3, suite)
57
- end
58
-
59
- def test_size
60
- suite = TestSuite.new
61
- suite2 = TestSuite.new
62
- suite2 << self.class.new("test_size")
63
- suite << suite2
64
- suite << self.class.new("test_size")
65
- assert_equal(2, suite.size, "The count should be correct")
66
- end
67
-
68
- def test_run
69
- progress = []
70
- suite = @testcase1.suite
71
- tests = suite.tests.dup
72
- result = TestResult.new
73
- suite.run(result) { |*values| progress << values }
74
-
75
- assert_equal(2, result.run_count, "Should have had four test runs")
76
- assert_equal(1, result.failure_count, "Should have had one test failure")
77
- assert_equal(0, result.error_count, "Should have had one test error")
78
- assert_equal([[TestSuite::STARTED, suite.name],
79
- [TestSuite::STARTED_OBJECT, suite],
80
- [TestCase::STARTED, "test_fail(#{suite.name})"],
81
- [TestCase::STARTED_OBJECT, tests[0]],
82
- [TestCase::FINISHED, "test_fail(#{suite.name})"],
83
- [TestCase::FINISHED_OBJECT, tests[0]],
84
- [TestCase::STARTED, "test_succeed1(#{suite.name})"],
85
- [TestCase::STARTED_OBJECT, tests[1]],
86
- [TestCase::FINISHED, "test_succeed1(#{suite.name})"],
87
- [TestCase::FINISHED_OBJECT, tests[1]],
88
- [TestSuite::FINISHED, suite.name],
89
- [TestSuite::FINISHED_OBJECT, suite]],
90
- progress, "Should have had the correct progress")
91
-
92
- suite = TestSuite.new
93
- suite << @testcase1.suite
94
- suite << @testcase2.suite
95
- result = TestResult.new
96
- progress = []
97
- suite.run(result) { |*values| progress << values }
98
-
99
- assert_equal(4, result.run_count, "Should have had four test runs")
100
- assert_equal(1, result.failure_count, "Should have had one test failure")
101
- assert_equal(1, result.error_count, "Should have had one test error")
102
- assert_equal(28, progress.size,
103
- "Should have had the correct number of progress calls")
104
- end
105
-
106
- def test_empty?
107
- assert(TestSuite.new.empty?, "A new test suite should be empty?")
108
- assert(!@testcase2.suite.empty?, "A test suite with tests should not be empty")
109
- end
110
-
111
- def test_equality
112
- suite1 = TestSuite.new
113
- suite2 = TestSuite.new
114
- assert_equal(suite1, suite2)
115
- assert_equal(suite2, suite1)
116
-
117
- suite1 = TestSuite.new('name')
118
- assert_not_equal(suite1, suite2)
119
- assert_not_equal(suite2, suite1)
120
-
121
- suite2 = TestSuite.new('name')
122
- assert_equal(suite1, suite2)
123
- assert_equal(suite2, suite1)
124
-
125
- suite1 << 'test'
126
- assert_not_equal(suite1, suite2)
127
- assert_not_equal(suite2, suite1)
128
-
129
- suite2 << 'test'
130
- assert_equal(suite1, suite2)
131
- assert_equal(suite2, suite1)
132
-
133
- suite2 = Object.new
134
- class << suite2
135
- def name
136
- 'name'
137
- end
138
- def tests
139
- ['test']
140
- end
141
- end
142
- assert_not_equal(suite1, suite2)
143
- assert_not_equal(suite2, suite1)
144
-
145
- assert_not_equal(suite1, Object.new)
146
- assert_not_equal(Object.new, suite1)
147
- end
148
- end
149
- end
150
- end
@@ -1,31 +0,0 @@
1
- module TestUnitTestUtil
2
- private
3
- def jruby?
4
- RUBY_PLATFORM == "java"
5
- end
6
-
7
- def jruby_only_test
8
- if jruby?
9
- require "java"
10
- else
11
- omit("test for JRuby")
12
- end
13
- end
14
-
15
- def assert_fault_messages(expected, faults)
16
- assert_equal(expected, faults.collect {|fault| fault.message})
17
- end
18
-
19
- def _run_test(test_case, name)
20
- result = Test::Unit::TestResult.new
21
- test = test_case.new(name)
22
- yield(test) if block_given?
23
- test.run(result) {}
24
- result
25
- end
26
-
27
- def fixture_file_path(file_name)
28
- base_dir = File.dirname(__FILE__)
29
- File.join(base_dir, "fixtures", file_name)
30
- end
31
- end
@@ -1,20 +0,0 @@
1
- require 'test/unit/ui/testrunnermediator'
2
-
3
- class TestUnitUIMediator < Test::Unit::TestCase
4
- def test_run_suite_with_interrupt_exception
5
- test_case = Class.new(Test::Unit::TestCase) do
6
- def test_raise_interrupt
7
- raise Interrupt, "from test"
8
- end
9
- end
10
- mediator = Test::Unit::UI::TestRunnerMediator.new(test_case.suite)
11
- finished = false
12
- mediator.add_listener(Test::Unit::UI::TestRunnerMediator::FINISHED) do
13
- finished = true
14
- end
15
- assert_raise(Interrupt) do
16
- mediator.run
17
- end
18
- assert(finished)
19
- end
20
- end
@@ -1,38 +0,0 @@
1
- require 'test/unit'
2
-
3
- require 'test/unit/util/method-owner-finder'
4
-
5
- class TestUnitMethodOwnerFinder < Test::Unit::TestCase
6
- def test_find
7
- assert_equal(Exception, find(RuntimeError.new, :inspect))
8
- assert_equal(Exception, find(Exception.new, :inspect))
9
-
10
- anonymous_class = Class.new do
11
- end
12
- assert_equal(Kernel, find(anonymous_class.new, :inspect))
13
-
14
- anonymous_parent_class = Class.new do
15
- def inspect
16
- super + " by anonymous parent class"
17
- end
18
- end
19
- anonymous_sub_class = Class.new(anonymous_parent_class) do
20
- end
21
- assert_equal(anonymous_parent_class, find(anonymous_sub_class.new, :inspect))
22
-
23
- anonymous_module = Module.new do
24
- def inspect
25
- super + " by anonymous module"
26
- end
27
- end
28
- anonymous_include_class = Class.new do
29
- include anonymous_module
30
- end
31
- assert_equal(anonymous_module, find(anonymous_include_class.new, :inspect))
32
- end
33
-
34
- private
35
- def find(object, method_name)
36
- Test::Unit::Util::MethodOwnerFinder.find(object, method_name)
37
- end
38
- end
@@ -1,11 +0,0 @@
1
- require 'test/unit'
2
-
3
- class TestUnitOutput < Test::Unit::TestCase
4
- def test_capture_output
5
- assert_equal(["stdout\n", "stderr\n"],
6
- capture_output do
7
- puts("stdout")
8
- warn("stderr")
9
- end)
10
- end
11
- end
@@ -1,41 +0,0 @@
1
- require 'test/unit'
2
-
3
- require 'test/unit/util/backtracefilter'
4
-
5
- module Test::Unit::Util
6
- class TestBacktraceFilter < Test::Unit::TestCase
7
- include BacktraceFilter
8
-
9
- def test_filter_backtrace
10
- backtrace = [%q{C:\some\old\path/test/unit/assertions.rb:44:in 'assert'},
11
- %q{tc_thing.rb:4:in 'a'},
12
- %q{tc_thing.rb:4:in 'test_stuff'},
13
- %q{C:\some\old\path/test/unit/testcase.rb:44:in 'send'},
14
- %q{C:\some\old\path\test\unit\testcase.rb:44:in 'run'},
15
- %q{C:\some\old\path\test\unit.rb:44:in 'run'},
16
- %q{tc_thing.rb:3}]
17
- assert_equal(backtrace[1..2], filter_backtrace(backtrace, %q{C:\some\old\path\test\unit}), "Should filter out all TestUnit-specific lines")
18
-
19
- backtrace = [%q{tc_thing.rb:4:in 'a'},
20
- %q{tc_thing.rb:4:in 'test_stuff'},
21
- %q{tc_thing.rb:3}]
22
- assert_equal(backtrace, filter_backtrace(backtrace, %q{C:\some\old\path\test\unit}), "Shouldn't filter too much")
23
-
24
- backtrace = [%q{C:\some\old\path/test/unit/assertions.rb:44:in 'assert'},
25
- %q{tc_thing.rb:4:in 'a'},
26
- %q{tc_thing.rb:4:in 'test_stuff'},
27
- %q{tc_thing.rb:3}]
28
- assert_equal(backtrace[1..3], filter_backtrace(backtrace, %q{C:\some\old\path\test\unit}), "Should filter out all TestUnit-specific lines")
29
-
30
- backtrace = [%q{C:\some\old\path/test/unit/assertions.rb:44:in 'assert'},
31
- %q{C:\some\old\path/test/unit/testcase.rb:44:in 'send'},
32
- %q{C:\some\old\path\test\unit\testcase.rb:44:in 'run'},
33
- %q{C:\some\old\path\test\unit.rb:44:in 'run'}]
34
- assert_equal(backtrace, filter_backtrace(backtrace, %q{C:\some\old\path\test\unit}), "Should filter out all TestUnit-specific lines")
35
- end
36
-
37
- def test_nil_backtrace
38
- assert_equal(["No backtrace"], filter_backtrace(nil))
39
- end
40
- end
41
- end
@@ -1,102 +0,0 @@
1
- # Author:: Nathaniel Talbott.
2
- # Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
3
- # License:: Ruby license.
4
-
5
- require 'test/unit/util/observable'
6
-
7
- module Test
8
- module Unit
9
- module Util
10
- class TC_Observable < TestCase
11
-
12
- class TF_Observable
13
- include Observable
14
- end
15
-
16
- def setup
17
- @observable = TF_Observable.new
18
- end
19
-
20
- def test_simple_observation
21
- assert_raises(ArgumentError, "add_listener should throw an exception if no callback is supplied") do
22
- @observable.add_listener(:property, "a")
23
- end
24
-
25
- heard = false
26
- callback = proc { heard = true }
27
- assert_equal("a", @observable.add_listener(:property, "a", &callback), "add_listener should return the listener that was added")
28
-
29
- count = 0
30
- @observable.instance_eval do
31
- count = notify_listeners(:property)
32
- end
33
- assert_equal(1, count, "notify_listeners should have returned the number of listeners that were notified")
34
- assert(heard, "Should have heard the property changed")
35
-
36
- heard = false
37
- assert_equal(callback, @observable.remove_listener(:property, "a"), "remove_listener should return the callback")
38
-
39
- count = 1
40
- @observable.instance_eval do
41
- count = notify_listeners(:property)
42
- end
43
- assert_equal(0, count, "notify_listeners should have returned the number of listeners that were notified")
44
- assert(!heard, "Should not have heard the property change")
45
- end
46
-
47
- def test_value_observation
48
- value = nil
49
- @observable.add_listener(:property, "a") do |passed_value|
50
- value = passed_value
51
- end
52
- count = 0
53
- @observable.instance_eval do
54
- count = notify_listeners(:property, "stuff")
55
- end
56
- assert_equal(1, count, "Should have update the correct number of listeners")
57
- assert_equal("stuff", value, "Should have received the value as an argument to the listener")
58
- end
59
-
60
- def test_multiple_value_observation
61
- values = []
62
- @observable.add_listener(:property, "a") do |first_value, second_value|
63
- values = [first_value, second_value]
64
- end
65
- count = 0
66
- @observable.instance_eval do
67
- count = notify_listeners(:property, "stuff", "more stuff")
68
- end
69
- assert_equal(1, count, "Should have update the correct number of listeners")
70
- assert_equal(["stuff", "more stuff"], values, "Should have received the value as an argument to the listener")
71
- end
72
-
73
- def test_add_remove_with_default_listener
74
- assert_raises(ArgumentError, "add_listener should throw an exception if no callback is supplied") do
75
- @observable.add_listener(:property)
76
- end
77
-
78
- heard = false
79
- callback = proc { heard = true }
80
- assert_equal(callback, @observable.add_listener(:property, &callback), "add_listener should return the listener that was added")
81
-
82
- count = 0
83
- @observable.instance_eval do
84
- count = notify_listeners(:property)
85
- end
86
- assert_equal(1, count, "notify_listeners should have returned the number of listeners that were notified")
87
- assert(heard, "Should have heard the property changed")
88
-
89
- heard = false
90
- assert_equal(callback, @observable.remove_listener(:property, callback), "remove_listener should return the callback")
91
-
92
- count = 1
93
- @observable.instance_eval do
94
- count = notify_listeners(:property)
95
- end
96
- assert_equal(0, count, "notify_listeners should have returned the number of listeners that were notified")
97
- assert(!heard, "Should not have heard the property change")
98
- end
99
- end
100
- end
101
- end
102
- end
@@ -1,36 +0,0 @@
1
- # Author:: Nathaniel Talbott.
2
- # Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
3
- # License:: Ruby license.
4
-
5
- require 'test/unit'
6
- require 'test/unit/util/procwrapper'
7
-
8
- module Test
9
- module Unit
10
- module Util
11
- class TC_ProcWrapper < TestCase
12
- def munge_proc(&a_proc)
13
- return a_proc
14
- end
15
- def setup
16
- @original = proc {}
17
- @munged = munge_proc(&@original)
18
- @wrapped_original = ProcWrapper.new(@original)
19
- @wrapped_munged = ProcWrapper.new(@munged)
20
- end
21
- def test_wrapping
22
- assert_same(@original, @wrapped_original.to_proc, "The wrapper should return what was wrapped")
23
- end
24
- def test_hashing
25
-
26
- assert_equal(@wrapped_original.hash, @wrapped_munged.hash, "The original and munged should have the same hash when wrapped")
27
- assert_equal(@wrapped_original, @wrapped_munged, "The wrappers should be equivalent")
28
-
29
- a_hash = {@wrapped_original => @original}
30
- assert(a_hash[@wrapped_original], "Should be able to access the wrapper in the hash")
31
- assert_equal(a_hash[@wrapped_original], @original, "Should be able to access the wrapper in the hash")
32
- end
33
- end
34
- end
35
- end
36
- end