assay-minitest 0.1.0

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.
@@ -0,0 +1,474 @@
1
+ module Assay; end
2
+ module Assay::MiniTest
3
+
4
+ # This module provides extensions for MiniTest compatiblity.
5
+ #
6
+ # The set is not fully compataible, but provides most of MiniTest
7
+ # extensions.
8
+ #
9
+ # Compatability will improve with time.
10
+ #
11
+ module Extensions
12
+
13
+ # Passes it operator with optional argument returns successfully.
14
+ #
15
+ # 10.must_be :>, 4
16
+ # 10.must_be :even?
17
+ #
18
+ # @raise ExecutionAssay
19
+ #
20
+ def must_be(operator, argument=nil, msg=nil)
21
+ if argument
22
+ ExecutionAssay.assert!(:message=>msg) do
23
+ __send__(operator, argument)
24
+ end
25
+ else
26
+ ExecutionAssay.assert!(:message=>msg) do
27
+ __send__(operator)
28
+ end
29
+ end
30
+ end
31
+
32
+ #
33
+ # Passes it operator with optional argument returns negatively.
34
+ #
35
+ # 10.wont_be :>, 20
36
+ # 10.wont_be :odd?
37
+ #
38
+ # @raise ExecutionAssay
39
+ #
40
+ def wont_be(operator, argument=nil, msg=nil)
41
+ if argument
42
+ ExecutionAssay.refute!(:message=>msg) do
43
+ self.__send__(operator, argument)
44
+ end
45
+ else
46
+ ExecutionAssay.refute!(:message=>msg) do
47
+ self.__send__(operator)
48
+ end
49
+ end
50
+ end
51
+
52
+ #
53
+ # Passes if object is like criterion.
54
+ #
55
+ # object.must_be_like(criterion)
56
+ #
57
+ # @raise LikeAssay
58
+ #
59
+ def must_be_like(exp, msg=nil)
60
+ LikeAssay.assert!(self, exp, :message=>msg, :backtrace=>caller)
61
+ end
62
+
63
+ #
64
+ # Passes if object is not like criterion using {CompareAssay}.
65
+ #
66
+ # object.wont_be_like(criterion)
67
+ #
68
+ # @raise LikeAssay
69
+ #
70
+ def wont_be_like(exp, msg=nil)
71
+ LikeAssay.refute!(self, exp, :message=>msg, :backtrace=>caller)
72
+ end
73
+
74
+ #
75
+ # Passes if expected and actual are equal within delta tolerance.
76
+ #
77
+ # assert_in_delta 0.05, (50000.0 / 10**6), 0.00001
78
+ #
79
+ # @raise WithinAssay
80
+ #
81
+ def must_be_within_delta(exp, delta, msg=nil)
82
+ WithinAssay.assert!(self, exp, delta, :message=>msg, :backtrace=>caller)
83
+ end
84
+
85
+ #
86
+ # Passes if expected and actual are equal not within delta tolerance.
87
+ #
88
+ # assert_not_in_delta 0.05, (50000.0 / 10**6), 0.00001
89
+ #
90
+ # @raise WithinAssay
91
+ #
92
+ def wont_be_within_delta(exp, delta, msg=nil)
93
+ WithinAssay.refute!(self, exp, delta, :message=>msg, :backtrace=>caller)
94
+ end
95
+
96
+ #
97
+ # Passes if object is empty.
98
+ #
99
+ # object.must_be_empty
100
+ #
101
+ # @raise EmptyAssay
102
+ #
103
+ def must_be_empty(msg=nil)
104
+ EmptyAssay.assert!(self, :message=>msg, :backtrace=>caller)
105
+ end
106
+
107
+ #
108
+ # Passes if object is not empty.
109
+ #
110
+ # object.wont_be_empty
111
+ #
112
+ # @raise EmptyAssay
113
+ #
114
+ def wont_be_empty(msg=nil)
115
+ EmptyAssay.refute!(self, :message=>msg, :backtrace=>caller)
116
+ end
117
+
118
+ #
119
+ # Passes if expected == +actual.
120
+ #
121
+ # Note that the ordering of arguments is important,
122
+ # since a helpful error message is generated when this
123
+ # one fails that tells you the values of expected and actual.
124
+ #
125
+ # 'MY STRING'.must_equal('my string'.upcase)
126
+ #
127
+ # @raise EqualAssay
128
+ #
129
+ def must_equal(exp, msg=nil)
130
+ EqualAssay.assert!(self, exp, :message=>msg, :backtrace=>caller)
131
+ end
132
+
133
+ #
134
+ # Passes if expected != actual
135
+ #
136
+ # 'some string'.wont_equal('some other string')
137
+ #
138
+ # @raise EqualAssay
139
+ #
140
+ def wont_equal(exp, msg=nil)
141
+ EqualAssay.refute!(self, exp, :message=>msg, :backtrace=>caller)
142
+ end
143
+
144
+ #
145
+ # Passes if method call returns successfully.
146
+ #
147
+ # "string".must_send([:upcase], "Doesn't upcase!")
148
+ #
149
+ # @raise ExecutionAssay
150
+ #
151
+ def must_send(send_array, msg=nil)
152
+ ExecutionAssay.assert!(:message=>msg, :backtrace=>caller) do
153
+ self.__send__(*send_array)
154
+ end
155
+ end
156
+
157
+ #
158
+ # Passes if method call does not return successfully.
159
+ #
160
+ # "string".wont_send([:upcase], "Damn you, Uppercase!")
161
+ #
162
+ # @raise ExecutionAssay
163
+ #
164
+ def wont_send(send_array, msg=nil)
165
+ ExecutionAssay.refute!(:message=>msg, :backtrace=>caller) do
166
+ self.__send__(*send_array)
167
+ end
168
+ end
169
+
170
+ #
171
+ # Passes if the block yields successfully.
172
+ #
173
+ # 5.must_satisfy{ |x| x > 3 }
174
+ #
175
+ # @raise ExecutionAssay
176
+ #
177
+ def must_satisfy(msg=nil, &block)
178
+ ExecutionAssay.assert!(self, :message=>msg, :backtrace=>caller, &block)
179
+ end
180
+
181
+ #
182
+ # Passes if the block does not yield successfully.
183
+ #
184
+ # 5.wont_satisfy{ |x| x < 3 }
185
+ #
186
+ # @raise ExecutionAssay
187
+ #
188
+ def wont_satisfy(msg=nil, &block)
189
+ ExecutionAssay.refute!(self, :message=>msg, :backtrace=>caller, &block)
190
+ end
191
+
192
+ #
193
+ # Passed if object is +false+.
194
+ #
195
+ # @raise FalseAssay
196
+ #
197
+ def must_be_false(msg=nil)
198
+ FalseAssay.assert!(self, :message=>msg, :backtrace=>caller)
199
+ end
200
+
201
+ #
202
+ # Passed if object is not +false+.
203
+ #
204
+ # assert_not_false(false)
205
+ #
206
+ # @raise FalseAssay
207
+ #
208
+ def wont_be_false(msg=nil)
209
+ FalseAssay.refute!(self, :message=>msg, :backtrace=>caller)
210
+ end
211
+
212
+ #
213
+ # Passes if `self` is the same exact object as expected.
214
+ #
215
+ # object.must_be_same_as(object)
216
+ #
217
+ # @raise IdentityAssay
218
+ #
219
+ def must_be_same_as(exp, msg=nil)
220
+ IdentityAssay.assert!(self, exp, :message=>msg, :backtrace=>caller)
221
+ end
222
+
223
+ #
224
+ # Passes if actual is not the same exact object as expected.
225
+ #
226
+ # object.wont_be_same_as(other)
227
+ #
228
+ # @raise IdentityAssay
229
+ #
230
+ def wont_be_same_as(exp, msg=nil)
231
+ IdentityAssay.refute!(self, exp, :message=>msg, :backtrace=>caller)
232
+ end
233
+
234
+ #
235
+ # Passes if object is an instance of class.
236
+ #
237
+ # 'foo'.must_be_instance_of(String)
238
+ #
239
+ # @raise InstanceAssay
240
+ #
241
+ def must_be_instance_of(cls, msg=nil)
242
+ InstanceAssay.assert!(self, cls, :message=>msg, :backtrace=>caller)
243
+ end
244
+
245
+ #
246
+ # Passes if object is not an instance of class.
247
+ #
248
+ # 'foo'.wont_be_instance_of(Integer)
249
+ #
250
+ # @raise InstanceAssay
251
+ #
252
+ def wont_be_instance_of(cls, msg=nil)
253
+ InstanceAssay.refute!(self, cls, :message=>msg, :backtrace=>caller)
254
+ end
255
+
256
+ #
257
+ # Passes if object is a kind of class.
258
+ #
259
+ # assert_kind_of(Object, 'foo')
260
+ #
261
+ # @raise KindAssay
262
+ #
263
+ def must_be_kind_of(cls, msg=nil)
264
+ KindAssay.assert!(self, cls, :message=>msg, :backtrace=>caller)
265
+ end
266
+
267
+ #
268
+ # Passes if object is not a kind of class.
269
+ #
270
+ # assert_not_kind_of(Object, 'foo')
271
+ #
272
+ # @raise KindAssay
273
+ #
274
+ def wont_be_kind_of(cls, msg=nil)
275
+ KindAssay.refute!(self, cls, :message=>msg, :backtrace=>caller)
276
+ end
277
+
278
+ #
279
+ # Passes if object matches pattern using `#=~` method.
280
+ #
281
+ # 'one 2 three'.must_match(/two/)
282
+ #
283
+ # @raise MatchAssay
284
+ #
285
+ def must_match(exp, msg=nil)
286
+ MatchAssay.assert!(self, exp, :message=>msg, :backtrace=>caller)
287
+ end
288
+
289
+ #
290
+ # Passes if object does not match pattern using `#=~` method.
291
+ #
292
+ # 'one 2 three'.wont_match(/two/)
293
+ #
294
+ # @raise MatchAssay
295
+ #
296
+ def wont_match(exp, msg=nil)
297
+ MatchAssay.refute!(self, exp, :message=>msg, :backtrace=>caller)
298
+ end
299
+
300
+ #
301
+ # Passed if object is +nil+.
302
+ #
303
+ # @raise NilAssay
304
+ #
305
+ def must_be_nil(msg=nil)
306
+ NilAssay.assert!(self, :message=>msg, :backtrace=>caller)
307
+ end
308
+
309
+ #
310
+ # Passed if object is not +nil+.
311
+ #
312
+ # assert_not_nil(true)
313
+ #
314
+ # @raise NilAssay
315
+ #
316
+ def wont_be_nil(msg=nil)
317
+ NilAssay.refute!(self, :message=>msg, :backtrace=>caller)
318
+ end
319
+
320
+ #
321
+ # Passes if the procedure raises a given exception.
322
+ #
323
+ # lambda{ raise 'Boom!!!' }.must_raise(RuntimeError)
324
+ #
325
+ # @raise RaiseAssay
326
+ #
327
+ def must_raise(exp, msg=nil, call=nil)
328
+ RaiseAssay.assert!(exp, msg=nil, call=nil, &self)
329
+ end
330
+
331
+ #
332
+ # Passes if the procedure *does not* raise a given exceptions.
333
+ #
334
+ # lambda{ raise 'Boom!!!' }.wont_raise(IOError)
335
+ #
336
+ # @raise RaiseAssay
337
+ #
338
+ def wont_raise(exp, msg=nil, call=nil)
339
+ RaiseAssay.refute!(exp, msg, call, &self)
340
+ end
341
+
342
+ #
343
+ # Passes if +object+ respond_to? +methods+.
344
+ #
345
+ # 'bugbear'.must_respond_to(:slice)
346
+ #
347
+ # @raise RespondAssay
348
+ #
349
+ def must_respond_to(method, msg=nil)
350
+ RespondAssay.assert!(self, method, :message=>msg, :backtrace=>caller)
351
+ end
352
+
353
+ #
354
+ # Passes if +object+ does not respond_to? +methods+.
355
+ #
356
+ # 'bugbear'.wont_respond_to(:slice)
357
+ #
358
+ # @raise RespondAssay
359
+ #
360
+ def wont_respond_to(method, msg=nil)
361
+ RespondAssay.refute!(self, method, :message=>msg, :backtrace=>caller)
362
+ end
363
+
364
+ #
365
+ # Passes if `criterion.eql?(actual)`.
366
+ #
367
+ # Note that the ordering of arguments is important,
368
+ # since a helpful error message is generated when this
369
+ # one fails that tells you the values of expected and actual.
370
+ #
371
+ # 'MY STRING'.must_be_equivalent_to('my string'.upcase)
372
+ #
373
+ # @raise EqualityAssay
374
+ #
375
+ def must_be_equivalent_to(criterion, msg=nil)
376
+ EqualityAssay.assert!(self, criterion, :message=>msg, :backtrace=>caller)
377
+ end
378
+
379
+ alias_method :must_eql, :must_be_equivalent_to
380
+
381
+ #
382
+ # Passes if NOT `criterion.eql?(actual)`.
383
+ #
384
+ # 'MY STRING'.wont_be_equivalent_to('some other string')
385
+ #
386
+ # @raise EqualityAssay
387
+ #
388
+ def wont_be_equivalent_to(criterion, msg=nil)
389
+ EqualityAssay.refute!(self, criterion, :message=>msg, :backtrace=>caller)
390
+ end
391
+
392
+ alias_method :wont_eql, :wont_be_equivalent_to
393
+
394
+ #
395
+ # Passes if the block throws expected_symbol
396
+ #
397
+ # assert_throws :done do
398
+ # throw :done
399
+ # end
400
+ #
401
+ # @raise ThrowAssay
402
+ #
403
+ def must_throw(sym, msg=nil)
404
+ ThrowAssay.assert!(sym, :message=>msg, :backtrace=>caller, &self)
405
+ end
406
+
407
+ #
408
+ # Passes if the block throws expected_symbol
409
+ #
410
+ # refute_throws :done do
411
+ # throw :chimp
412
+ # end
413
+ #
414
+ # @raise ThrowAssay
415
+ #
416
+ def wont_throw(sym, msg=nil)
417
+ ThrowAssay.refute!(sym, :message=>msg, :backtrace=>caller, &self)
418
+ end
419
+
420
+ #
421
+ # Passed if object is +true+.
422
+ #
423
+ # object.must_be_true
424
+ #
425
+ # @raise TrueAssay
426
+ #
427
+ def must_be_true(msg=nil)
428
+ TrueAssay.assert!(self, :message=>msg, :backtrace=>caller)
429
+ end
430
+
431
+ #
432
+ # Passed if object is not +true+.
433
+ #
434
+ # object.wont_be_true
435
+ #
436
+ # @raise TrueAssay
437
+ #
438
+ def wont_be_true(msg=nil)
439
+ TrueAssay.refute!(self, :message=>msg, :backtrace=>caller)
440
+ end
441
+
442
+ #
443
+ # Passes if `self.include?(object)`.
444
+ #
445
+ # @raise IncludeAssay
446
+ #
447
+ def must_include(object, msg=nil)
448
+ IncludeAssay.assert!(self, object, :message=>msg, :backtrace=>caller)
449
+ end
450
+
451
+ #
452
+ # Passes if `self.include?(object)`.
453
+ #
454
+ # @raise IncludeAssay
455
+ #
456
+ def wont_include(object, msg=nil)
457
+ IncludeAssay.refute!(self, object, :message=>msg, :backtrace=>caller)
458
+ end
459
+
460
+ #
461
+ # Passes if output matches +pattern+.
462
+ #
463
+ # @example
464
+ # proc{ puts "fun!" }.must_output('fun!')
465
+ #
466
+ # @raise OutputAssay
467
+ #
468
+ def must_output(pattern, msg=nil)
469
+ OutputAssay.assert!(pattern, :message=>msg, :backtrace=>caller, &self)
470
+ end
471
+
472
+ end
473
+
474
+ end