rroonga 1.0.1 → 1.0.2

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 (135) hide show
  1. data/NEWS.ja.rdoc +46 -0
  2. data/NEWS.rdoc +46 -0
  3. data/README.ja.rdoc +2 -2
  4. data/README.rdoc +2 -3
  5. data/Rakefile +148 -11
  6. data/example/bookmark.rb +94 -91
  7. data/ext/groonga/extconf.rb +25 -25
  8. data/ext/groonga/groonga.def +2 -0
  9. data/ext/groonga/mkmf.log +7 -7
  10. data/ext/groonga/rb-grn-column.c +66 -0
  11. data/ext/groonga/rb-grn-context.c +92 -5
  12. data/ext/groonga/rb-grn-database.c +24 -1
  13. data/ext/groonga/rb-grn-exception.c +15 -0
  14. data/ext/groonga/rb-grn-hash.c +2 -2
  15. data/ext/groonga/rb-grn-index-column.c +8 -4
  16. data/ext/groonga/rb-grn-object.c +4 -2
  17. data/ext/groonga/rb-grn-patricia-trie.c +2 -2
  18. data/ext/groonga/rb-grn-snippet.c +1 -0
  19. data/ext/groonga/rb-grn-table-key-support.c +22 -19
  20. data/ext/groonga/rb-grn-table.c +63 -5
  21. data/ext/groonga/rb-grn.h +1 -1
  22. data/ext/groonga/rb-groonga.c +1 -0
  23. data/extconf.rb +1 -1
  24. data/html/developer.html +8 -2
  25. data/html/favicon.ico +0 -0
  26. data/html/favicon.svg +591 -0
  27. data/html/index.html +71 -8
  28. data/html/logo.svg +612 -0
  29. data/html/ranguba.css +92 -7
  30. data/html/readme.svg +256 -0
  31. data/lib/groonga/expression-builder.rb +8 -4
  32. data/lib/groonga/record.rb +77 -7
  33. data/lib/groonga/schema.rb +429 -100
  34. data/rroonga-build.rb +1 -1
  35. data/test/run-test.rb +1 -1
  36. data/test/test-array.rb +4 -0
  37. data/test/test-context.rb +8 -0
  38. data/test/test-database.rb +8 -1
  39. data/test/test-expression-builder.rb +14 -0
  40. data/test/test-fix-size-column.rb +4 -0
  41. data/test/test-hash.rb +10 -4
  42. data/test/test-index-column.rb +11 -0
  43. data/test/test-patricia-trie.rb +7 -1
  44. data/test/test-record.rb +14 -0
  45. data/test/test-remote.rb +3 -2
  46. data/test/test-schema-create-table.rb +32 -2
  47. data/test/test-schema.rb +108 -11
  48. data/test/test-table-select-normalize.rb +7 -3
  49. data/test/test-table-select.rb +12 -0
  50. data/test/test-table.rb +7 -0
  51. data/test/test-variable-size-column.rb +4 -0
  52. data/test-unit/Rakefile +40 -0
  53. data/test-unit/TODO +5 -0
  54. data/test-unit/bin/testrb +5 -0
  55. data/test-unit/html/classic.html +15 -0
  56. data/test-unit/html/index.html +25 -0
  57. data/test-unit/html/index.html.ja +27 -0
  58. data/test-unit/lib/test/unit/assertionfailederror.rb +25 -0
  59. data/test-unit/lib/test/unit/assertions.rb +1230 -0
  60. data/test-unit/lib/test/unit/attribute.rb +125 -0
  61. data/test-unit/lib/test/unit/autorunner.rb +360 -0
  62. data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
  63. data/test-unit/lib/test/unit/collector/dir.rb +108 -0
  64. data/test-unit/lib/test/unit/collector/load.rb +144 -0
  65. data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
  66. data/test-unit/lib/test/unit/collector.rb +36 -0
  67. data/test-unit/lib/test/unit/color-scheme.rb +102 -0
  68. data/test-unit/lib/test/unit/color.rb +96 -0
  69. data/test-unit/lib/test/unit/diff.rb +724 -0
  70. data/test-unit/lib/test/unit/error.rb +130 -0
  71. data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
  72. data/test-unit/lib/test/unit/failure.rb +136 -0
  73. data/test-unit/lib/test/unit/fixture.rb +176 -0
  74. data/test-unit/lib/test/unit/notification.rb +129 -0
  75. data/test-unit/lib/test/unit/omission.rb +191 -0
  76. data/test-unit/lib/test/unit/pending.rb +150 -0
  77. data/test-unit/lib/test/unit/priority.rb +180 -0
  78. data/test-unit/lib/test/unit/runner/console.rb +52 -0
  79. data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
  80. data/test-unit/lib/test/unit/runner/tap.rb +8 -0
  81. data/test-unit/lib/test/unit/testcase.rb +476 -0
  82. data/test-unit/lib/test/unit/testresult.rb +89 -0
  83. data/test-unit/lib/test/unit/testsuite.rb +110 -0
  84. data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
  85. data/test-unit/lib/test/unit/ui/console/testrunner.rb +466 -0
  86. data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +63 -0
  87. data/test-unit/lib/test/unit/ui/tap/testrunner.rb +92 -0
  88. data/test-unit/lib/test/unit/ui/testrunner.rb +28 -0
  89. data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
  90. data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  91. data/test-unit/lib/test/unit/util/backtracefilter.rb +41 -0
  92. data/test-unit/lib/test/unit/util/method-owner-finder.rb +28 -0
  93. data/test-unit/lib/test/unit/util/observable.rb +90 -0
  94. data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
  95. data/test-unit/lib/test/unit/version.rb +7 -0
  96. data/test-unit/lib/test/unit.rb +323 -0
  97. data/test-unit/sample/adder.rb +13 -0
  98. data/test-unit/sample/subtracter.rb +12 -0
  99. data/test-unit/sample/test_adder.rb +20 -0
  100. data/test-unit/sample/test_subtracter.rb +20 -0
  101. data/test-unit/sample/test_user.rb +23 -0
  102. data/test-unit/test/collector/test-descendant.rb +133 -0
  103. data/test-unit/test/collector/test-load.rb +442 -0
  104. data/test-unit/test/collector/test_dir.rb +406 -0
  105. data/test-unit/test/collector/test_objectspace.rb +100 -0
  106. data/test-unit/test/run-test.rb +15 -0
  107. data/test-unit/test/test-attribute.rb +86 -0
  108. data/test-unit/test/test-color-scheme.rb +67 -0
  109. data/test-unit/test/test-color.rb +47 -0
  110. data/test-unit/test/test-diff.rb +518 -0
  111. data/test-unit/test/test-emacs-runner.rb +60 -0
  112. data/test-unit/test/test-fixture.rb +287 -0
  113. data/test-unit/test/test-notification.rb +33 -0
  114. data/test-unit/test/test-omission.rb +81 -0
  115. data/test-unit/test/test-pending.rb +70 -0
  116. data/test-unit/test/test-priority.rb +119 -0
  117. data/test-unit/test/test-testcase.rb +544 -0
  118. data/test-unit/test/test_assertions.rb +1151 -0
  119. data/test-unit/test/test_error.rb +26 -0
  120. data/test-unit/test/test_failure.rb +33 -0
  121. data/test-unit/test/test_testresult.rb +113 -0
  122. data/test-unit/test/test_testsuite.rb +129 -0
  123. data/test-unit/test/testunit-test-util.rb +14 -0
  124. data/test-unit/test/ui/test_testrunmediator.rb +20 -0
  125. data/test-unit/test/util/test-method-owner-finder.rb +38 -0
  126. data/test-unit/test/util/test_backtracefilter.rb +41 -0
  127. data/test-unit/test/util/test_observable.rb +102 -0
  128. data/test-unit/test/util/test_procwrapper.rb +36 -0
  129. data/text/{TUTORIAL.ja.rdoc → tutorial.ja.rdoc} +165 -126
  130. metadata +106 -16
  131. data/html/favicon.xcf +0 -0
  132. data/html/logo.xcf +0 -0
  133. data/license/GPL +0 -340
  134. data/license/RUBY +0 -59
  135. data/pkg-config.rb +0 -333
@@ -0,0 +1,287 @@
1
+ class TestUnitFixture < Test::Unit::TestCase
2
+ module EmptyModule
3
+ end
4
+
5
+ def test_setup_without_option
6
+ expected_setup_calls = [:setup,
7
+ :custom_setup_method0,
8
+ :custom_setup_method1,
9
+ :custom_setup_method3]
10
+ test_case = assert_setup(expected_setup_calls, [])
11
+ assert_inherited_setup(expected_setup_calls, test_case)
12
+
13
+ assert_inherited_setup([:setup], nil)
14
+ assert_called_fixtures(expected_setup_calls, test_case)
15
+ end
16
+
17
+ def test_setup_with_before_option
18
+ expected_setup_calls = [:custom_setup_method3,
19
+ :custom_setup_method0,
20
+ :custom_setup_method1,
21
+ :setup]
22
+ test_case = assert_setup(expected_setup_calls,
23
+ [[{:before => :append}],
24
+ [{:before => :append}],
25
+ [{:before => :prepend}],
26
+ [{:before => :prepend}]])
27
+ assert_inherited_setup(expected_setup_calls, test_case)
28
+
29
+ assert_inherited_setup([:setup], nil)
30
+ assert_called_fixtures(expected_setup_calls, test_case)
31
+ end
32
+
33
+ def test_setup_with_after_option
34
+ expected_setup_calls = [:setup,
35
+ :custom_setup_method3,
36
+ :custom_setup_method0,
37
+ :custom_setup_method1]
38
+ test_case = assert_setup(expected_setup_calls,
39
+ [[{:after => :append}],
40
+ [{:after => :append}],
41
+ [{:after => :prepend}],
42
+ [{:after => :prepend}]])
43
+ assert_inherited_setup(expected_setup_calls, test_case)
44
+
45
+ assert_inherited_setup([:setup], nil)
46
+ assert_called_fixtures(expected_setup_calls, test_case)
47
+ end
48
+
49
+ def test_setup_with_invalid_option
50
+ assert_invalid_setup_option(:unknown => true)
51
+ assert_invalid_setup_option(:before => :unknown)
52
+ assert_invalid_setup_option(:after => :unknown)
53
+ end
54
+
55
+ def test_setup_with_option_to_inherited
56
+ expected_setup_calls = [:setup]
57
+ test_case = assert_setup(expected_setup_calls, nil)
58
+ assert_inherited_setup([:setup,
59
+ :custom_setup_method0,
60
+ :custom_setup_method1,
61
+ :custom_setup_method3],
62
+ test_case,
63
+ [])
64
+
65
+ assert_inherited_setup([:setup], nil)
66
+ assert_called_fixtures(expected_setup_calls, test_case)
67
+ end
68
+
69
+ def test_teardown_without_option
70
+ expected_teardown_calls = [:custom_teardown_method3,
71
+ :custom_teardown_method1,
72
+ :custom_teardown_method0,
73
+ :teardown]
74
+ test_case = assert_teardown(expected_teardown_calls, [])
75
+ assert_inherited_teardown(expected_teardown_calls, test_case)
76
+
77
+ assert_inherited_teardown([:teardown], nil)
78
+ assert_called_fixtures(expected_teardown_calls, test_case)
79
+ end
80
+
81
+ def test_teardown_with_before_option
82
+ expected_teardown_calls = [:custom_teardown_method3,
83
+ :custom_teardown_method0,
84
+ :custom_teardown_method1,
85
+ :teardown]
86
+ test_case = assert_teardown(expected_teardown_calls,
87
+ [[{:before => :append}],
88
+ [{:before => :append}],
89
+ [{:before => :prepend}],
90
+ [{:before => :prepend}]])
91
+ assert_inherited_teardown(expected_teardown_calls, test_case)
92
+
93
+ assert_inherited_teardown([:teardown], nil)
94
+ assert_called_fixtures(expected_teardown_calls, test_case)
95
+ end
96
+
97
+ def test_teardown_with_after_option
98
+ expected_teardown_calls = [:teardown,
99
+ :custom_teardown_method3,
100
+ :custom_teardown_method0,
101
+ :custom_teardown_method1]
102
+ test_case = assert_teardown(expected_teardown_calls,
103
+ [[{:after => :append}],
104
+ [{:after => :append}],
105
+ [{:after => :prepend}],
106
+ [{:after => :prepend}]])
107
+ assert_inherited_teardown(expected_teardown_calls, test_case)
108
+
109
+ assert_inherited_teardown([:teardown], nil)
110
+ assert_called_fixtures(expected_teardown_calls, test_case)
111
+ end
112
+
113
+ def test_teardown_with_invalid_option
114
+ assert_invalid_teardown_option(:unknown => true)
115
+ assert_invalid_teardown_option(:before => :unknown)
116
+ assert_invalid_teardown_option(:after => :unknown)
117
+ end
118
+
119
+ def test_teardown_with_option_to_inherited
120
+ expected_teardown_calls = [:teardown]
121
+ test_case = assert_teardown(expected_teardown_calls, nil)
122
+ assert_inherited_teardown([:custom_teardown_method3,
123
+ :custom_teardown_method1,
124
+ :custom_teardown_method0,
125
+ :teardown],
126
+ test_case, [])
127
+
128
+ assert_inherited_teardown([:teardown], nil)
129
+ assert_called_fixtures(expected_teardown_calls, test_case)
130
+ end
131
+
132
+ private
133
+ def assert_called_fixtures(expected, test_case)
134
+ test = test_case.new("test_nothing")
135
+ test.run(Test::Unit::TestResult.new) {}
136
+ assert_equal(expected, test.called_ids)
137
+ end
138
+
139
+ def assert_setup_customizable(expected, parent, options)
140
+ test_case = Class.new(parent || Test::Unit::TestCase) do
141
+ yield(self, :before) if block_given?
142
+
143
+ def called_ids
144
+ @called_ids ||= []
145
+ end
146
+
147
+ def called(id)
148
+ called_ids << id
149
+ end
150
+
151
+ def setup
152
+ called(:setup)
153
+ end
154
+
155
+ setup(*(options[0] || [])) if options
156
+ def custom_setup_method0
157
+ called(:custom_setup_method0)
158
+ end
159
+
160
+ def custom_setup_method1
161
+ called(:custom_setup_method1)
162
+ end
163
+ setup(*[:custom_setup_method1, *(options[1] || [])]) if options
164
+
165
+ setup(*(options[2] || [])) if options
166
+ def custom_setup_method2
167
+ called(:custom_setup_method2)
168
+ end
169
+ unregister_setup(:custom_setup_method2) if options
170
+
171
+ setup(*(options[3] || [])) if options
172
+ def custom_setup_method3
173
+ called(:custom_setup_method3)
174
+ end
175
+
176
+ def test_nothing
177
+ end
178
+
179
+ yield(self, :after) if block_given?
180
+ end
181
+
182
+ assert_called_fixtures(expected, test_case)
183
+ test_case
184
+ end
185
+
186
+ def assert_setup(expected, options)
187
+ _test_case = assert_setup_customizable(expected, nil, options)
188
+ assert_setup_customizable(expected, nil, options) do |test_case, tag|
189
+ test_case.send(:include, EmptyModule) if tag == :before
190
+ end
191
+ _test_case
192
+ end
193
+
194
+ def assert_inherited_setup(expected, parent, options=nil)
195
+ _test_case = assert_setup_customizable(expected, parent, options)
196
+ assert_setup_customizable(expected, parent, options) do |test_case, tag|
197
+ test_case.send(:include, EmptyModule) if tag == :before
198
+ end
199
+ _test_case
200
+ end
201
+
202
+ def assert_teardown_customizable(expected, parent, options)
203
+ test_case = Class.new(parent || Test::Unit::TestCase) do
204
+ yield(self, :before) if block_given?
205
+
206
+ def called_ids
207
+ @called_ids ||= []
208
+ end
209
+
210
+ def called(id)
211
+ called_ids << id
212
+ end
213
+
214
+ def teardown
215
+ called(:teardown)
216
+ end
217
+
218
+ teardown(*(options[0] || [])) if options
219
+ def custom_teardown_method0
220
+ called(:custom_teardown_method0)
221
+ end
222
+
223
+ def custom_teardown_method1
224
+ called(:custom_teardown_method1)
225
+ end
226
+ teardown(*[:custom_teardown_method1, *(options[1] || [])]) if options
227
+
228
+ teardown(*(options[2] || [])) if options
229
+ def custom_teardown_method2
230
+ called(:custom_teardown_method2)
231
+ end
232
+ unregister_teardown(:custom_teardown_method2) if options
233
+
234
+ teardown(*(options[3] || [])) if options
235
+ def custom_teardown_method3
236
+ called(:custom_teardown_method3)
237
+ end
238
+
239
+ def test_nothing
240
+ end
241
+
242
+ yield(self, :after) if block_given?
243
+ end
244
+
245
+ assert_called_fixtures(expected, test_case)
246
+ test_case
247
+ end
248
+
249
+ def assert_teardown(expected, options)
250
+ assert_teardown_customizable(expected, nil, options)
251
+ assert_teardown_customizable(expected, nil, options) do |test_case, tag|
252
+ test_case.send(:include, EmptyModule) if tag == :before
253
+ end
254
+ end
255
+
256
+ def assert_inherited_teardown(expected, parent, options=nil)
257
+ assert_teardown_customizable(expected, parent, options)
258
+ assert_teardown_customizable(expected, parent, options) do |test_case, tag|
259
+ test_case.send(:include, EmptyModule) if tag == :before
260
+ end
261
+ end
262
+
263
+ def assert_invalid_option(fixture_type, option)
264
+ exception = assert_raise(ArgumentError) do
265
+ Class.new(Test::Unit::TestCase) do
266
+ def test_nothing
267
+ end
268
+
269
+ send(fixture_type, option)
270
+ def fixture
271
+ end
272
+ end
273
+ end
274
+ assert_equal("must be {:before => :prepend}, {:before => :append}, " +
275
+ "{:after => :prepend} or {:after => :append}" +
276
+ ": #{option.inspect}",
277
+ exception.message)
278
+ end
279
+
280
+ def assert_invalid_setup_option(option)
281
+ assert_invalid_option(:setup, option)
282
+ end
283
+
284
+ def assert_invalid_teardown_option(option)
285
+ assert_invalid_option(:teardown, option)
286
+ end
287
+ end
@@ -0,0 +1,33 @@
1
+ require 'test/unit'
2
+ require 'testunit-test-util'
3
+
4
+ class TestUnitNotification < Test::Unit::TestCase
5
+ include TestUnitTestUtil
6
+
7
+ class TestCase < Test::Unit::TestCase
8
+ class << self
9
+ def suite
10
+ Test::Unit::TestSuite.new(name)
11
+ end
12
+ end
13
+
14
+ def test_notify
15
+ notify("1st notify")
16
+ notify("2nd notify. Reach here.")
17
+ end
18
+ end
19
+
20
+ def test_notify
21
+ result = _run_test("test_notify")
22
+ assert_equal("1 tests, 0 assertions, 0 failures, 0 errors, 0 pendings, " \
23
+ "0 omissions, 2 notifications",
24
+ result.to_s)
25
+ assert_fault_messages(["1st notify", "2nd notify. Reach here."],
26
+ result.notifications)
27
+ end
28
+
29
+ private
30
+ def _run_test(name)
31
+ super(TestCase, name)
32
+ end
33
+ end
@@ -0,0 +1,81 @@
1
+ require 'test/unit'
2
+ require 'testunit-test-util'
3
+
4
+ class TestUnitOmission < Test::Unit::TestCase
5
+ include TestUnitTestUtil
6
+
7
+ class TestCase < Test::Unit::TestCase
8
+ class << self
9
+ def suite
10
+ Test::Unit::TestSuite.new(name)
11
+ end
12
+ end
13
+
14
+ def test_omit
15
+ omit("1st omit")
16
+ omit("2nd omit. Should not be reached here.")
17
+ assert(true, "Should not be reached here too.")
18
+ end
19
+
20
+ def test_omit_with_condition
21
+ omit_if(false, "Never omit.")
22
+ omit_unless(true, "Never omit too.")
23
+ omit_if(true, "Should omit.")
24
+ omit("The last omit. Should not be reached here.")
25
+ end
26
+
27
+ def test_omit_with_block
28
+ omit("Omit block") do
29
+ flunk("Should not be reached here.")
30
+ end
31
+ assert(true, "Should be reached here.")
32
+ end
33
+
34
+ def test_omit_with_block_and_condition
35
+ omit_if(false, "Never omit.") do
36
+ assert(true, "Should be reached here.")
37
+ end
38
+ omit_if(true, "Should omit.") do
39
+ flunk("Never reached here.")
40
+ end
41
+ assert(true, "Should be reached here too.")
42
+ end
43
+ end
44
+
45
+ def test_omit
46
+ result = _run_test("test_omit")
47
+ assert_equal("1 tests, 0 assertions, 0 failures, 0 errors, 0 pendings, " \
48
+ "1 omissions, 0 notifications",
49
+ result.to_s)
50
+ assert_fault_messages(["1st omit"], result.omissions)
51
+ end
52
+
53
+ def test_omit_with_condition
54
+ result = _run_test("test_omit_with_condition")
55
+ assert_equal("1 tests, 0 assertions, 0 failures, 0 errors, 0 pendings, " \
56
+ "1 omissions, 0 notifications",
57
+ result.to_s)
58
+ assert_fault_messages(["Should omit."], result.omissions)
59
+ end
60
+
61
+ def test_omit_with_block
62
+ result = _run_test("test_omit_with_block")
63
+ assert_equal("1 tests, 1 assertions, 0 failures, 0 errors, 0 pendings, " \
64
+ "1 omissions, 0 notifications",
65
+ result.to_s)
66
+ assert_fault_messages(["Omit block"], result.omissions)
67
+ end
68
+
69
+ def test_omit_with_condition_and_block
70
+ result = _run_test("test_omit_with_block_and_condition")
71
+ assert_equal("1 tests, 2 assertions, 0 failures, 0 errors, 0 pendings, " \
72
+ "1 omissions, 0 notifications",
73
+ result.to_s)
74
+ assert_fault_messages(["Should omit."], result.omissions)
75
+ end
76
+
77
+ private
78
+ def _run_test(name)
79
+ super(TestCase, name)
80
+ end
81
+ end
@@ -0,0 +1,70 @@
1
+ require 'test/unit'
2
+ require 'testunit-test-util'
3
+
4
+ class TestUnitPending < Test::Unit::TestCase
5
+ include TestUnitTestUtil
6
+
7
+ class TestCase < Test::Unit::TestCase
8
+ class << self
9
+ def suite
10
+ Test::Unit::TestSuite.new(name)
11
+ end
12
+ end
13
+
14
+ def test_pend
15
+ pend("1st pend")
16
+ pend("2nd pend. Should not be reached here.")
17
+ assert(true, "Should not be reached here too.")
18
+ end
19
+
20
+ def test_pend_with_failure_in_block
21
+ pend("Wait a minute") do
22
+ raise "Not implemented yet"
23
+ end
24
+ assert(true, "Reached here.")
25
+ end
26
+
27
+ def test_pend_with_no_failure_in_block
28
+ pend("Wait a minute") do
29
+ "Nothing raised"
30
+ end
31
+ assert(true, "Not reached here.")
32
+ end
33
+ end
34
+
35
+ def test_pend
36
+ test = nil
37
+ result = _run_test("test_pend") {|t| test = t}
38
+ assert_equal("1 tests, 0 assertions, 0 failures, 0 errors, 1 pendings, " \
39
+ "0 omissions, 0 notifications",
40
+ result.to_s)
41
+ assert_fault_messages(["1st pend"], result.pendings)
42
+ assert_true(test.interrupted?)
43
+ end
44
+
45
+ def test_pend_with_failure_in_block
46
+ test = nil
47
+ result = _run_test("test_pend_with_failure_in_block") {|t| test = t}
48
+ assert_equal("1 tests, 1 assertions, 0 failures, 0 errors, 1 pendings, " \
49
+ "0 omissions, 0 notifications",
50
+ result.to_s)
51
+ assert_fault_messages(["Wait a minute"], result.pendings)
52
+ assert_false(test.interrupted?)
53
+ end
54
+
55
+ def test_pend_with_no_failure_in_block
56
+ test = nil
57
+ result = _run_test("test_pend_with_no_failure_in_block") {|t| test = t}
58
+ assert_equal("1 tests, 1 assertions, 1 failures, 0 errors, 0 pendings, " \
59
+ "0 omissions, 0 notifications",
60
+ result.to_s)
61
+ assert_fault_messages(["Pending block should not be passed: Wait a minute."],
62
+ result.failures)
63
+ assert_true(test.interrupted?)
64
+ end
65
+
66
+ private
67
+ def _run_test(name, &block)
68
+ super(TestCase, name, &block)
69
+ end
70
+ end
@@ -0,0 +1,119 @@
1
+ require 'test/unit'
2
+
3
+ class TestUnitPriority < Test::Unit::TestCase
4
+ class TestCase < Test::Unit::TestCase
5
+ class << self
6
+ def suite
7
+ Test::Unit::TestSuite.new(name)
8
+ end
9
+ end
10
+
11
+ priority :must
12
+ def test_must
13
+ assert(true)
14
+ end
15
+
16
+ def test_must_inherited
17
+ assert(true)
18
+ end
19
+
20
+ priority :important
21
+ def test_important
22
+ assert(true)
23
+ end
24
+
25
+ def test_important_inherited
26
+ assert(true)
27
+ end
28
+
29
+ priority :high
30
+ def test_high
31
+ assert(true)
32
+ end
33
+
34
+ def test_high_inherited
35
+ assert(true)
36
+ end
37
+
38
+ priority :normal
39
+ def test_normal
40
+ assert(true)
41
+ end
42
+
43
+ def test_normal_inherited
44
+ assert(true)
45
+ end
46
+
47
+ priority :low
48
+ def test_low
49
+ assert(true)
50
+ end
51
+
52
+ def test_low_inherited
53
+ assert(true)
54
+ end
55
+
56
+ priority :never
57
+ def test_never
58
+ assert(true)
59
+ end
60
+
61
+ def test_never_inherited
62
+ assert(true)
63
+ end
64
+ end
65
+
66
+ def test_priority
67
+ assert_priority("must", 1.0, 0.0001)
68
+ assert_priority("important", 0.9, 0.09)
69
+ assert_priority("high", 0.70, 0.1)
70
+ assert_priority("normal", 0.5, 0.1)
71
+ assert_priority("low", 0.25, 0.1)
72
+ assert_priority("never", 0.0, 0.0001)
73
+ end
74
+
75
+ def assert_priority(priority, expected, delta)
76
+ assert_need_to_run("test_#{priority}", expected, delta)
77
+ assert_need_to_run("test_#{priority}_inherited", expected, delta)
78
+ end
79
+
80
+ def assert_need_to_run(test_name, expected, delta)
81
+ test = TestCase.new(test_name)
82
+ n = 1000
83
+ n_need_to_run = 0
84
+ n.times do |i|
85
+ n_need_to_run +=1 if Test::Unit::Priority::Checker.need_to_run?(test)
86
+ end
87
+ assert_in_delta(expected, n_need_to_run.to_f / n, delta)
88
+ end
89
+
90
+ class SpecialNameTestCase < Test::Unit::TestCase
91
+ class << self
92
+ def suite
93
+ Test::Unit::TestSuite.new(name)
94
+ end
95
+ end
96
+
97
+ def test_question?
98
+ end
99
+
100
+ def test_exclamation!
101
+ end
102
+
103
+ def test_equal=
104
+ end
105
+ end
106
+
107
+ def test_escaped?
108
+ assert_escaped_name("test_question.predicate", "test_question?")
109
+ assert_escaped_name("test_exclamation.destructive", "test_exclamation!")
110
+ assert_escaped_name("test_equal.equal", "test_equal=")
111
+ end
112
+
113
+ def assert_escaped_name(expected, test_method_name)
114
+ checker = Checker.new(SpecialNameTestCase.new(test_method_name))
115
+ passed_file = checker.send(:passed_file)
116
+ method_name_component = File.basename(File.dirname(passed_file))
117
+ assert_equal(expected, method_name_component)
118
+ end
119
+ end