jeremymcanally-matchy 0.0.1

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,91 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestEnumerableExpectations < Test::Unit::TestCase
4
+ def test_include
5
+ [1,2,3,4].should include(4)
6
+ end
7
+
8
+ def test_include_fail
9
+ lambda {
10
+ [1,2,3,4].should include(6)
11
+ }.should raise_error(Test::Unit::AssertionFailedError)
12
+ end
13
+
14
+ def test_exclude
15
+ [1,2,3,4].should exclude(9)
16
+ end
17
+
18
+ def test_exclude_fail
19
+ lambda {
20
+ [1,2,3,4].should exclude(4)
21
+ }.should raise_error(Test::Unit::AssertionFailedError)
22
+ end
23
+
24
+ def test_multi_include
25
+ [1,2,3,4].should include(1,2)
26
+ end
27
+
28
+ def test_multi_include_fail
29
+ lambda {
30
+ [1,2,3,4].should include(6,7,8)
31
+ }.should raise_error(Test::Unit::AssertionFailedError)
32
+ end
33
+
34
+ def test_multi_exclude
35
+ [1,2,3,4].should exclude(13,14)
36
+ end
37
+
38
+ def test_multi_exclude_fail
39
+ lambda {
40
+ [1,2,3,4].should exclude(2,3,4)
41
+ }.should raise_error(Test::Unit::AssertionFailedError)
42
+ end
43
+
44
+ def test_negative_include
45
+ [1,2,3,4].should_not include(9)
46
+ end
47
+
48
+ def test_negative_include_fail
49
+ lambda {
50
+ [1,2,3,4].should_not include(4)
51
+ }.should raise_error(Test::Unit::AssertionFailedError)
52
+ end
53
+
54
+ def test_negative_exclude
55
+ [1,2,3,4].should_not exclude(3)
56
+ end
57
+
58
+ def test_negative_exclude_fail
59
+ lambda {
60
+ [1,2,3,4].should_not exclude(6,7)
61
+ }.should raise_error(Test::Unit::AssertionFailedError)
62
+ end
63
+
64
+ def test_include_fail_message
65
+ obj = include(1)
66
+ obj.matches?([4,5,6])
67
+
68
+ obj.failure_message.should be "Expected [4, 5, 6] to include [1]."
69
+ end
70
+
71
+ def test_include_negative_fail_message
72
+ obj = include(1)
73
+ obj.matches?([4,5,6])
74
+
75
+ obj.negative_failure_message.should be "Expected [4, 5, 6] to not include [1]."
76
+ end
77
+
78
+ def test_exclude_fail_message
79
+ obj = exclude(4)
80
+ obj.matches?([4,5,6])
81
+
82
+ obj.failure_message.should be "Expected [4, 5, 6] to exclude [4]."
83
+ end
84
+
85
+ def test_exclude_negative_fail_message
86
+ obj = exclude(4)
87
+ obj.matches?([4,5,6])
88
+
89
+ obj.negative_failure_message.should be "Expected [4, 5, 6] to not exclude [4]."
90
+ end
91
+ end
@@ -0,0 +1,109 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestErrorExpectations < Test::Unit::TestCase
4
+ def test_raises_error
5
+ lambda { raise "FAIL" }.should raise_error
6
+ end
7
+
8
+ def test_raises_error_fail
9
+ lambda {
10
+ lambda { "WIN" }.should raise_error
11
+ }.should raise_error(Test::Unit::AssertionFailedError)
12
+ end
13
+
14
+ def test_negative_raises_error
15
+ lambda { "WIN" }.should_not raise_error
16
+ end
17
+
18
+ def test_negative_raises_error_fail
19
+ lambda {
20
+ lambda { raise "FAIL" }.should_not raise_error
21
+ }.should raise_error(Test::Unit::AssertionFailedError)
22
+ end
23
+
24
+ def test_raises_specific_error
25
+ lambda { raise TypeError }.should raise_error(TypeError)
26
+ end
27
+
28
+ def test_raises_specific_error_fail_with_no_error
29
+ lambda {
30
+ lambda { "WIN" }.should raise_error(TypeError)
31
+ }.should raise_error(Test::Unit::AssertionFailedError)
32
+ end
33
+
34
+ def test_raises_specific_error_fail_with_different_error
35
+ lambda {
36
+ lambda { raise StandardError }.should raise_error(TypeError)
37
+ }.should raise_error(Test::Unit::AssertionFailedError)
38
+ end
39
+
40
+ def test_throws_symbol
41
+ lambda {
42
+ throw :win
43
+ }.should throw_symbol(:win)
44
+ end
45
+
46
+ def test_throws_symbol_fails_with_different_symbol
47
+ lambda {
48
+ lambda {
49
+ throw :fail
50
+ }.should throw_symbol(:win)
51
+ }.should raise_error(Test::Unit::AssertionFailedError)
52
+ end
53
+
54
+ def test_negative_throws_symbol
55
+ lambda {
56
+ "not this time!"
57
+ }.should_not throw_symbol(:win)
58
+ end
59
+
60
+ def test_negative_throws_symbol_fails_with_different_symbol
61
+ lambda{
62
+ lambda {
63
+ throw :fail
64
+ }.should_not throw_symbol(:fail)
65
+ }.should raise_error(Test::Unit::AssertionFailedError)
66
+ end
67
+
68
+ def test_error_fail_message
69
+ obj = raise_error(TypeError)
70
+ obj.matches?(lambda { raise NameError })
71
+
72
+ obj.failure_message.should =~ /Expected #<(.*)> to raise TypeError, but NameError was raised instead./
73
+ end
74
+
75
+ def test_error_fail_message_when_no_error
76
+ obj = raise_error(TypeError)
77
+ obj.matches?(lambda { "moop" })
78
+
79
+ obj.failure_message.should =~ /Expected #<(.*)> to raise TypeError, but none was raised./
80
+ end
81
+
82
+ def test_error_negative_fail_message
83
+ obj = raise_error(TypeError)
84
+ obj.matches?(lambda { raise TypeError })
85
+
86
+ obj.negative_failure_message.should =~ /Expected #<(.*)> to not raise TypeError./
87
+ end
88
+
89
+ def test_throw_fail_message
90
+ obj = throw_symbol(:fail)
91
+ obj.matches?(lambda { throw :lame })
92
+
93
+ obj.failure_message.should =~ /Expected #<(.*)> to throw :fail, but :lame was thrown instead./
94
+ end
95
+
96
+ def test_throw_fail_message_when_no_symbol
97
+ obj = throw_symbol(:fail)
98
+ obj.matches?(lambda { "moop" })
99
+
100
+ obj.failure_message.should =~ /Expected #<(.*)> to throw :fail, but no symbol was thrown./
101
+ end
102
+
103
+ def test_throw_negative_fail_message
104
+ obj = throw_symbol(:fail)
105
+ obj.matches?(lambda { throw :fail })
106
+
107
+ obj.negative_failure_message.should =~ /Expected #<(.*)> to not throw :fail./
108
+ end
109
+ end
@@ -0,0 +1,35 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestExpectationBase < Test::Unit::TestCase
4
+ def setup
5
+ @instance = Matchy::Expectations::Base.new(true, self)
6
+ end
7
+
8
+ def test_ivars
9
+ @instance.instance_variable_get("@expected").should eql(true)
10
+ end
11
+
12
+ def test_matches_throws_error
13
+ lambda {
14
+ @instance.matches?(true)
15
+ }.should raise_error
16
+ end
17
+
18
+ def test_fail_should_raise
19
+ lambda {
20
+ @instance.fail!(false)
21
+ }.should raise_error(Test::Unit::AssertionFailedError)
22
+ end
23
+
24
+ def test_pass
25
+ @instance.pass!(true)
26
+ end
27
+
28
+ def test_failure_message
29
+ @instance.failure_message.should eql("OMG FAIL.")
30
+ end
31
+
32
+ def test_negative_failure_message
33
+ @instance.negative_failure_message.should eql("OMG FAIL TO FAIL.")
34
+ end
35
+ end
@@ -0,0 +1,27 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestModals < Test::Unit::TestCase
4
+ def setup
5
+ @expectation = Matchy::Expectations::EqlExpectation.new(3, self)
6
+ @bad_expectation = Matchy::Expectations::EqlExpectation.new(4, self)
7
+ end
8
+
9
+ def test_should
10
+ 3.should(@expectation)
11
+ end
12
+
13
+ def test_should_not
14
+ 3.should_not(@bad_expectation)
15
+ end
16
+
17
+ def test_should_operator_expectation_returned
18
+ obj = 3.should
19
+ assert_equal Matchy::Expectations::OperatorExpectation, obj.class
20
+ end
21
+
22
+
23
+ def test_should_not_operator_expectation_returned
24
+ obj = 3.should_not
25
+ assert_equal Matchy::Expectations::OperatorExpectation, obj.class
26
+ end
27
+ end
@@ -0,0 +1,159 @@
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.fail!(fail)
142
+ end
143
+
144
+ obj == 4
145
+
146
+ obj.send(:failure_message, "==").should =~ /Expected 3 to == 4./
147
+ end
148
+
149
+ def test_negative_fail_message
150
+ obj = Matchy::Expectations::OperatorExpectation.new(3, true)
151
+
152
+ def obj.fail!(fail)
153
+ end
154
+
155
+ obj == 3
156
+
157
+ obj.send(:negative_failure_message, "==").should =~ /Expected 3 to not == 3./
158
+ end
159
+ end
@@ -0,0 +1,217 @@
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
+ def test_equal
15
+ 3.should equal(3)
16
+ end
17
+
18
+ def test_negative_equal
19
+ instance = String.new
20
+
21
+ instance.should_not equal(String.new)
22
+ end
23
+
24
+ def test_equal_fail
25
+ lambda {
26
+ 3.should equal(4)
27
+ }.should raise_error(Test::Unit::AssertionFailedError)
28
+ end
29
+
30
+ def test_negative_equal_fail
31
+ lambda {
32
+ 3.should_not equal(3)
33
+ }.should raise_error(Test::Unit::AssertionFailedError)
34
+ end
35
+
36
+ def test_eql
37
+ 3.should eql(3)
38
+ end
39
+
40
+ def test_negative_eql
41
+ 3.should_not eql(9)
42
+ end
43
+
44
+ def test_eql_fail
45
+ lambda {
46
+ 3.should eql(13)
47
+ }.should raise_error(Test::Unit::AssertionFailedError)
48
+ end
49
+
50
+ def test_negative_eql_fail
51
+ lambda {
52
+ 3.should_not eql(3)
53
+ }.should raise_error(Test::Unit::AssertionFailedError)
54
+ end
55
+
56
+ def test_exists
57
+ thing = Exister.new(true)
58
+ thing.should exist
59
+ end
60
+
61
+ def test_negative_exists
62
+ thing = Exister.new(false)
63
+ thing.should_not exist
64
+ end
65
+
66
+ def test_exists_fail
67
+ lambda {
68
+ thing = Exister.new(false)
69
+ thing.should exist
70
+ }.should raise_error(Test::Unit::AssertionFailedError)
71
+ end
72
+
73
+ def test_negative_exists_fail
74
+ lambda {
75
+ thing = Exister.new(true)
76
+ thing.should_not exist
77
+ }.should raise_error(Test::Unit::AssertionFailedError)
78
+ end
79
+
80
+ def test_be
81
+ true.should be(true)
82
+ end
83
+
84
+ def test_negative_be
85
+ true.should_not be(false)
86
+ end
87
+
88
+ def test_be_fail
89
+ lambda {
90
+ true.should be(false)
91
+ }.should raise_error(Test::Unit::AssertionFailedError)
92
+ end
93
+
94
+ def test_be_close
95
+ (5.0 - 2.0).should be_close(3.0)
96
+ end
97
+
98
+ def test_be_close_with_delta
99
+ (5.0 - 2.0).should be_close(3.0, 0.2)
100
+ end
101
+
102
+ def test_be_close_fail
103
+ lambda {
104
+ (19.0 - 13.0).should be_close(33.04)
105
+ }.should raise_error(Test::Unit::AssertionFailedError)
106
+ end
107
+
108
+ def test_be_close_with_delta_fail
109
+ lambda {
110
+ (19.0 - 13.0).should be_close(6.0, 0.0)
111
+ }.should raise_error(Test::Unit::AssertionFailedError)
112
+ end
113
+
114
+ def test_satisfy
115
+ 13.should satisfy(lambda {|i| i < 15})
116
+ end
117
+
118
+ def test_negative_satisfy
119
+ 13.should_not satisfy(lambda {|i| i < 10})
120
+ end
121
+
122
+ def test_satisfy_fail
123
+ lambda {
124
+ 13.should satisfy(lambda {|i| i > 15})
125
+ }.should raise_error(Test::Unit::AssertionFailedError)
126
+ end
127
+
128
+ def test_negative_satisfy_fail
129
+ lambda {
130
+ 13.should_not satisfy(lambda {|i| i < 15})
131
+ }.should raise_error(Test::Unit::AssertionFailedError)
132
+ end
133
+
134
+ def test_equal_fail_message
135
+ obj = equal(4)
136
+ obj.matches?(5)
137
+
138
+ obj.failure_message.should be "Expected 5 to equal 4."
139
+ end
140
+
141
+ def test_equal_negative_fail_message
142
+ obj = equal(5)
143
+ obj.matches?(5)
144
+
145
+ obj.negative_failure_message.should be "Expected 5 to not equal 5."
146
+ end
147
+
148
+ def test_eql_fail_message
149
+ obj = eql(4)
150
+ obj.matches?(5)
151
+
152
+ obj.failure_message.should be "Expected 5 to eql 4."
153
+ end
154
+
155
+ def test_eql_negative_fail_message
156
+ obj = eql(5)
157
+ obj.matches?(5)
158
+
159
+ obj.negative_failure_message.should be "Expected 5 to not eql 5."
160
+ end
161
+
162
+ def test_exist_fail_message
163
+ obj = exist
164
+ obj.matches?(Exister.new(false))
165
+
166
+ obj.failure_message.should =~ /Expected #<(.*)> to exist./
167
+ end
168
+
169
+ def test_exist_negative_fail_message
170
+ obj = exist
171
+ obj.matches?(Exister.new(true))
172
+
173
+ obj.negative_failure_message.should =~ /Expected #<(.*)> to not exist./
174
+ end
175
+
176
+ def test_be_close_fail_message
177
+ obj = be_close(3.0)
178
+ obj.matches?(6.0)
179
+
180
+ obj.failure_message.should be "Expected 6.0 to be close to 3.0 (delta: 0.3)."
181
+ end
182
+
183
+ def test_be_close_negative_fail_message
184
+ obj = be_close(5.0)
185
+ obj.matches?(5.0)
186
+
187
+ obj.negative_failure_message.should be "Expected 5.0 to not be close to 5.0 (delta: 0.3)."
188
+ end
189
+
190
+ def test_be_fail_message
191
+ obj = be(4)
192
+ obj.matches?(5)
193
+
194
+ obj.failure_message.should be "Expected 5 to be 4."
195
+ end
196
+
197
+ def test_be_negative_fail_message
198
+ obj = be(5)
199
+ obj.matches?(5)
200
+
201
+ obj.negative_failure_message.should be "Expected 5 to not be 5."
202
+ end
203
+
204
+ def test_satisfy_fail_message
205
+ obj = satisfy(lambda {|x| x == 4})
206
+ obj.matches?(6)
207
+
208
+ obj.failure_message.should be "Expected 6 to satisfy given block."
209
+ end
210
+
211
+ def test_eql_negative_fail_message
212
+ obj = satisfy(lambda {|x| x == 4})
213
+ obj.matches?(4)
214
+
215
+ obj.negative_failure_message.should be "Expected 4 to not satisfy given block."
216
+ end
217
+ end