rroonga 0.9.4-x86-mingw32 → 0.9.5-x86-mingw32

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 (153) hide show
  1. data/NEWS.ja.rdoc +29 -0
  2. data/NEWS.rdoc +29 -0
  3. data/Rakefile +6 -6
  4. data/ext/groonga/rb-grn-array.c +1 -1
  5. data/ext/groonga/rb-grn-context.c +15 -28
  6. data/ext/groonga/rb-grn-exception.c +46 -1
  7. data/ext/groonga/rb-grn-expression.c +22 -13
  8. data/ext/groonga/rb-grn-fix-size-column.c +2 -8
  9. data/ext/groonga/rb-grn-hash.c +8 -1
  10. data/ext/groonga/rb-grn-object.c +1 -1
  11. data/ext/groonga/rb-grn-patricia-trie.c +23 -1
  12. data/ext/groonga/rb-grn-table-key-support.c +22 -0
  13. data/ext/groonga/rb-grn-table.c +37 -5
  14. data/ext/groonga/rb-grn-utils.c +20 -2
  15. data/ext/groonga/rb-grn.h +1 -1
  16. data/ext/groonga/rb-groonga.c +76 -38
  17. data/extconf.rb +17 -1
  18. data/html/developer.html +32 -7
  19. data/html/footer.html.erb +5 -0
  20. data/html/heading-mark.svg +393 -0
  21. data/html/index.html +33 -3
  22. data/lib/1.8/groonga.so +0 -0
  23. data/lib/1.9/groonga.so +0 -0
  24. data/lib/groonga.rb +3 -7
  25. data/lib/groonga/context.rb +2 -13
  26. data/lib/groonga/expression-builder.rb +273 -67
  27. data/lib/groonga/pagination.rb +143 -0
  28. data/lib/groonga/record.rb +2 -0
  29. data/lib/groonga/schema.rb +140 -29
  30. data/pkg/rroonga-0.9.5/NEWS.ja.rdoc +156 -0
  31. data/pkg/rroonga-0.9.5/NEWS.rdoc +158 -0
  32. data/pkg/rroonga-0.9.5/README.ja.rdoc +65 -0
  33. data/pkg/rroonga-0.9.5/README.rdoc +66 -0
  34. data/pkg/rroonga-0.9.5/text/TUTORIAL.ja.rdoc +394 -0
  35. data/pkg/rroonga-0.9.5/text/expression.rdoc +285 -0
  36. data/rroonga-build.rb +2 -2
  37. data/test-unit/Rakefile +40 -0
  38. data/test-unit/TODO +5 -0
  39. data/test-unit/bin/testrb +5 -0
  40. data/test-unit/html/classic.html +15 -0
  41. data/test-unit/html/index.html +25 -0
  42. data/test-unit/html/index.html.ja +27 -0
  43. data/test-unit/lib/test/unit.rb +323 -0
  44. data/test-unit/lib/test/unit/assertionfailederror.rb +25 -0
  45. data/test-unit/lib/test/unit/assertions.rb +1230 -0
  46. data/test-unit/lib/test/unit/attribute.rb +125 -0
  47. data/test-unit/lib/test/unit/autorunner.rb +360 -0
  48. data/test-unit/lib/test/unit/collector.rb +36 -0
  49. data/test-unit/lib/test/unit/collector/descendant.rb +23 -0
  50. data/test-unit/lib/test/unit/collector/dir.rb +108 -0
  51. data/test-unit/lib/test/unit/collector/load.rb +144 -0
  52. data/test-unit/lib/test/unit/collector/objectspace.rb +34 -0
  53. data/test-unit/lib/test/unit/color-scheme.rb +102 -0
  54. data/test-unit/lib/test/unit/color.rb +96 -0
  55. data/test-unit/lib/test/unit/diff.rb +724 -0
  56. data/test-unit/lib/test/unit/error.rb +130 -0
  57. data/test-unit/lib/test/unit/exceptionhandler.rb +39 -0
  58. data/test-unit/lib/test/unit/failure.rb +136 -0
  59. data/test-unit/lib/test/unit/fixture.rb +176 -0
  60. data/test-unit/lib/test/unit/notification.rb +129 -0
  61. data/test-unit/lib/test/unit/omission.rb +191 -0
  62. data/test-unit/lib/test/unit/pending.rb +150 -0
  63. data/test-unit/lib/test/unit/priority.rb +180 -0
  64. data/test-unit/lib/test/unit/runner/console.rb +52 -0
  65. data/test-unit/lib/test/unit/runner/emacs.rb +8 -0
  66. data/test-unit/lib/test/unit/runner/tap.rb +8 -0
  67. data/test-unit/lib/test/unit/testcase.rb +476 -0
  68. data/test-unit/lib/test/unit/testresult.rb +89 -0
  69. data/test-unit/lib/test/unit/testsuite.rb +110 -0
  70. data/test-unit/lib/test/unit/ui/console/outputlevel.rb +14 -0
  71. data/test-unit/lib/test/unit/ui/console/testrunner.rb +466 -0
  72. data/test-unit/lib/test/unit/ui/emacs/testrunner.rb +63 -0
  73. data/test-unit/lib/test/unit/ui/tap/testrunner.rb +92 -0
  74. data/test-unit/lib/test/unit/ui/testrunner.rb +28 -0
  75. data/test-unit/lib/test/unit/ui/testrunnermediator.rb +77 -0
  76. data/test-unit/lib/test/unit/ui/testrunnerutilities.rb +41 -0
  77. data/test-unit/lib/test/unit/util/backtracefilter.rb +41 -0
  78. data/test-unit/lib/test/unit/util/method-owner-finder.rb +28 -0
  79. data/test-unit/lib/test/unit/util/observable.rb +90 -0
  80. data/test-unit/lib/test/unit/util/procwrapper.rb +48 -0
  81. data/test-unit/lib/test/unit/version.rb +7 -0
  82. data/test-unit/sample/adder.rb +13 -0
  83. data/test-unit/sample/subtracter.rb +12 -0
  84. data/test-unit/sample/test_adder.rb +20 -0
  85. data/test-unit/sample/test_subtracter.rb +20 -0
  86. data/test-unit/sample/test_user.rb +23 -0
  87. data/test-unit/test/collector/test-descendant.rb +133 -0
  88. data/test-unit/test/collector/test-load.rb +442 -0
  89. data/test-unit/test/collector/test_dir.rb +406 -0
  90. data/test-unit/test/collector/test_objectspace.rb +100 -0
  91. data/test-unit/test/run-test.rb +15 -0
  92. data/test-unit/test/test-attribute.rb +86 -0
  93. data/test-unit/test/test-color-scheme.rb +67 -0
  94. data/test-unit/test/test-color.rb +47 -0
  95. data/test-unit/test/test-diff.rb +518 -0
  96. data/test-unit/test/test-emacs-runner.rb +60 -0
  97. data/test-unit/test/test-fixture.rb +287 -0
  98. data/test-unit/test/test-notification.rb +33 -0
  99. data/test-unit/test/test-omission.rb +81 -0
  100. data/test-unit/test/test-pending.rb +70 -0
  101. data/test-unit/test/test-priority.rb +119 -0
  102. data/test-unit/test/test-testcase.rb +544 -0
  103. data/test-unit/test/test_assertions.rb +1151 -0
  104. data/test-unit/test/test_error.rb +26 -0
  105. data/test-unit/test/test_failure.rb +33 -0
  106. data/test-unit/test/test_testresult.rb +113 -0
  107. data/test-unit/test/test_testsuite.rb +129 -0
  108. data/test-unit/test/testunit-test-util.rb +14 -0
  109. data/test-unit/test/ui/test_testrunmediator.rb +20 -0
  110. data/test-unit/test/util/test-method-owner-finder.rb +38 -0
  111. data/test-unit/test/util/test_backtracefilter.rb +41 -0
  112. data/test-unit/test/util/test_observable.rb +102 -0
  113. data/test-unit/test/util/test_procwrapper.rb +36 -0
  114. data/test/groonga-test-utils.rb +3 -2
  115. data/test/run-test.rb +14 -2
  116. data/test/test-column.rb +7 -7
  117. data/test/test-context-select.rb +34 -11
  118. data/test/test-exception.rb +3 -0
  119. data/test/test-expression-builder.rb +11 -0
  120. data/test/test-expression.rb +3 -6
  121. data/test/test-gqtp.rb +3 -5
  122. data/test/test-pagination.rb +249 -0
  123. data/test/test-record.rb +36 -8
  124. data/test/test-remote.rb +11 -4
  125. data/test/test-schema-create-table.rb +251 -0
  126. data/test/test-schema.rb +4 -24
  127. data/test/test-table-offset-and-limit.rb +3 -5
  128. data/test/test-table-select-mecab.rb +80 -0
  129. data/test/test-table-select-weight.rb +104 -0
  130. data/test/test-table.rb +22 -4
  131. data/test/test-version.rb +1 -1
  132. data/text/TUTORIAL.ja.rdoc +2 -0
  133. data/text/expression.rdoc +1 -0
  134. data/vendor/local/bin/grntest.exe +0 -0
  135. data/vendor/local/bin/groonga.exe +0 -0
  136. data/vendor/local/bin/libgroonga-0.dll +0 -0
  137. data/vendor/local/include/{groonga.h → groonga/groonga.h} +93 -32
  138. data/vendor/local/lib/groonga/modules/functions/cast.dll +0 -0
  139. data/vendor/local/lib/groonga/modules/functions/cast.la +41 -0
  140. data/vendor/local/lib/pkgconfig/groonga.pc +12 -0
  141. data/vendor/local/share/groonga/admin_html/css/admin.css +104 -0
  142. data/vendor/local/share/groonga/admin_html/css/ui-lightness/jquery-ui-1.8.1.custom.css +486 -0
  143. data/vendor/local/share/groonga/admin_html/index.html +1355 -0
  144. data/vendor/local/share/groonga/admin_html/js/jquery-1.4.2.min.js +154 -0
  145. data/vendor/local/share/groonga/admin_html/js/jquery-ui-1.8.1.custom.min.js +756 -0
  146. data/vendor/local/share/groonga/munin/plugins/groonga_cpu_load +47 -0
  147. data/vendor/local/share/groonga/munin/plugins/groonga_cpu_time +57 -0
  148. data/vendor/local/share/groonga/munin/plugins/groonga_disk +162 -0
  149. data/vendor/local/share/groonga/munin/plugins/groonga_memory +51 -0
  150. data/vendor/local/share/groonga/munin/plugins/groonga_n_records +110 -0
  151. data/vendor/local/share/groonga/munin/plugins/groonga_query_performance +133 -0
  152. data/vendor/local/share/groonga/munin/plugins/groonga_status +84 -0
  153. metadata +126 -36
@@ -0,0 +1,406 @@
1
+ require 'test/unit'
2
+ require 'test/unit/collector/dir'
3
+ require 'pp'
4
+
5
+ module Test
6
+ module Unit
7
+ module Collector
8
+ class TestDir < TestCase
9
+ class FileSystem
10
+ class Directory
11
+ def initialize(name, fs, parent=self, &block)
12
+ @name = name
13
+ @fs = fs
14
+ @parent = parent
15
+ @contents = {'.' => self, '..' => parent}
16
+ instance_eval(&block) if(block)
17
+ end
18
+
19
+ def file(name, contents)
20
+ @contents[name] = contents
21
+ end
22
+
23
+ def dir(name, &block)
24
+ @contents[name] = self.class.new(name, @fs, self, &block)
25
+ end
26
+
27
+ def entries
28
+ @contents.keys
29
+ end
30
+
31
+ def directory?(name)
32
+ return true if(name.nil? || name.empty?)
33
+ return false unless(@contents.include?(name))
34
+ @contents[name].kind_of?(self.class)
35
+ end
36
+
37
+ def file?(name)
38
+ return false unless(@contents.include?(name))
39
+ !directory?(name)
40
+ end
41
+
42
+ def exist?(name)
43
+ @contents.include?(name)
44
+ end
45
+
46
+ def [](name)
47
+ raise Errno::ENOENT, name unless(@contents.include?(name))
48
+ @contents[name]
49
+ end
50
+
51
+ def path_to(name=nil)
52
+ if(!name)
53
+ @parent.path_to(@name)
54
+ elsif(@parent == self)
55
+ @fs.join('/', name)
56
+ else
57
+ @fs.join(@parent.path_to(@name), name)
58
+ end
59
+ end
60
+ end
61
+
62
+ class ObjectSpace
63
+ def initialize
64
+ @objects = []
65
+ end
66
+
67
+ def each_object(klass, &block)
68
+ @objects.find_all{|o| o.kind_of?(klass)}.each(&block)
69
+ end
70
+
71
+ def <<(object)
72
+ @objects << object
73
+ end
74
+ end
75
+
76
+ attr_reader :object_space
77
+
78
+ def initialize(&block)
79
+ @root = Directory.new('/', self, &block)
80
+ @pwd = @root
81
+ @object_space = ObjectSpace.new
82
+ @required = []
83
+ end
84
+
85
+ def entries(dir)
86
+ e = find(dir)
87
+ require_directory(dir)
88
+ e.entries
89
+ end
90
+
91
+ def directory?(name)
92
+ return true if (base = basename(name)) == '/'
93
+ e = find(dirname(name))
94
+ return false unless(e)
95
+ e.directory?(base)
96
+ end
97
+
98
+ def find(path)
99
+ if(/\A\// =~ path)
100
+ thing = @root
101
+ else
102
+ thing = @pwd
103
+ end
104
+ path.scan(/[^\/]+/) do |e|
105
+ break thing = false unless(thing.kind_of?(Directory))
106
+ thing = thing[e]
107
+ end
108
+ thing
109
+ end
110
+
111
+ def dirname(name)
112
+ if (name = name.tr_s('/', '/')) == '/'
113
+ name
114
+ else
115
+ name[%r"\A.+(?=/[^/]+/?\z)|\A/"] || "."
116
+ end
117
+ end
118
+
119
+ def basename(name)
120
+ name[%r"(\A/|[^/]+)/*\z", 1]
121
+ end
122
+
123
+ def split(name)
124
+ [dirname(name), basename(name)]
125
+ end
126
+
127
+ def join(*parts)
128
+ parts.join('/').gsub(%r{/+}, '/')
129
+ end
130
+
131
+ def file?(name)
132
+ e = find(dirname(name))
133
+ return false unless(e)
134
+ e.file?(basename(name))
135
+ end
136
+
137
+ def pwd
138
+ @pwd.path_to
139
+ end
140
+
141
+ def chdir(to)
142
+ e = find(to)
143
+ require_directory(to)
144
+ @pwd = e
145
+ end
146
+
147
+ def expand_path(path, base = nil)
148
+ until /\A\// =~ path
149
+ base ||= pwd
150
+ path = join(base, path)
151
+ base = nil
152
+ end
153
+ path.gsub!(%r"(?:/\.)+(?=/)", '')
154
+ nil while path.sub!(%r"/(?!\.\./)[^/]+/\.\.(?=/)", '')
155
+ path.sub!(%r"\A(?:/\.\.)+(?=/)", '')
156
+ path.sub!(%r"(?:\A(/)|/)\.\.?\z", '\1')
157
+ path
158
+ end
159
+
160
+ def require_directory(path)
161
+ raise Errno::ENOTDIR, path unless(directory?(path))
162
+ end
163
+
164
+ def require(file)
165
+ return false if(@required.include?(file))
166
+ begin
167
+ e = find(file)
168
+ rescue Errno::ENOENT => e
169
+ if(/\.rb\Z/ =~ file)
170
+ raise LoadError, file
171
+ end
172
+ e = find(file + '.rb')
173
+ end
174
+ @required << file
175
+ @object_space << e
176
+ true
177
+ rescue Errno::ENOENT
178
+ raise LoadError, file
179
+ end
180
+ end
181
+
182
+ def test_dir
183
+ inner_dir = nil
184
+ dirs = FileSystem::Directory.new('/', nil) do
185
+ file 'a', nil
186
+ inner_dir = dir 'b'
187
+ end
188
+ assert_equal(inner_dir, dirs['b'])
189
+ end
190
+
191
+ def test_fs
192
+ fs = FileSystem.new do
193
+ file 'a', nil
194
+ dir 'b'
195
+ end
196
+ assert_equal(['.', '..', 'a', 'b'].sort, fs.entries('/').sort)
197
+ assert(fs.directory?('/'))
198
+ assert(!fs.directory?('/a'))
199
+ assert(!fs.directory?('/bogus'))
200
+ assert(fs.file?('/a'))
201
+ assert(!fs.file?('/'))
202
+ assert(!fs.file?('/bogus'))
203
+ assert(fs.directory?('/b'))
204
+ assert(fs.file?('a'))
205
+ assert(fs.directory?('b'))
206
+ end
207
+
208
+ def test_fs_sub
209
+ fs = FileSystem.new do
210
+ dir 'a' do
211
+ file 'b', nil
212
+ dir 'c' do
213
+ file 'd', nil
214
+ end
215
+ end
216
+ end
217
+ assert(fs.file?('/a/b'))
218
+ assert(!fs.file?('/a/b/c/d'))
219
+ assert(fs.file?('/a/c/d'))
220
+ end
221
+
222
+ def test_fs_pwd
223
+ fs = FileSystem.new do
224
+ file 'a', nil
225
+ dir 'b' do
226
+ file 'c', nil
227
+ dir 'd' do
228
+ file 'e', nil
229
+ end
230
+ end
231
+ end
232
+ assert_equal('/', fs.pwd)
233
+ assert_raises(Errno::ENOENT) do
234
+ fs.chdir('bogus')
235
+ end
236
+ assert_raises(Errno::ENOTDIR) do
237
+ fs.chdir('a')
238
+ end
239
+ fs.chdir('b')
240
+ assert_equal('/b', fs.pwd)
241
+ fs.chdir('d')
242
+ assert_equal('/b/d', fs.pwd)
243
+ fs.chdir('..')
244
+ assert_equal('/b', fs.pwd)
245
+ fs.chdir('..')
246
+ assert_equal('/', fs.pwd)
247
+ end
248
+
249
+ def test_fs_entries
250
+ fs = FileSystem.new do
251
+ file 'a', nil
252
+ dir 'b' do
253
+ file 'c', nil
254
+ file 'd', nil
255
+ end
256
+ file 'e', nil
257
+ dir 'f' do
258
+ file 'g', nil
259
+ dir 'h' do
260
+ file 'i', nil
261
+ end
262
+ end
263
+ end
264
+ assert_equal(['.', '..', 'a', 'b', 'e', 'f'], fs.entries('/').sort)
265
+ assert_equal(['.', '..', 'a', 'b', 'e', 'f'], fs.entries('.').sort)
266
+ assert_equal(['.', '..', 'a', 'b', 'e', 'f'], fs.entries('b/..').sort)
267
+ assert_equal(['.', '..', 'c', 'd'], fs.entries('b').sort)
268
+ assert_raises(Errno::ENOENT) do
269
+ fs.entries('z')
270
+ end
271
+ assert_raises(Errno::ENOTDIR) do
272
+ fs.entries('a')
273
+ end
274
+ fs.chdir('f')
275
+ assert_equal(['.', '..', 'i'], fs.entries('h').sort)
276
+ end
277
+
278
+ class TestClass1
279
+ end
280
+ class TestClass2
281
+ end
282
+ def test_fs_require
283
+ fs = FileSystem.new do
284
+ file 'test_class1.rb', TestClass1
285
+ dir 'dir' do
286
+ file 'test_class2.rb', TestClass2
287
+ end
288
+ end
289
+ c = []
290
+ fs.object_space.each_object(Class) do |o|
291
+ c << o
292
+ end
293
+ assert_equal([], c)
294
+
295
+ assert_raises(LoadError) do
296
+ fs.require('bogus')
297
+ end
298
+
299
+ assert(fs.require('test_class1.rb'))
300
+ assert(!fs.require('test_class1.rb'))
301
+ c = []
302
+ fs.object_space.each_object(Class) do |o|
303
+ c << o
304
+ end
305
+ assert_equal([TestClass1], c)
306
+
307
+ fs.require('dir/test_class2')
308
+ c = []
309
+ fs.object_space.each_object(Class) do |o|
310
+ c << o
311
+ end
312
+ assert_equal([TestClass1, TestClass2], c)
313
+
314
+ c = []
315
+ fs.object_space.each_object(Time) do |o|
316
+ c << o
317
+ end
318
+ assert_equal([], c)
319
+ end
320
+
321
+ def setup
322
+ @t1 = t1 = create_test(1)
323
+ @t2 = t2 = create_test(2)
324
+ @t3 = t3 = create_test(3)
325
+ @t4 = t4 = create_test(4)
326
+ @t5 = t5 = create_test(5)
327
+ @t6 = t6 = create_test(6)
328
+ fs = FileSystem.new do
329
+ file 'test_1.rb', t1
330
+ file 'test_2.rb', t2
331
+ dir 'd1' do
332
+ file 'test_3.rb', t3
333
+ end
334
+ file 't4.rb', t4
335
+ dir 'd2' do
336
+ file 'test_5', t5
337
+ file 'test_6.rb', Time
338
+ end
339
+ file 't6.rb', t6
340
+ end
341
+ fs.require('t6')
342
+ @c = Dir.new(fs, fs, fs.object_space, fs)
343
+ end
344
+
345
+ def create_test(name)
346
+ t = Class.new(TestCase)
347
+ t.class_eval <<-EOC
348
+ def self.name
349
+ "T\#{#{name}}"
350
+ end
351
+ def test_#{name}a
352
+ end
353
+ def test_#{name}b
354
+ end
355
+ EOC
356
+ t
357
+ end
358
+
359
+ def test_simple_collect
360
+ expected = TestSuite.new('d1')
361
+ expected << (@t3.suite)
362
+ assert_equal(expected, @c.collect('d1'))
363
+ end
364
+
365
+ def test_multilevel_collect
366
+ expected = TestSuite.new('.')
367
+ expected << @t1.suite << @t2.suite
368
+ expected << (TestSuite.new('d1') << @t3.suite)
369
+ assert_equal(expected, @c.collect)
370
+ end
371
+
372
+ def test_collect_file
373
+ expected = TestSuite.new('test_1.rb')
374
+ expected << @t1.suite
375
+ assert_equal(expected, @c.collect('test_1.rb'))
376
+
377
+ expected = TestSuite.new('t4.rb')
378
+ expected << @t4.suite
379
+ assert_equal(expected, @c.collect('t4.rb'))
380
+ end
381
+
382
+ def test_nil_pattern
383
+ expected = TestSuite.new('d2')
384
+ expected << @t5.suite
385
+ @c.pattern.clear
386
+ assert_equal(expected, @c.collect('d2'))
387
+ end
388
+
389
+ def test_filtering
390
+ expected = TestSuite.new('.')
391
+ expected << @t1.suite
392
+ @c.filter = proc{|t| t.method_name == 'test_1a' || t.method_name == 'test_1b'}
393
+ assert_equal(expected, @c.collect)
394
+ end
395
+
396
+ def test_collect_multi
397
+ expected = TestSuite.new('[d1, d2]')
398
+ expected << (TestSuite.new('d1') << @t3.suite)
399
+ expected << (TestSuite.new('d2') << @t5.suite)
400
+ @c.pattern.replace([/\btest_/])
401
+ assert_equal(expected, @c.collect('d1', 'd2'))
402
+ end
403
+ end
404
+ end
405
+ end
406
+ end
@@ -0,0 +1,100 @@
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
+ require 'test/unit/collector/objectspace'
7
+
8
+ module Test
9
+ module Unit
10
+ module Collector
11
+ class TC_ObjectSpace < TestCase
12
+ def setup
13
+ @tc1 = Class.new(TestCase) do
14
+ def self.name
15
+ "tc_1"
16
+ end
17
+ def test_1
18
+ end
19
+ def test_2
20
+ end
21
+ end
22
+
23
+ @tc2 = Class.new(TestCase) do
24
+ def self.name
25
+ "tc_2"
26
+ end
27
+ def test_0
28
+ end
29
+ end
30
+
31
+ @no_tc = Class.new do
32
+ def test_4
33
+ end
34
+ end
35
+
36
+ @object_space = {Class => [@tc1, @tc2, @no_tc], String => ['']}
37
+ def @object_space.each_object(type)
38
+ self[type].each{|item| yield(item) }
39
+ end
40
+
41
+ @c = ObjectSpace.new(@object_space)
42
+ end
43
+
44
+ def full_suite(name=ObjectSpace::NAME)
45
+ expected = TestSuite.new(name)
46
+ expected << (TestSuite.new(@tc1.name) << @tc1.new('test_1') << @tc1.new('test_2'))
47
+ expected << (TestSuite.new(@tc2.name) << @tc2.new('test_0'))
48
+ end
49
+
50
+ def empty_suite
51
+ TestSuite.new(ObjectSpace::NAME)
52
+ end
53
+
54
+ def test_basic_collection
55
+ assert_equal(full_suite("name"), @c.collect("name"))
56
+
57
+ @c.filter = []
58
+ assert_equal(full_suite("name"), @c.collect("name"))
59
+ end
60
+
61
+ def test_filtered_collection
62
+ @c.filter = proc{false}
63
+ assert_equal(empty_suite, @c.collect)
64
+
65
+ @c.filter = proc{true}
66
+ assert_equal(full_suite, @c.collect)
67
+
68
+ @c.filter = proc{nil}
69
+ assert_equal(full_suite, @c.collect)
70
+
71
+ @c.filter = [proc{false}, proc{true}]
72
+ assert_equal(empty_suite, @c.collect)
73
+
74
+ @c.filter = [proc{true}, proc{false}]
75
+ assert_equal(empty_suite, @c.collect)
76
+
77
+ @c.filter = [proc{nil}, proc{false}]
78
+ assert_equal(empty_suite, @c.collect)
79
+
80
+ @c.filter = [proc{nil}, proc{true}]
81
+ assert_equal(full_suite, @c.collect)
82
+
83
+ expected = TestSuite.new(ObjectSpace::NAME)
84
+ expected << (TestSuite.new(@tc1.name) << @tc1.new('test_1'))
85
+ expected << (TestSuite.new(@tc2.name) << @tc2.new('test_0'))
86
+ @c.filter = proc{|test| ['test_1', 'test_0'].include?(test.method_name)}
87
+ assert_equal(expected, @c.collect)
88
+
89
+ expected = TestSuite.new(ObjectSpace::NAME)
90
+ TestSuite.new(@tc1.name) << @tc1.new('test_1')
91
+ TestSuite.new(@tc2.name) << @tc2.new('test_0')
92
+ @c.filter = [proc{|t| t.method_name == 'test_1' ? true : nil},
93
+ proc{|t| t.method_name == 'test_0' ? true : nil},
94
+ proc{false}]
95
+ assert_equal(empty_suite, @c.collect)
96
+ end
97
+ end
98
+ end
99
+ end
100
+ end