1
# Author:: Masaki Suketa.
2
# Adapted by:: Nathaniel Talbott.
3
# Copyright:: Copyright (c) Masaki Suketa. All rights reserved.
4
# Copyright:: Copyright (c) 2002 Nathaniel Talbott. All rights reserved.
5
# License:: Ruby license.
14
class TestAssert < RUNIT::TestCase
16
@assert = TargetAssert.new
21
sub_test_assert_pass(true)
22
sub_test_assert_pass(TRUE)
23
sub_test_assert_failure(false)
24
sub_test_assert_failure(FALSE)
25
sub_test_assert_failure(nil)
26
sub_test_assert_pass("")
27
sub_test_assert_pass("ok")
28
sub_test_assert_pass(0)
29
sub_test_assert_pass(1)
32
def test_assert_with_2_argument
41
def test_assert_equal_float_0_1
42
assert_proc = Proc.new {
43
@assert.assert_equal_float(1.4, 1.35, 0.1)
45
sub_assert_pass(assert_proc)
48
def test_assert_equal_float_0_5
49
assert_proc = Proc.new {
50
@assert.assert_equal_float(1.4, 1.34, 0.5)
52
sub_assert_pass(assert_proc)
55
def test_assert_equal_float_0
56
assert_proc = Proc.new {
57
@assert.assert_equal_float(1.4, 1.4, 0)
59
sub_assert_pass(assert_proc)
62
def test_assert_equal_float_0_raise
63
assert_proc = Proc.new {
64
@assert.assert_equal_float(1.4, 1.34, 0)
66
sub_assert_raise_fail(assert_proc)
69
def test_assert_equal_float_0_01
70
assert_proc = Proc.new {
71
@assert.assert_equal_float(1.4, 1.35, 0.01)
73
sub_assert_raise_fail(assert_proc)
76
def test_assert_equal_float_0_001
77
assert_proc = Proc.new {
78
@assert.assert_equal_float(Math.sqrt(2), 1.414, 0.001)
80
sub_assert_pass(assert_proc)
83
def test_assert_equal_float_minus_1_0
84
assert_proc = Proc.new {
85
@assert.assert_equal_float(1.4, 1.35, -1.0)
87
sub_assert_raise_fail(assert_proc)
93
@assert.assert_fail("failure")
97
assert_not_nil(except)
100
def sub_test_assert_pass(obj)
101
assert_proc = Proc.new {
104
sub_assert_pass(assert_proc)
107
def sub_test_assert_failure(obj)
108
assert_proc = Proc.new {
111
sub_assert_raise_fail(assert_proc)
114
def test_assert_equal
115
assert_proc = Proc.new {
116
@assert.assert_equal(2, 2)
118
sub_assert_pass(assert_proc)
119
assert_proc = Proc.new {
120
@assert.assert_equal(2, 3)
122
sub_assert_raise_fail(assert_proc)
127
assert_proc = Proc.new {
128
@assert.assert_nil(obj)
130
sub_assert_pass(assert_proc)
132
sub_assert_raise_fail(assert_proc)
135
def test_assert_not_nil
137
assert_proc = Proc.new {
138
@assert.assert_not_nil(obj)
140
sub_assert_pass(assert_proc)
143
sub_assert_raise_fail(assert_proc)
146
def test_assert_operator
147
assert_proc = Proc.new {
148
@assert.assert_operator(2, :<, 3)
150
sub_assert_pass(assert_proc)
151
assert_proc = Proc.new {
152
@assert.assert_operator(2, :>, 3)
154
sub_assert_raise_fail(assert_proc)
157
def test_assert_respond_to
158
sub_test_assert_respond_to('string', 'sub', 'foo')
159
sub_test_assert_respond_to('string', :sub, :foo)
162
def sub_test_assert_respond_to(obj, msg, dummy_msg)
163
assert_proc = Proc.new {
164
@assert.assert_respond_to(msg, obj)
166
sub_assert_pass(assert_proc)
167
assert_proc = Proc.new {
168
@assert.assert_respond_to(dummy_msg, obj)
170
sub_assert_raise_fail(assert_proc)
174
assert_proc = Proc.new {
176
@assert.assert_send ary, :empty?
178
sub_assert_pass(assert_proc)
179
assert_proc = Proc.new {
181
@assert.assert_send ary, :empty?
183
sub_assert_raise_fail(assert_proc)
184
assert_proc = Proc.new {
186
@assert.assert_send str, :sub!, "z", "y"
188
sub_assert_raise_fail(assert_proc)
191
def test_assert_kind_of
192
assert_proc = Proc.new {
193
@assert.assert_kind_of(String, "string")
195
sub_assert_pass(assert_proc)
196
assert_proc = Proc.new {
197
@assert.assert_kind_of(Regexp, "string")
199
sub_assert_raise_fail(assert_proc)
202
def test_assert_instance_of
203
assert_proc = Proc.new {
204
@assert.assert_instance_of(String, "string")
206
sub_assert_pass(assert_proc)
207
assert_proc = Proc.new {
208
@assert.assert_instance_of(Object, "string")
210
sub_assert_raise_fail(assert_proc)
213
def test_assert_match
214
assert_proc = Proc.new{
215
@assert.assert_match('foostring', /foo/)
217
sub_assert_pass(assert_proc)
218
assert_proc = Proc.new {
219
@assert.assert_match('barstring', /foo/)
221
sub_assert_raise_fail(assert_proc)
222
match = @assert.assert_match('foostring', /foo/)
223
assert_instance_of(MatchData, match)
224
assert_equal('foo', match[0])
227
def test_assert_matches
228
assert_proc = Proc.new{
229
@assert.assert_matches('foostring', /foo/)
231
sub_assert_pass(assert_proc)
232
assert_proc = Proc.new {
233
@assert.assert_matches('barstring', /foo/)
235
sub_assert_raise_fail(assert_proc)
238
def test_assert_not_match
239
assert_proc = Proc.new{
240
@assert.assert_not_match('barstring', /foo/)
242
sub_assert_pass(assert_proc)
243
assert_proc = Proc.new {
244
@assert.assert_not_match('foostring', /foo/)
246
sub_assert_raise_fail(assert_proc)
247
assert_proc = Proc.new {
248
@assert.assert_not_match('foobarbaz', /ba.+/)
250
sub_assert_raise_fail(assert_proc)
257
assert_proc = Proc.new {@assert.assert_same(e, a)}
258
sub_assert_pass(assert_proc)
261
sub_assert_raise_fail(assert_proc)
264
def test_assert_exception
265
assert_proc = Proc.new{
266
@assert.assert_exception(IOError) {
270
sub_assert_pass(assert_proc)
272
assert_proc = Proc.new{
273
@assert.assert_exception(StandardError) {
277
sub_assert_raise_fail(assert_proc)
279
assert_proc = Proc.new{
280
@assert.assert_exception(IOError, "Exception") {
284
sub_assert_raise_fail(assert_proc)
286
assert_proc = Proc.new {
287
@assert.assert_exception(StandardError) {
288
"No Exception raised in this block"
291
sub_assert_raise_fail(assert_proc)
293
assert_proc = Proc.new {
294
@assert.assert_exception(StandardError) {
298
sub_assert_raise_fail(assert_proc)
300
t = @assert.assert_exception(IOError) {
303
assert_instance_of(IOError, t)
304
t = @assert.assert_exception(NameError) {
307
assert_instance_of(NameError, t)
308
t = @assert.assert_exception(SystemExit) {
311
assert_instance_of(SystemExit, t)
314
def test_assert_no_exception
315
assert_proc = Proc.new{
316
@assert.assert_no_exception(IOError, ArgumentError) {
317
"No Exception raised in this block"
320
sub_assert_pass(assert_proc)
322
assert_proc = Proc.new{
323
@assert.assert_no_exception(IOError, ArgumentError) {
324
raise StandardError, "Standard Error raised"
327
sub_assert_raise_error(assert_proc)
329
assert_proc = Proc.new{
330
@assert.assert_no_exception(IOError, ArgumentError) {
331
raise ArgumentError, "Bad Argument"
334
sub_assert_raise_fail(assert_proc)
336
assert_proc = Proc.new{
337
@assert.assert_no_exception {
338
raise ArgumentError, "Bad Argument"
341
sub_assert_raise_fail(assert_proc)
343
assert_proc = Proc.new{
344
@assert.assert_no_exception {
345
raise NameError, "Bad Name"
348
sub_assert_raise_fail(assert_proc)
349
assert_proc = Proc.new {
350
@assert.assert_no_exception {
354
sub_assert_raise_fail(assert_proc)
357
def sub_assert_pass(p)
367
assert(flag, err.to_s)
370
def sub_assert_raise_fail(p)
376
rescue RUNIT::AssertionFailedError
383
assert(flag, err.to_s)
386
def sub_assert_raise_error(p)
392
rescue RUNIT::AssertionFailedError
399
assert(flag, err.to_s)