activesambaldap 0.0.6 → 0.0.7

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 (107) hide show
  1. data/NEWS.en +20 -18
  2. data/NEWS.ja +23 -21
  3. data/README.en +122 -95
  4. data/README.ja +125 -98
  5. data/Rakefile +29 -64
  6. data/bin/asl-groupadd +1 -1
  7. data/bin/asl-groupadd.help +1 -0
  8. data/bin/asl-groupdel +1 -1
  9. data/bin/asl-groupdel.help +1 -0
  10. data/bin/asl-groupmod +1 -1
  11. data/bin/asl-groupmod.help +1 -0
  12. data/bin/asl-groupshow +1 -1
  13. data/bin/asl-groupshow.help +1 -0
  14. data/bin/asl-passwd +1 -1
  15. data/bin/asl-passwd.help +1 -0
  16. data/bin/asl-populate +2 -2
  17. data/bin/asl-populate.help +1 -0
  18. data/bin/asl-purge +1 -1
  19. data/bin/asl-purge.help +1 -0
  20. data/bin/asl-samba-computeradd +1 -1
  21. data/bin/asl-samba-computeradd.help +1 -0
  22. data/bin/asl-samba-groupadd +1 -1
  23. data/bin/asl-samba-groupadd.help +1 -0
  24. data/bin/asl-samba-groupdel +1 -1
  25. data/bin/asl-samba-groupdel.help +1 -0
  26. data/bin/asl-samba-groupmod +1 -1
  27. data/bin/asl-samba-groupmod.help +1 -0
  28. data/bin/asl-samba-useradd +1 -1
  29. data/bin/asl-samba-useradd.help +1 -0
  30. data/bin/asl-samba-userdel +1 -1
  31. data/bin/asl-samba-userdel.help +1 -0
  32. data/bin/asl-samba-usermod +1 -1
  33. data/bin/asl-samba-usermod.help +1 -0
  34. data/bin/asl-useradd +1 -1
  35. data/bin/asl-useradd.help +6 -4
  36. data/bin/asl-userdel +1 -1
  37. data/bin/asl-userdel.help +1 -0
  38. data/bin/asl-usermod +1 -1
  39. data/bin/asl-usermod.help +2 -0
  40. data/bin/asl-usershow +1 -1
  41. data/bin/asl-usershow.help +1 -0
  42. data/data/locale/ja/LC_MESSAGES/active-samba-ldap.mo +0 -0
  43. data/lib/active_samba_ldap/version.rb +1 -1
  44. data/lib/active_samba_ldap.rb +1 -1
  45. data/po/ja/active-samba-ldap.po +5 -5
  46. data/rails/{plugin/active_samba_ldap/README → README} +0 -0
  47. data/rails/{plugin/active_samba_ldap/init.rb → init.rb} +1 -1
  48. data/{rails/plugin/active_samba_ldap/generators → rails_generators}/scaffold_active_samba_ldap/scaffold_active_samba_ldap_generator.rb +0 -0
  49. data/{rails/plugin/active_samba_ldap/generators → rails_generators}/scaffold_active_samba_ldap/templates/computer.rb +0 -0
  50. data/{rails/plugin/active_samba_ldap/generators → rails_generators}/scaffold_active_samba_ldap/templates/dc.rb +0 -0
  51. data/{rails/plugin/active_samba_ldap/generators → rails_generators}/scaffold_active_samba_ldap/templates/group.rb +0 -0
  52. data/{rails/plugin/active_samba_ldap/generators → rails_generators}/scaffold_active_samba_ldap/templates/idmap.rb +0 -0
  53. data/{rails/plugin/active_samba_ldap/generators → rails_generators}/scaffold_active_samba_ldap/templates/ldap.yml +0 -0
  54. data/{rails/plugin/active_samba_ldap/generators → rails_generators}/scaffold_active_samba_ldap/templates/ou.rb +0 -0
  55. data/{rails/plugin/active_samba_ldap/generators → rails_generators}/scaffold_active_samba_ldap/templates/samba_controller.rb +0 -0
  56. data/{rails/plugin/active_samba_ldap/generators → rails_generators}/scaffold_active_samba_ldap/templates/samba_helper.rb +0 -0
  57. data/{rails/plugin/active_samba_ldap/generators → rails_generators}/scaffold_active_samba_ldap/templates/samba_index.rhtml +0 -0
  58. data/{rails/plugin/active_samba_ldap/generators → rails_generators}/scaffold_active_samba_ldap/templates/samba_populate.rhtml +0 -0
  59. data/{rails/plugin/active_samba_ldap/generators → rails_generators}/scaffold_active_samba_ldap/templates/samba_purge.rhtml +0 -0
  60. data/{rails/plugin/active_samba_ldap/generators → rails_generators}/scaffold_active_samba_ldap/templates/unix_id_pool.rb +0 -0
  61. data/{rails/plugin/active_samba_ldap/generators → rails_generators}/scaffold_active_samba_ldap/templates/user.rb +0 -0
  62. data/test/asl-test-utils.rb +2 -2
  63. data/test/test_asl_usershow.rb +2 -2
  64. data/test/test_password.rb +2 -2
  65. data/test/test_user_home_directory.rb +2 -2
  66. data/test-unit/History.txt +76 -1
  67. data/test-unit/README.txt +32 -12
  68. data/test-unit/Rakefile +19 -1
  69. data/test-unit/TODO +5 -0
  70. data/test-unit/lib/test/unit/assertions.rb +515 -88
  71. data/test-unit/lib/test/unit/autorunner.rb +93 -14
  72. data/test-unit/lib/test/unit/collector/load.rb +1 -1
  73. data/test-unit/lib/test/unit/collector.rb +1 -1
  74. data/test-unit/lib/test/unit/color-scheme.rb +86 -0
  75. data/test-unit/lib/test/unit/color.rb +40 -5
  76. data/test-unit/lib/test/unit/diff.rb +14 -0
  77. data/test-unit/lib/test/unit/fixture.rb +7 -16
  78. data/test-unit/lib/test/unit/notification.rb +9 -0
  79. data/test-unit/lib/test/unit/omission.rb +14 -0
  80. data/test-unit/lib/test/unit/pending.rb +16 -0
  81. data/test-unit/lib/test/unit/priority.rb +38 -3
  82. data/test-unit/lib/test/unit/runner/console.rb +8 -2
  83. data/test-unit/lib/test/unit/testcase.rb +263 -12
  84. data/test-unit/lib/test/unit/ui/console/testrunner.rb +58 -30
  85. data/test-unit/lib/test/unit/util/method-owner-finder.rb +28 -0
  86. data/test-unit/lib/test/unit/version.rb +1 -1
  87. data/test-unit/lib/test/unit.rb +62 -0
  88. data/test-unit/sample/test_user.rb +22 -0
  89. data/test-unit/test/collector/{test_descendant.rb → test-descendant.rb} +0 -0
  90. data/test-unit/test/collector/{test_load.rb → test-load.rb} +1 -1
  91. data/test-unit/test/{test_attribute.rb → test-attribute.rb} +0 -0
  92. data/test-unit/test/test-color-scheme.rb +56 -0
  93. data/test-unit/test/{test_color.rb → test-color.rb} +10 -0
  94. data/test-unit/test/{test_diff.rb → test-diff.rb} +0 -0
  95. data/test-unit/test/{test_emacs_runner.rb → test-emacs-runner.rb} +0 -0
  96. data/test-unit/test/test-fixture.rb +287 -0
  97. data/test-unit/test/{test_notification.rb → test-notification.rb} +4 -4
  98. data/test-unit/test/{test_omission.rb → test-omission.rb} +6 -6
  99. data/test-unit/test/{test_pending.rb → test-pending.rb} +12 -6
  100. data/test-unit/test/{test_priority.rb → test-priority.rb} +30 -0
  101. data/test-unit/test/{test_testcase.rb → test-testcase.rb} +100 -4
  102. data/test-unit/test/test_assertions.rb +462 -73
  103. data/test-unit/test/{testunit_test_util.rb → testunit-test-util.rb} +4 -2
  104. data/test-unit/test/ui/test_testrunmediator.rb +1 -1
  105. data/test-unit/test/util/test-method-owner-finder.rb +38 -0
  106. metadata +69 -79
  107. data/test-unit/test/test_fixture.rb +0 -275
@@ -1,5 +1,6 @@
1
1
  # Author:: Nathaniel Talbott.
2
2
  # Copyright:: Copyright (c) 2000-2002 Nathaniel Talbott. All rights reserved.
3
+ # Copyright (c) 2009 Kouhei Sutou.
3
4
  # License:: Ruby license.
4
5
 
5
6
  require 'test/unit'
@@ -7,6 +8,10 @@ require 'test/unit'
7
8
  module Test
8
9
  module Unit
9
10
  class TC_Assertions < TestCase
11
+ backtrace_pre = "---Backtrace---"
12
+ backtrace_post = "---------------"
13
+ BACKTRACE_RE = /#{backtrace_pre}\n.+\n#{backtrace_post}/m
14
+
10
15
  def check(value, message="")
11
16
  add_assertion
12
17
  raise AssertionFailedError.new(message) unless value
@@ -116,9 +121,6 @@ module Test
116
121
  check_nothing_fails {
117
122
  assert_equal("string1", "string1")
118
123
  }
119
- check_nothing_fails {
120
- assert_equal( "string1", "string1", "successful assert_equal")
121
- }
122
124
  check_nothing_fails {
123
125
  assert_equal("string1", "string1", "successful assert_equal")
124
126
  }
@@ -166,6 +168,47 @@ EOM
166
168
  end
167
169
  end
168
170
 
171
+ def test_assert_equal_with_long_line
172
+ expected = ["0123456789",
173
+ "1123456789",
174
+ "2123456789",
175
+ "3123456789",
176
+ "4123456789",
177
+ "5123456789",
178
+ "6123456789",
179
+ "7123456789",
180
+ "8123456789"].join
181
+ actual = ["0000000000",
182
+ "1123456789",
183
+ "2123456789",
184
+ "3123456789",
185
+ "4123456789",
186
+ "5123456789",
187
+ "6123456789",
188
+ "7123456789",
189
+ "8123456789"].join
190
+ message = <<-EOM.chomp
191
+ <"#{expected}"> expected but was
192
+ <"#{actual}">.
193
+
194
+ diff:
195
+ - #{expected}
196
+ ? ^^^^^^^^^
197
+ + #{actual}
198
+ ? ^^^^^^^^^
199
+
200
+ folded diff:
201
+ - 012345678911234567892123456789312345678941234567895123456789612345678971234567
202
+ ? ^^^^^^^^^
203
+ + 000000000011234567892123456789312345678941234567895123456789612345678971234567
204
+ ? ^^^^^^^^^
205
+ 898123456789
206
+ EOM
207
+ check_fails(message) do
208
+ assert_equal(expected, actual)
209
+ end
210
+ end
211
+
169
212
  def test_assert_equal_for_too_small_difference
170
213
  message = <<-EOM.chomp
171
214
  <1> expected but was
@@ -203,85 +246,222 @@ EOM
203
246
  end
204
247
  end
205
248
 
206
- def test_assert_raise
249
+ def test_assert_equal_with_large_string
250
+ message = <<-EOM.chomp
251
+ <#{("a\n" + "x" * 297).inspect}> expected but was
252
+ <#{"x".inspect}>.
253
+
254
+ diff:
255
+ + x
256
+ - a
257
+ - #{"x" * 297}
258
+
259
+ folded diff:
260
+ + x
261
+ - a
262
+ - #{"x" * 78}
263
+ - #{"x" * 78}
264
+ - #{"x" * 78}
265
+ - #{"x" * 63}
266
+ EOM
267
+ check_fails(message) do
268
+ assert_equal("a\n" + "x" * 297, "x")
269
+ end
270
+
271
+ message = <<-EOM.chomp
272
+ <#{("a\n" + "x" * 298).inspect}> expected but was
273
+ <#{"x".inspect}>.
274
+ EOM
275
+ check_fails(message) do
276
+ assert_equal("a\n" + "x" * 298, "x")
277
+ end
278
+ end
279
+
280
+ def test_assert_raise_success
207
281
  return_value = nil
208
- check_nothing_fails(true) {
209
- return_value = assert_raise(RuntimeError) {
282
+ check_nothing_fails(true) do
283
+ return_value = assert_raise(RuntimeError) do
210
284
  raise "Error"
211
- }
212
- }
213
- check(return_value.kind_of?(Exception), "Should have returned the exception from a successful assert_raise")
214
- check(return_value.message == "Error", "Should have returned the correct exception from a successful assert_raise")
215
- check_nothing_fails(true) {
216
- assert_raise(ArgumentError, "successful assert_raise") {
285
+ end
286
+ end
287
+ check(return_value.kind_of?(Exception),
288
+ "Should have returned the exception " +
289
+ "from a successful assert_raise")
290
+ check(return_value.message == "Error",
291
+ "Should have returned the correct exception " +
292
+ "from a successful assert_raise")
293
+
294
+ check_nothing_fails(true) do
295
+ assert_raise(ArgumentError, "successful assert_raise") do
217
296
  raise ArgumentError.new("Error")
218
- }
219
- }
220
- check_nothing_fails(true) {
221
- assert_raise(RuntimeError) {
297
+ end
298
+ end
299
+
300
+ check_nothing_fails(true) do
301
+ assert_raise(RuntimeError) do
222
302
  raise "Error"
223
- }
224
- }
225
- check_nothing_fails(true) {
226
- assert_raise(RuntimeError, "successful assert_raise") {
303
+ end
304
+ end
305
+
306
+ check_nothing_fails(true) do
307
+ assert_raise(RuntimeError, "successful assert_raise") do
227
308
  raise "Error"
228
- }
229
- }
230
- check_fails("<RuntimeError> exception expected but none was thrown.") {
231
- assert_raise(RuntimeError) {
309
+ end
310
+ end
311
+
312
+ check_nothing_fails(true) do
313
+ assert_raise do
314
+ raise Exception, "Any exception"
315
+ end
316
+ end
317
+ end
318
+
319
+ def test_assert_raise_fail
320
+ check_fails("<RuntimeError> exception expected but none was thrown.") do
321
+ assert_raise(RuntimeError) do
232
322
  1 + 1
233
- }
234
- }
235
- check_fails(%r{\Afailed assert_raise.\n<ArgumentError> exception expected but was\nClass: <RuntimeError>\nMessage: <"Error">\n---Backtrace---\n.+\n---------------\Z}m) {
236
- assert_raise(ArgumentError, "failed assert_raise") {
323
+ end
324
+ end
325
+
326
+ message = <<-EOM
327
+ failed assert_raise.
328
+ <ArgumentError> exception expected but was
329
+ Class: <RuntimeError>
330
+ Message: <"Error">
331
+ EOM
332
+ check_fails(/\A#{message}#{BACKTRACE_RE}\Z/m) do
333
+ assert_raise(ArgumentError, "failed assert_raise") do
237
334
  raise "Error"
238
- }
239
- }
240
- check_fails("Should expect a class of exception, Object.\n<false> is not true.") {
241
- assert_nothing_raised(Object) {
335
+ end
336
+ end
337
+
338
+ message = <<-EOM
339
+ Should expect a class of exception, Object.
340
+ <false> is not true.
341
+ EOM
342
+ check_fails(message.chomp) do
343
+ assert_nothing_raised(Object) do
242
344
  1 + 1
243
- }
244
- }
345
+ end
346
+ end
347
+ end
245
348
 
349
+ def test_assert_raise_module
246
350
  exceptions = [ArgumentError, TypeError]
247
351
  modules = [Math, Comparable]
248
352
  rescues = exceptions + modules
353
+
249
354
  exceptions.each do |exc|
250
- check_nothing_fails(true) {
251
- return_value = assert_raise(*rescues) {
355
+ return_value = nil
356
+ check_nothing_fails(true) do
357
+ return_value = assert_raise(*rescues) do
252
358
  raise exc, "Error"
253
- }
254
- }
255
- check(return_value.instance_of?(exc), "Should have returned #{exc} but was #{return_value.class}")
256
- check(return_value.message == "Error", "Should have returned the correct exception from a successful assert_raise")
359
+ end
360
+ end
361
+ check(return_value.instance_of?(exc),
362
+ "Should have returned #{exc} but was #{return_value.class}")
363
+ check(return_value.message == "Error",
364
+ "Should have returned the correct exception " +
365
+ "from a successful assert_raise")
257
366
  end
367
+
258
368
  modules.each do |mod|
259
- check_nothing_fails(true) {
260
- return_value = assert_raise(*rescues) {
369
+ return_value = nil
370
+ check_nothing_fails(true) do
371
+ return_value = assert_raise(*rescues) do
261
372
  raise Exception.new("Error").extend(mod)
262
- }
263
- }
264
- check(mod === return_value, "Should have returned #{mod}")
265
- check(return_value.message == "Error", "Should have returned the correct exception from a successful assert_raise")
373
+ end
374
+ end
375
+ check(mod === return_value,
376
+ "Should have returned #{mod}")
377
+ check(return_value.message == "Error",
378
+ "Should have returned the correct exception " +
379
+ "from a successful assert_raise")
266
380
  end
267
- check_fails("<[ArgumentError, TypeError, Math, Comparable]> exception expected but none was thrown.") {
268
- assert_raise(*rescues) {
381
+
382
+ check_fails("<[ArgumentError, TypeError, Math, Comparable]> exception " +
383
+ "expected but none was thrown.") do
384
+ assert_raise(*rescues) do
269
385
  1 + 1
270
- }
271
- }
272
- check_fails(%r{\Afailed assert_raise.
273
- <\[ArgumentError, TypeError\]> exception expected but was
386
+ end
387
+ end
388
+
389
+ message = <<-EOM
390
+ failed assert_raise.
391
+ <[ArgumentError, TypeError]> exception expected but was
274
392
  Class: <RuntimeError>
275
393
  Message: <"Error">
276
- ---Backtrace---
277
- .+
278
- ---------------\Z}m) {
279
- assert_raise(ArgumentError, TypeError, "failed assert_raise") {
394
+ EOM
395
+ message = Regexp.escape(message)
396
+ check_fails(/\A#{message}#{BACKTRACE_RE}\z/m) do
397
+ assert_raise(ArgumentError, TypeError, "failed assert_raise") do
280
398
  raise "Error"
281
- }
282
- }
399
+ end
400
+ end
283
401
  end
284
-
402
+
403
+ def test_assert_raise_instance
404
+ return_value = nil
405
+ check_nothing_fails(true) do
406
+ return_value = assert_raise(RuntimeError.new("Error")) do
407
+ raise "Error"
408
+ end
409
+ end
410
+ check(return_value.kind_of?(Exception),
411
+ "Should have returned the exception " +
412
+ "from a successful assert_raise")
413
+ check(return_value.message == "Error",
414
+ "Should have returned the correct exception " +
415
+ "from a successful assert_raise")
416
+
417
+ message = <<-EOM
418
+ <RuntimeError("XXX")> exception expected but was
419
+ Class: <RuntimeError>
420
+ Message: <"Error">
421
+ EOM
422
+ message = Regexp.escape(message)
423
+ check_fails(/\A#{message}#{BACKTRACE_RE}\z/) do
424
+ return_value = assert_raise(RuntimeError.new("XXX")) do
425
+ raise "Error"
426
+ end
427
+ end
428
+
429
+ different_error_class = Class.new(StandardError)
430
+ message = <<-EOM
431
+ <\#<Class:[xa-f\\d]+>\\("Error"\\)> exception expected but was
432
+ Class: <RuntimeError>
433
+ Message: <"Error">
434
+ EOM
435
+ check_fails(/\A#{message}#{BACKTRACE_RE}\z/) do
436
+ assert_raise(different_error_class.new("Error")) do
437
+ raise "Error"
438
+ end
439
+ end
440
+
441
+ different_error = different_error_class.new("Error")
442
+ def different_error.inspect
443
+ "DifferentError: \"Error\""
444
+ end
445
+ message = <<-EOM
446
+ <\DifferentError: \\"Error\\"> exception expected but was
447
+ Class: <RuntimeError>
448
+ Message: <"Error">
449
+ EOM
450
+ check_fails(/\A#{message}#{BACKTRACE_RE}\z/) do
451
+ assert_raise(different_error) do
452
+ raise "Error"
453
+ end
454
+ end
455
+
456
+ check_nothing_fails(true) do
457
+ assert_raise(different_error_class.new("Error"),
458
+ RuntimeError.new("Error"),
459
+ RuntimeError.new("XXX")) do
460
+ raise "Error"
461
+ end
462
+ end
463
+ end
464
+
285
465
  def test_assert_instance_of
286
466
  check_nothing_fails {
287
467
  assert_instance_of(String, "string")
@@ -298,8 +478,18 @@ Message: <"Error">
298
478
  check_fails(%Q{failed assert_instance_of.\n<"string"> expected to be an instance of\n<Hash> but was\n<String>.}) {
299
479
  assert_instance_of(Hash, "string", "failed assert_instance_of")
300
480
  }
481
+
482
+ check_nothing_fails do
483
+ assert_instance_of([Fixnum, NilClass], 100)
484
+ end
485
+ check_fails(%Q{<"string"> expected to be an instance of\n[<Fixnum>, <NilClass>] but was\n<String>.}) do
486
+ assert_instance_of([Fixnum, NilClass], "string")
487
+ end
488
+ check_fails(%Q{<100> expected to be an instance of\n[<Numeric>, <NilClass>] but was\n<Fixnum>.}) do
489
+ assert_instance_of([Numeric, NilClass], 100)
490
+ end
301
491
  end
302
-
492
+
303
493
  def test_assert_nil
304
494
  check_nothing_fails {
305
495
  assert_nil(nil)
@@ -338,14 +528,21 @@ Message: <"Error">
338
528
  check_nothing_fails {
339
529
  assert_kind_of(Comparable, 1)
340
530
  }
341
- check_fails(%Q{<"string">\nexpected to be kind_of?\n<Class> but was\n<String>.}) {
531
+ check_fails(%Q{<"string"> expected to be kind_of?\n<Class> but was\n<String>.}) {
342
532
  assert_kind_of(Class, "string")
343
533
  }
344
- check_fails(%Q{failed assert_kind_of.\n<"string">\nexpected to be kind_of?\n<Class> but was\n<String>.}) {
534
+ check_fails(%Q{failed assert_kind_of.\n<"string"> expected to be kind_of?\n<Class> but was\n<String>.}) {
345
535
  assert_kind_of(Class, "string", "failed assert_kind_of")
346
536
  }
537
+
538
+ check_nothing_fails do
539
+ assert_kind_of([Fixnum, NilClass], 100)
540
+ end
541
+ check_fails(%Q{<"string"> expected to be kind_of?\n[<Fixnum>, <NilClass>] but was\n<String>.}) do
542
+ assert_kind_of([Fixnum, NilClass], "string")
543
+ end
347
544
  end
348
-
545
+
349
546
  def test_assert_match
350
547
  check_nothing_fails {
351
548
  assert_match(/strin./, "string")
@@ -496,9 +693,9 @@ Message: <"Error">
496
693
  end
497
694
  end
498
695
 
499
- def test_assert_throws
696
+ def test_assert_throw
500
697
  check_nothing_fails do
501
- assert_throws(:thing, "message") do
698
+ assert_throw(:thing, "message") do
502
699
  throw :thing
503
700
  end
504
701
  end
@@ -507,13 +704,13 @@ Message: <"Error">
507
704
  check_fails("message.\n" +
508
705
  "<:thing> expected to be thrown but\n" +
509
706
  "<#{inspect_tag(tag)}> was thrown.") do
510
- assert_throws(:thing, "message") do
707
+ assert_throw(:thing, "message") do
511
708
  throw :thing2
512
709
  end
513
710
  end
514
711
  check_fails("message.\n" +
515
712
  "<:thing> should have been thrown.") do
516
- assert_throws(:thing, "message") do
713
+ assert_throw(:thing, "message") do
517
714
  1 + 1
518
715
  end
519
716
  end
@@ -555,10 +752,13 @@ Message: <"Error">
555
752
  check_nothing_fails {
556
753
  assert_respond_to("thing", "to_s", "message")
557
754
  }
558
- check_fails("<0.15>\ngiven as the method name argument to #assert_respond_to must be a Symbol or #respond_to?(:to_str).") {
755
+ check_fails("<0.15>.kind_of?(Symbol) or\n" +
756
+ "<0.15>.respond_to?(:to_str) expected") {
559
757
  assert_respond_to("thing", 0.15)
560
758
  }
561
- check_fails("message.\n<:symbol>\nof type <Symbol>\nexpected to respond_to?<:non_existent>.") {
759
+ check_fails("message.\n" +
760
+ "<:symbol>.respond_to?(:non_existent) expected\n" +
761
+ "(Class: <Symbol>)") {
562
762
  assert_respond_to(:symbol, :non_existent, "message")
563
763
  }
564
764
  end
@@ -580,10 +780,15 @@ Message: <"Error">
580
780
  check_fails("message.\n<0.5> and\n<0.4> expected to be within\n<0.05> of each other.") {
581
781
  assert_in_delta(0.5, 0.4, 0.05, "message")
582
782
  }
583
- check_fails(%r{The arguments must respond to to_f; the first float did not\.\n<.+>\nof type <Object>\nexpected to respond_to\?<:to_f>.}) {
584
- assert_in_delta(Object.new, 0.4, 0.1)
585
- }
586
- check_fails("The delta should not be negative.\n<-0.1> expected to be\n>=\n<0.0>.") {
783
+ object = Object.new
784
+ check_fails("The arguments must respond to to_f; " +
785
+ "the first float did not.\n" +
786
+ "<#{object.inspect}>.respond_to?(:to_f) expected\n" +
787
+ "(Class: <Object>)") {
788
+ assert_in_delta(object, 0.4, 0.1)
789
+ }
790
+ check_fails("The delta should not be negative.\n" +
791
+ "<-0.1> expected to be\n>=\n<0.0>.") {
587
792
  assert_in_delta(0.5, 0.4, -0.1, "message")
588
793
  }
589
794
  end
@@ -675,6 +880,190 @@ Message: <"Error">
675
880
  end
676
881
  end
677
882
 
883
+ def test_assert_compare
884
+ check_nothing_fails do
885
+ assert_compare(1.4, "<", 10.0)
886
+ end
887
+
888
+ check_nothing_fails do
889
+ assert_compare(2, "<=", 2)
890
+ end
891
+
892
+ check_nothing_fails do
893
+ assert_compare(14, ">=", 10.0)
894
+ end
895
+
896
+ check_nothing_fails do
897
+ assert_compare(14, ">", 13.9)
898
+ end
899
+
900
+ expected_message = <<-EOM
901
+ <15> < <10> should be true
902
+ <15> expected less than
903
+ <10>.
904
+ EOM
905
+ check_fails(expected_message.chomp) do
906
+ assert_compare(15, "<", 10)
907
+ end
908
+
909
+ expected_message = <<-EOM
910
+ <15> <= <10> should be true
911
+ <15> expected less than or equal to
912
+ <10>.
913
+ EOM
914
+ check_fails(expected_message.chomp) do
915
+ assert_compare(15, "<=", 10)
916
+ end
917
+
918
+ expected_message = <<-EOM
919
+ <10> > <15> should be true
920
+ <10> expected greater than
921
+ <15>.
922
+ EOM
923
+ check_fails(expected_message.chomp) do
924
+ assert_compare(10, ">", 15)
925
+ end
926
+
927
+ expected_message = <<-EOM
928
+ <10> >= <15> should be true
929
+ <10> expected greater than or equal to
930
+ <15>.
931
+ EOM
932
+ check_fails(expected_message.chomp) do
933
+ assert_compare(10, ">=", 15)
934
+ end
935
+ end
936
+
937
+ def test_assert_fail_assertion
938
+ check_nothing_fails do
939
+ assert_fail_assertion do
940
+ flunk
941
+ end
942
+ end
943
+
944
+ check_fails("Failed assertion was expected.") do
945
+ assert_fail_assertion do
946
+ end
947
+ end
948
+ end
949
+
950
+ def test_assert_raise_message
951
+ check_nothing_fails do
952
+ assert_raise_message("Raise!") do
953
+ raise "Raise!"
954
+ end
955
+ end
956
+
957
+ check_nothing_fails do
958
+ assert_raise_message("Raise!") do
959
+ raise Exception, "Raise!"
960
+ end
961
+ end
962
+
963
+ check_nothing_fails do
964
+ assert_raise_message(/raise/i) do
965
+ raise "Raise!"
966
+ end
967
+ end
968
+
969
+ expected_message = <<-EOM
970
+ <"Expected message"> exception message expected but was
971
+ <"Actual message">.
972
+ EOM
973
+ check_fails(expected_message.chomp) do
974
+ assert_raise_message("Expected message") do
975
+ raise "Actual message"
976
+ end
977
+ end
978
+
979
+ expected_message = <<-EOM
980
+ <"Expected message"> exception message expected but none was thrown.
981
+ EOM
982
+ check_fails(expected_message.chomp) do
983
+ assert_raise_message("Expected message") do
984
+ end
985
+ end
986
+ end
987
+
988
+ def test_assert_raise_kind_of
989
+ check_nothing_fails(true) do
990
+ assert_raise_kind_of(SystemCallError) do
991
+ raise Errno::EACCES
992
+ end
993
+ end
994
+
995
+ expected_message = <<-EOM
996
+ <SystemCallError> family exception expected but was
997
+ Class: <RuntimeError>
998
+ Message: <"XXX">
999
+ ---Backtrace---
1000
+ EOM
1001
+ check_fails(/\A#{Regexp.escape(expected_message)}(?m).+\z/) do
1002
+ assert_raise_kind_of(SystemCallError) do
1003
+ raise RuntimeError, "XXX"
1004
+ end
1005
+ end
1006
+ end
1007
+
1008
+ def test_assert_const_defined
1009
+ check_nothing_fails do
1010
+ assert_const_defined(Test, :Unit)
1011
+ end
1012
+
1013
+ check_nothing_fails do
1014
+ assert_const_defined(Test, "Unit")
1015
+ end
1016
+
1017
+ check_fails("<Test>.const_defined?(<:Nonexistence>) expected.") do
1018
+ assert_const_defined(Test, :Nonexistence)
1019
+ end
1020
+ end
1021
+
1022
+ def test_assert_not_const_defined
1023
+ check_nothing_fails do
1024
+ assert_not_const_defined(Test, :Nonexistence)
1025
+ end
1026
+
1027
+ check_fails("!<Test>.const_defined?(<:Unit>) expected.") do
1028
+ assert_not_const_defined(Test, :Unit)
1029
+ end
1030
+
1031
+ check_fails("!<Test>.const_defined?(<\"Unit\">) expected.") do
1032
+ assert_not_const_defined(Test, "Unit")
1033
+ end
1034
+ end
1035
+
1036
+ def test_assert_predicate
1037
+ check_nothing_fails do
1038
+ assert_predicate([], :empty?)
1039
+ end
1040
+
1041
+ check_fails("<[1]>.empty? is true value expected but was\n<false>") do
1042
+ assert_predicate([1], :empty?)
1043
+ end
1044
+
1045
+ check_fails("<[1]>.respond_to?(:nonexistent?) expected\n" +
1046
+ "(Class: <Array>)") do
1047
+ assert_predicate([1], :nonexistent?)
1048
+ end
1049
+ end
1050
+
1051
+ def test_assert_not_predicate
1052
+ check_nothing_fails do
1053
+ assert_not_predicate([1], :empty?)
1054
+ end
1055
+
1056
+ check_fails("<[]>.empty? is false value expected but was\n<true>") do
1057
+ assert_not_predicate([], :empty?)
1058
+ end
1059
+
1060
+ check_fails("<[]>.respond_to?(:nonexistent?) expected\n" +
1061
+ "(Class: <Array>)") do
1062
+ assert_not_predicate([], :nonexistent?)
1063
+ end
1064
+ end
1065
+
1066
+ private
678
1067
  def add_failure(message, location=caller)
679
1068
  unless @catch_assertions
680
1069
  super
@@ -4,9 +4,11 @@ module TestUnitTestUtil
4
4
  assert_equal(expected, faults.collect {|fault| fault.message})
5
5
  end
6
6
 
7
- def run_test(test_case, name)
7
+ def _run_test(test_case, name)
8
8
  result = Test::Unit::TestResult.new
9
- test_case.new(name).run(result) {}
9
+ test = test_case.new(name)
10
+ yield(test) if block_given?
11
+ test.run(result) {}
10
12
  result
11
13
  end
12
14
  end
@@ -4,7 +4,7 @@ class TestUnitUIMediator < Test::Unit::TestCase
4
4
  def test_run_suite_with_interrupt_exception
5
5
  test_case = Class.new(Test::Unit::TestCase) do
6
6
  def test_raise_interrupt
7
- raise Interrupt
7
+ raise Interrupt, "from test"
8
8
  end
9
9
  end
10
10
  mediator = Test::Unit::UI::TestRunnerMediator.new(test_case.suite)