jnunemaker-matchy 0.4.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.
- data/History.txt +4 -0
- data/License.txt +20 -0
- data/Manifest.txt +36 -0
- data/PostInstall.txt +7 -0
- data/README.rdoc +162 -0
- data/Rakefile +4 -0
- data/config/hoe.rb +73 -0
- data/config/requirements.rb +15 -0
- data/countloc.rb +67 -0
- data/lib/matchy.rb +19 -0
- data/lib/matchy/built_in/change_expectations.rb +31 -0
- data/lib/matchy/built_in/enumerable_expectations.rb +41 -0
- data/lib/matchy/built_in/error_expectations.rb +66 -0
- data/lib/matchy/built_in/operator_expectations.rb +42 -0
- data/lib/matchy/built_in/truth_expectations.rb +146 -0
- data/lib/matchy/custom_matcher.rb +10 -0
- data/lib/matchy/expectation_builder.rb +9 -0
- data/lib/matchy/matcher_builder.rb +51 -0
- data/lib/matchy/modals.rb +34 -0
- data/lib/matchy/version.rb +9 -0
- data/matchy.gemspec +26 -0
- data/setup.rb +1585 -0
- data/tasks/deployment.rake +34 -0
- data/tasks/environment.rake +7 -0
- data/test/all.rb +7 -0
- data/test/ruby1.9.compatibility_tests.rb +541 -0
- data/test/test_change_expectation.rb +63 -0
- data/test/test_custom_matcher.rb +139 -0
- data/test/test_enumerable_expectations.rb +91 -0
- data/test/test_error_expectations.rb +144 -0
- data/test/test_expectation_builder.rb +28 -0
- data/test/test_helper.rb +1 -0
- data/test/test_matcher_builder.rb +72 -0
- data/test/test_modals.rb +39 -0
- data/test/test_operator_expectations.rb +157 -0
- data/test/test_truth_expectations.rb +373 -0
- metadata +109 -0
data/test/test_helper.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/../lib/matchy.rb'
|
@@ -0,0 +1,72 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestMatcherBuilder < Test::Unit::TestCase
|
4
|
+
include Matchy::MatcherBuilder
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@obj = Object.new
|
8
|
+
end
|
9
|
+
|
10
|
+
def test_matcher_responds_to_matches
|
11
|
+
block = lambda {|given, matcher, args| true}
|
12
|
+
build_matcher(:m, &block).should respond_to(:matches?)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_fail_positive
|
16
|
+
block = lambda {|given, matcher, args| false}
|
17
|
+
lambda {@obj.should build_matcher(:m, &block)}.should raise_error
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_pass_positive
|
21
|
+
block = lambda {|given, matcher, args| true}
|
22
|
+
@obj.should build_matcher(:m, &block)
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_fail_negative
|
26
|
+
block = lambda {|given, matcher, args| true}
|
27
|
+
lambda {@obj.should_not build_matcher(:m, &block)}.should raise_error
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_pass_negative
|
31
|
+
block = lambda {|given, matcher, args| false}
|
32
|
+
@obj.should_not build_matcher(:m, &block)
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_takes_arguments
|
36
|
+
block = lambda {|given, matcher, args| $args = args; true}
|
37
|
+
@obj.should build_matcher(:m,[1,2,3], &block)
|
38
|
+
$args.should eql([1,2,3])
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_received_method
|
42
|
+
block = lambda {|given, matcher, args| $chained_messages = matcher.chained_messages; true}
|
43
|
+
@obj.should build_matcher(:m, &block).method1
|
44
|
+
$chained_messages[0].name.should eql(:method1)
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_received_method_takes_args
|
48
|
+
block = lambda {|given, matcher, args| $chained_messages = matcher.chained_messages; true}
|
49
|
+
@obj.should build_matcher(:m, &block).method1(1,2,3)
|
50
|
+
$chained_messages[0].args.should eql([1,2,3])
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_received_method_takes_block
|
54
|
+
block = lambda {|given, matcher, args| $chained_messages = matcher.chained_messages; true}
|
55
|
+
@obj.should build_matcher(:m, &block).method1 { "Hello, World!"}
|
56
|
+
$chained_messages[0].block.call.should eql("Hello, World!")
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_received_method_chained
|
60
|
+
block = lambda {|given, matcher, args| $chained_messages = matcher.chained_messages; true}
|
61
|
+
@obj.should build_matcher(:m, &block).method1(1,2,3) { "Hello, World!"}.
|
62
|
+
method2(4,5,6) { "Hello chained messages" }
|
63
|
+
|
64
|
+
$chained_messages[0].name.should eql(:method1)
|
65
|
+
$chained_messages[1].name.should eql(:method2)
|
66
|
+
$chained_messages[0].args.should eql([1,2,3])
|
67
|
+
$chained_messages[1].args.should eql([4,5,6])
|
68
|
+
$chained_messages[0].block.call.should eql("Hello, World!")
|
69
|
+
$chained_messages[1].block.call.should eql("Hello chained messages")
|
70
|
+
end
|
71
|
+
|
72
|
+
end
|
data/test/test_modals.rb
ADDED
@@ -0,0 +1,39 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestModals < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
@expectation = build_matcher() {|r,m,a| true}
|
6
|
+
@bad_expectation = build_matcher() {|r,m,a| false}
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_should
|
10
|
+
3.should(@expectation)
|
11
|
+
end
|
12
|
+
|
13
|
+
def test_will
|
14
|
+
3.will(@expectation)
|
15
|
+
end
|
16
|
+
|
17
|
+
def test_should_not
|
18
|
+
3.should_not(@bad_expectation)
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_will_not
|
22
|
+
3.will_not(@bad_expectation)
|
23
|
+
end
|
24
|
+
|
25
|
+
def test_wont
|
26
|
+
3.wont(@bad_expectation)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_should_operator_expectation_returned
|
30
|
+
obj = 3.should
|
31
|
+
assert_equal Matchy::Expectations::OperatorExpectation, obj.class
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
def test_should_not_operator_expectation_returned
|
36
|
+
obj = 3.should_not
|
37
|
+
assert_equal Matchy::Expectations::OperatorExpectation, obj.class
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,157 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class TestOperatorExpectations < Test::Unit::TestCase
|
4
|
+
# EQUALS (==)
|
5
|
+
def test_equals
|
6
|
+
3.should == 3
|
7
|
+
end
|
8
|
+
|
9
|
+
def test_equals_fails
|
10
|
+
lambda {
|
11
|
+
3.should == 5
|
12
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_negative_equals
|
16
|
+
3.should_not == 4
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_negative_equals_fails
|
20
|
+
lambda {
|
21
|
+
3.should_not == 3
|
22
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
23
|
+
end
|
24
|
+
|
25
|
+
# LESS THAN (<)
|
26
|
+
def test_less_than
|
27
|
+
3.should < 5
|
28
|
+
end
|
29
|
+
|
30
|
+
def test_less_than_fails
|
31
|
+
lambda {
|
32
|
+
4.should < 3
|
33
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
34
|
+
end
|
35
|
+
|
36
|
+
def test_less_than_equals
|
37
|
+
3.should_not < 2
|
38
|
+
end
|
39
|
+
|
40
|
+
def test_negative_less_than_fails
|
41
|
+
lambda {
|
42
|
+
4.should_not < 5
|
43
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
44
|
+
end
|
45
|
+
|
46
|
+
# GREATER THAN (>)
|
47
|
+
def test_greater_than
|
48
|
+
3.should > 2
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_greater_than_fails
|
52
|
+
lambda {
|
53
|
+
4.should > 5
|
54
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
55
|
+
end
|
56
|
+
|
57
|
+
def test_greater_than_equals
|
58
|
+
3.should_not > 5
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_negative_greater_than_fails
|
62
|
+
lambda {
|
63
|
+
4.should_not > 3
|
64
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
65
|
+
end
|
66
|
+
|
67
|
+
# LESS THAN EQUAL (<=)
|
68
|
+
def test_less_than_equal
|
69
|
+
3.should <= 5
|
70
|
+
end
|
71
|
+
|
72
|
+
def test_less_than_equal_equal
|
73
|
+
3.should <= 3
|
74
|
+
end
|
75
|
+
|
76
|
+
def test_less_than_equal_fails
|
77
|
+
lambda {
|
78
|
+
4.should <= 3
|
79
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_negative_less_than_equal
|
83
|
+
3.should_not <= 2
|
84
|
+
end
|
85
|
+
|
86
|
+
def test_negative_less_than_equal_fails
|
87
|
+
lambda {
|
88
|
+
4.should_not <= 5
|
89
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
90
|
+
end
|
91
|
+
|
92
|
+
# GREATER THAN EQUALS (>=)
|
93
|
+
def test_greater_than_equal
|
94
|
+
3.should >= 2
|
95
|
+
end
|
96
|
+
|
97
|
+
def test_greater_than_equal_equals
|
98
|
+
3.should >= 3
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_greater_than_equal_fails
|
102
|
+
lambda {
|
103
|
+
4.should >= 5
|
104
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
105
|
+
end
|
106
|
+
|
107
|
+
def test_negative_greater_than_equal_equals
|
108
|
+
3.should_not >= 5
|
109
|
+
end
|
110
|
+
|
111
|
+
def test_negative_greater_than_equal_fails
|
112
|
+
lambda {
|
113
|
+
4.should_not >= 3
|
114
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
115
|
+
end
|
116
|
+
|
117
|
+
# MATCHES (=~)
|
118
|
+
def test_matches
|
119
|
+
"hey world".should =~ /world/
|
120
|
+
end
|
121
|
+
|
122
|
+
def test_matches_fails
|
123
|
+
lambda {
|
124
|
+
"d00d ur 1337".should =~ /world/
|
125
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
126
|
+
end
|
127
|
+
|
128
|
+
def test_negative_matches
|
129
|
+
"1337@age".should_not =~ /434/
|
130
|
+
end
|
131
|
+
|
132
|
+
def test_negative_matches_fails
|
133
|
+
lambda {
|
134
|
+
"it's a freak out!".should_not =~ /freak/
|
135
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
136
|
+
end
|
137
|
+
|
138
|
+
def test_fail_message
|
139
|
+
obj = Matchy::Expectations::OperatorExpectation.new(3, true)
|
140
|
+
|
141
|
+
def obj.flunk(msg)
|
142
|
+
msg
|
143
|
+
end
|
144
|
+
|
145
|
+
(obj == 4).should == "Expected 3 to == 4."
|
146
|
+
end
|
147
|
+
|
148
|
+
def test_negative_fail_message
|
149
|
+
obj = Matchy::Expectations::OperatorExpectation.new(3, false)
|
150
|
+
|
151
|
+
def obj.flunk(msg)
|
152
|
+
msg
|
153
|
+
end
|
154
|
+
|
155
|
+
(obj == 3).should == "Expected 3 to not == 3."
|
156
|
+
end
|
157
|
+
end
|
@@ -0,0 +1,373 @@
|
|
1
|
+
require File.dirname(__FILE__) + '/test_helper.rb'
|
2
|
+
|
3
|
+
class Exister
|
4
|
+
def initialize(what)
|
5
|
+
@what = what
|
6
|
+
end
|
7
|
+
|
8
|
+
def exist?
|
9
|
+
@what
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class TestTruthExpectations < Test::Unit::TestCase
|
14
|
+
|
15
|
+
def setup
|
16
|
+
@obj = Object.new
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_equal
|
20
|
+
3.should equal(3)
|
21
|
+
end
|
22
|
+
|
23
|
+
def test_negative_equal
|
24
|
+
instance = String.new
|
25
|
+
|
26
|
+
instance.should_not equal(String.new)
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_equal_fail
|
30
|
+
lambda {
|
31
|
+
3.should equal(4)
|
32
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
33
|
+
end
|
34
|
+
|
35
|
+
def test_negative_equal_fail
|
36
|
+
lambda {
|
37
|
+
3.should_not equal(3)
|
38
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_eql
|
42
|
+
3.should eql(3)
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_eql_array
|
46
|
+
[1,2,3].should eql([1,2,3])
|
47
|
+
end
|
48
|
+
|
49
|
+
def test_negative_eql
|
50
|
+
3.should_not eql(9)
|
51
|
+
end
|
52
|
+
|
53
|
+
def test_eql_fail
|
54
|
+
lambda {
|
55
|
+
3.should eql(13)
|
56
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
57
|
+
end
|
58
|
+
|
59
|
+
def test_negative_eql_fail
|
60
|
+
lambda {
|
61
|
+
3.should_not eql(3)
|
62
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_exists
|
66
|
+
thing = Exister.new(true)
|
67
|
+
thing.should exist
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_negative_exists
|
71
|
+
thing = Exister.new(false)
|
72
|
+
thing.should_not exist
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_exists_fail
|
76
|
+
lambda {
|
77
|
+
thing = Exister.new(false)
|
78
|
+
thing.should exist
|
79
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
80
|
+
end
|
81
|
+
|
82
|
+
def test_negative_exists_fail
|
83
|
+
lambda {
|
84
|
+
thing = Exister.new(true)
|
85
|
+
thing.should_not exist
|
86
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_be
|
90
|
+
true.should be(true)
|
91
|
+
end
|
92
|
+
|
93
|
+
def test_be_array
|
94
|
+
[1,2,3].should be([1,2,3])
|
95
|
+
end
|
96
|
+
|
97
|
+
def test_negative_be
|
98
|
+
true.should_not be(false)
|
99
|
+
end
|
100
|
+
|
101
|
+
def test_be_fail
|
102
|
+
lambda {
|
103
|
+
true.should be(false)
|
104
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
105
|
+
end
|
106
|
+
|
107
|
+
def test_be_close
|
108
|
+
(5.0 - 2.0).should be_close(3.0)
|
109
|
+
end
|
110
|
+
|
111
|
+
def test_be_close_with_delta
|
112
|
+
(5.0 - 2.0).should be_close(3.0, 0.2)
|
113
|
+
end
|
114
|
+
|
115
|
+
def test_be_close_fail
|
116
|
+
lambda {
|
117
|
+
(19.0 - 13.0).should be_close(33.04)
|
118
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
119
|
+
end
|
120
|
+
|
121
|
+
def test_be_close_with_delta_fail
|
122
|
+
lambda {
|
123
|
+
(19.0 - 13.0).should be_close(6.0, 0.0)
|
124
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
125
|
+
end
|
126
|
+
|
127
|
+
def test_satisfy
|
128
|
+
13.should satisfy(lambda {|i| i < 15})
|
129
|
+
end
|
130
|
+
|
131
|
+
def test_negative_satisfy
|
132
|
+
13.should_not satisfy(lambda {|i| i < 10})
|
133
|
+
end
|
134
|
+
|
135
|
+
def test_satisfy_fail
|
136
|
+
lambda {
|
137
|
+
13.should satisfy(lambda {|i| i > 15})
|
138
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
139
|
+
end
|
140
|
+
|
141
|
+
def test_negative_satisfy_fail
|
142
|
+
lambda {
|
143
|
+
13.should_not satisfy(lambda {|i| i < 15})
|
144
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
145
|
+
end
|
146
|
+
|
147
|
+
def test_equal_fail_message
|
148
|
+
obj = equal(4)
|
149
|
+
obj.matches?(5)
|
150
|
+
|
151
|
+
obj.failure_message.should be("Expected 5 to return true for equal?, with '4'.")
|
152
|
+
end
|
153
|
+
|
154
|
+
def test_equal_negative_fail_message
|
155
|
+
obj = equal(5)
|
156
|
+
obj.matches?(5)
|
157
|
+
|
158
|
+
obj.negative_failure_message.should be("Expected 5 to not return true for equal?, with '5'.")
|
159
|
+
end
|
160
|
+
|
161
|
+
def test_eql_fail_message
|
162
|
+
obj = eql(4)
|
163
|
+
obj.matches?(5)
|
164
|
+
|
165
|
+
obj.failure_message.should be("Expected 5 to return true for eql?, with '4'.")
|
166
|
+
end
|
167
|
+
|
168
|
+
def test_eql_negative_fail_message_for_eql
|
169
|
+
obj = eql(5)
|
170
|
+
obj.matches?(5)
|
171
|
+
|
172
|
+
obj.negative_failure_message.should be("Expected 5 to not return true for eql?, with '5'.")
|
173
|
+
end
|
174
|
+
|
175
|
+
def test_exist_fail_message
|
176
|
+
obj = exist
|
177
|
+
obj.matches?(Exister.new(false))
|
178
|
+
|
179
|
+
obj.failure_message.should =~ /Expected #<(.*)> to return true for exist?./
|
180
|
+
end
|
181
|
+
|
182
|
+
def test_exist_negative_fail_message
|
183
|
+
obj = exist
|
184
|
+
obj.matches?(Exister.new(true))
|
185
|
+
|
186
|
+
obj.negative_failure_message.should =~ /Expected #<(.*)> to not return true for exist?./
|
187
|
+
end
|
188
|
+
|
189
|
+
def test_be_close_fail_message
|
190
|
+
obj = be_close(3.0)
|
191
|
+
obj.matches?(6.0)
|
192
|
+
|
193
|
+
obj.failure_message.should be("Expected 6.0 to be close to 3.0 (delta: 0.3).")
|
194
|
+
end
|
195
|
+
|
196
|
+
def test_be_close_negative_fail_message
|
197
|
+
obj = be_close(5.0)
|
198
|
+
obj.matches?(5.0)
|
199
|
+
|
200
|
+
obj.negative_failure_message.should be("Expected 5.0 to not be close to 5.0 (delta: 0.3).")
|
201
|
+
end
|
202
|
+
|
203
|
+
def test_be_fail_message
|
204
|
+
obj = be(4)
|
205
|
+
obj.matches?(5)
|
206
|
+
|
207
|
+
obj.failure_message.should be("Expected 5 to be 4.")
|
208
|
+
end
|
209
|
+
|
210
|
+
def test_be_negative_fail_message
|
211
|
+
obj = be(5)
|
212
|
+
obj.matches?(5)
|
213
|
+
|
214
|
+
obj.negative_failure_message.should be("Expected 5 to not be 5.")
|
215
|
+
end
|
216
|
+
|
217
|
+
def test_satisfy_fail_message
|
218
|
+
obj = satisfy(lambda {|x| x == 4})
|
219
|
+
obj.matches?(6)
|
220
|
+
|
221
|
+
obj.failure_message.should be("Expected 6 to satisfy given block.")
|
222
|
+
end
|
223
|
+
|
224
|
+
def test_eql_negative_fail_message_for_matches
|
225
|
+
obj = satisfy(lambda {|x| x == 4})
|
226
|
+
obj.matches?(4)
|
227
|
+
|
228
|
+
obj.negative_failure_message.should be("Expected 4 to not satisfy given block.")
|
229
|
+
end
|
230
|
+
|
231
|
+
def test_kind_of
|
232
|
+
3.should be_kind_of(Fixnum)
|
233
|
+
end
|
234
|
+
|
235
|
+
def test_kind_of_fail
|
236
|
+
lambda {
|
237
|
+
3.should be_kind_of(Hash)
|
238
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
239
|
+
end
|
240
|
+
|
241
|
+
def test_negative_kind_of
|
242
|
+
3.should_not be_kind_of(Hash)
|
243
|
+
end
|
244
|
+
|
245
|
+
def test_negative_kind_of_fail
|
246
|
+
lambda {
|
247
|
+
3.should_not be_kind_of(Fixnum)
|
248
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
249
|
+
end
|
250
|
+
|
251
|
+
def test_respond_to
|
252
|
+
"foo".should respond_to(:length)
|
253
|
+
end
|
254
|
+
|
255
|
+
def test_respond_to_fail
|
256
|
+
lambda {
|
257
|
+
"foo".should respond_to(:nonexistant_method)
|
258
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
259
|
+
end
|
260
|
+
|
261
|
+
def test_negative_respond_to
|
262
|
+
"foo".should_not respond_to(:nonexistant_method)
|
263
|
+
end
|
264
|
+
|
265
|
+
def test_negative_respond_to_fail
|
266
|
+
lambda {
|
267
|
+
"foo".should_not respond_to(:length)
|
268
|
+
}.should raise_error(Test::Unit::AssertionFailedError)
|
269
|
+
end
|
270
|
+
|
271
|
+
# be_something
|
272
|
+
def test_positive_be_something_method_missing_pass
|
273
|
+
def @obj.something?
|
274
|
+
true
|
275
|
+
end
|
276
|
+
@obj.should be_something
|
277
|
+
end
|
278
|
+
|
279
|
+
def test_positive_be_something_method_missing_fails
|
280
|
+
def @obj.something?
|
281
|
+
false
|
282
|
+
end
|
283
|
+
lambda {@obj.should be_something}.should raise_error(Test::Unit::AssertionFailedError)
|
284
|
+
end
|
285
|
+
|
286
|
+
def test_negative_be_something_method_missing_pass
|
287
|
+
def @obj.something?
|
288
|
+
false
|
289
|
+
end
|
290
|
+
@obj.should_not be_something
|
291
|
+
end
|
292
|
+
|
293
|
+
def test_negative_be_something_method_missing_fails
|
294
|
+
def @obj.something?
|
295
|
+
true
|
296
|
+
end
|
297
|
+
lambda {@obj.should_not be_something}.should raise_error(Test::Unit::AssertionFailedError)
|
298
|
+
end
|
299
|
+
|
300
|
+
def test_be_something_method_missing_fail_message
|
301
|
+
obj = "foo"
|
302
|
+
def obj.something?
|
303
|
+
true
|
304
|
+
end
|
305
|
+
matcher_obj = be_something
|
306
|
+
obj.should matcher_obj
|
307
|
+
|
308
|
+
matcher_obj.failure_message.should be("Expected \"foo\" to return true for something?, with 'no args'.")
|
309
|
+
end
|
310
|
+
|
311
|
+
def test_be_something_method_missing_negative_fail_message
|
312
|
+
obj = "foo"
|
313
|
+
def obj.something?
|
314
|
+
false
|
315
|
+
end
|
316
|
+
matcher_obj = be_something
|
317
|
+
obj.should_not matcher_obj
|
318
|
+
|
319
|
+
matcher_obj.negative_failure_message.should =~ /Expected \"foo\" to not return true for something?/
|
320
|
+
end
|
321
|
+
|
322
|
+
# be_something(arg)
|
323
|
+
def test_positive_be_something_with_arg_method_missing_pass
|
324
|
+
def @obj.something?(arg)
|
325
|
+
true
|
326
|
+
end
|
327
|
+
@obj.should be_something(1)
|
328
|
+
end
|
329
|
+
|
330
|
+
def test_positive_be_something_with_arg_method_missing_fails
|
331
|
+
def @obj.something?(arg)
|
332
|
+
false
|
333
|
+
end
|
334
|
+
lambda {@obj.should be_something(1)}.should raise_error(Test::Unit::AssertionFailedError)
|
335
|
+
end
|
336
|
+
|
337
|
+
def test_negative_be_something_method_missing_pass
|
338
|
+
def @obj.something?(arg)
|
339
|
+
false
|
340
|
+
end
|
341
|
+
@obj.should_not be_something(1)
|
342
|
+
end
|
343
|
+
|
344
|
+
def test_negative_be_something_method_missing_fails
|
345
|
+
def @obj.something?(arg)
|
346
|
+
true
|
347
|
+
end
|
348
|
+
lambda {@obj.should_not be_something(1)}.should raise_error(Test::Unit::AssertionFailedError)
|
349
|
+
end
|
350
|
+
|
351
|
+
def test_be_something_method_missing_fail_message
|
352
|
+
obj = "foo"
|
353
|
+
def obj.something?(arg)
|
354
|
+
true
|
355
|
+
end
|
356
|
+
matcher_obj = be_something(1)
|
357
|
+
obj.should matcher_obj
|
358
|
+
|
359
|
+
matcher_obj.failure_message.should be("Expected \"foo\" to return true for something?, with '1'.")
|
360
|
+
end
|
361
|
+
|
362
|
+
def test_be_something_method_missing_negative_fail_message
|
363
|
+
obj = "foo"
|
364
|
+
def obj.something?(arg)
|
365
|
+
false
|
366
|
+
end
|
367
|
+
matcher_obj = be_something(1)
|
368
|
+
obj.should_not matcher_obj
|
369
|
+
|
370
|
+
matcher_obj.negative_failure_message.should be("Expected \"foo\" to not return true for something?, with '1'.")
|
371
|
+
end
|
372
|
+
|
373
|
+
end
|