OLD | NEW |
1 // Copyright 2014 Google Inc. All Rights Reserved. | 1 // Copyright 2014 Google Inc. All Rights Reserved. |
2 // | 2 // |
3 // Licensed under the Apache License, Version 2.0 (the "License"); | 3 // Licensed under the Apache License, Version 2.0 (the "License"); |
4 // you may not use this file except in compliance with the License. | 4 // you may not use this file except in compliance with the License. |
5 // You may obtain a copy of the License at | 5 // You may obtain a copy of the License at |
6 // | 6 // |
7 // http://www.apache.org/licenses/LICENSE-2.0 | 7 // http://www.apache.org/licenses/LICENSE-2.0 |
8 // | 8 // |
9 // Unless required by applicable law or agreed to in writing, software | 9 // Unless required by applicable law or agreed to in writing, software |
10 // distributed under the License is distributed on an "AS IS" BASIS, | 10 // distributed under the License is distributed on an "AS IS" BASIS, |
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
12 // See the License for the specific language governing permissions and | 12 // See the License for the specific language governing permissions and |
13 // limitations under the License. | 13 // limitations under the License. |
14 | 14 |
15 library quiver.check_test; | 15 library quiver.check_test; |
16 | 16 |
17 import 'package:quiver/check.dart'; | 17 import 'package:quiver/check.dart'; |
18 import 'package:test/test.dart'; | 18 import 'package:test/test.dart'; |
19 | 19 |
20 main() { | 20 main() { |
21 group('checkArgument', () { | 21 group('checkArgument', () { |
22 group('success', () { | 22 group('success', () { |
23 test('simple', () => checkArgument(true)); | 23 test('simple', () => checkArgument(true)); |
24 test('null message', () => checkArgument(true, message: null)); | 24 test('null message', () => checkArgument(true, message: null)); |
25 test('string message', () => checkArgument(true, message: 'foo')); | 25 test('string message', () => checkArgument(true, message: 'foo')); |
26 test('function message', () => | 26 test( |
27 checkArgument(true, message: () => fail("Shouldn't be called"))); | 27 'function message', |
| 28 () => |
| 29 checkArgument(true, message: () => fail("Shouldn't be called"))); |
28 }); | 30 }); |
29 | 31 |
30 group('failure', () { | 32 group('failure', () { |
31 checkArgumentShouldFail(Function f, [String expectedMessage]) { | 33 checkArgumentShouldFail(Function f, [String expectedMessage]) { |
32 try { | 34 try { |
33 f(); | 35 f(); |
34 fail('Should have thrown an ArgumentError'); | 36 fail('Should have thrown an ArgumentError'); |
35 } catch (e) { | 37 } catch (e) { |
36 expect(e, isArgumentError); | 38 expect(e, isArgumentError); |
37 expect(e.message, expectedMessage); | 39 expect(e.message, expectedMessage); |
38 } | 40 } |
39 } | 41 } |
40 | 42 |
41 test('no message', | 43 test('no message', |
42 () => checkArgumentShouldFail(() => checkArgument(false))); | 44 () => checkArgumentShouldFail(() => checkArgument(false))); |
43 | 45 |
44 test('failure and simple string message', () => checkArgumentShouldFail( | 46 test( |
45 () => checkArgument(false, message: 'message'), 'message')); | 47 'failure and simple string message', |
| 48 () => checkArgumentShouldFail( |
| 49 () => checkArgument(false, message: 'message'), 'message')); |
46 | 50 |
47 test('failure and null message', () => | 51 test( |
48 checkArgumentShouldFail(() => checkArgument(false, message: null))); | 52 'failure and null message', |
49 test('failure and object as message', () => | 53 () => checkArgumentShouldFail( |
50 checkArgumentShouldFail(() => checkArgument(false, message: 5), '5')); | 54 () => checkArgument(false, message: null))); |
51 test('failure and message closure returns object', | 55 test( |
| 56 'failure and object as message', |
| 57 () => checkArgumentShouldFail( |
| 58 () => checkArgument(false, message: 5), '5')); |
| 59 test( |
| 60 'failure and message closure returns object', |
52 () => checkArgumentShouldFail( | 61 () => checkArgumentShouldFail( |
53 () => checkArgument(false, message: () => 5), '5')); | 62 () => checkArgument(false, message: () => 5), '5')); |
54 | 63 |
55 test('failure and message function', () { | 64 test('failure and message function', () { |
56 int five = 5; | 65 int five = 5; |
57 checkArgumentShouldFail( | 66 checkArgumentShouldFail( |
58 () => checkArgument(false, message: () => 'I ate $five pies'), | 67 () => checkArgument(false, message: () => 'I ate $five pies'), |
59 'I ate 5 pies'); | 68 'I ate 5 pies'); |
60 }); | 69 }); |
61 }); | 70 }); |
(...skipping 15 matching lines...) Expand all Loading... |
77 f(); | 86 f(); |
78 fail('Should have thrown a StateError'); | 87 fail('Should have thrown a StateError'); |
79 } catch (e) { | 88 } catch (e) { |
80 expect(e, isStateError); | 89 expect(e, isStateError); |
81 expect(e.message, expectedMessage); | 90 expect(e.message, expectedMessage); |
82 } | 91 } |
83 } | 92 } |
84 | 93 |
85 test('no message', () => checkStateShouldFail(() => checkState(false))); | 94 test('no message', () => checkStateShouldFail(() => checkState(false))); |
86 | 95 |
87 test('failure and simple string message', () => checkStateShouldFail( | 96 test( |
88 () => checkState(false, message: 'message'), 'message')); | 97 'failure and simple string message', |
| 98 () => checkStateShouldFail( |
| 99 () => checkState(false, message: 'message'), 'message')); |
89 | 100 |
90 test('failure and null message', | 101 test('failure and null message', |
91 () => checkStateShouldFail(() => checkState(false, message: null))); | 102 () => checkStateShouldFail(() => checkState(false, message: null))); |
92 test('message closure returns null', () => | 103 test( |
93 checkStateShouldFail(() => checkState(false, message: () => null))); | 104 'message closure returns null', |
| 105 () => checkStateShouldFail( |
| 106 () => checkState(false, message: () => null))); |
94 | 107 |
95 test('failure and message function', () { | 108 test('failure and message function', () { |
96 int five = 5; | 109 int five = 5; |
97 checkStateShouldFail( | 110 checkStateShouldFail( |
98 () => checkState(false, message: () => 'I ate $five pies'), | 111 () => checkState(false, message: () => 'I ate $five pies'), |
99 'I ate 5 pies'); | 112 'I ate 5 pies'); |
100 }); | 113 }); |
101 }); | 114 }); |
102 }); | 115 }); |
103 | 116 |
104 group('checkNotNull', () { | 117 group('checkNotNull', () { |
105 group('success', () { | 118 group('success', () { |
106 test('simple', () => expect(checkNotNull(''), '')); | 119 test('simple', () => expect(checkNotNull(''), '')); |
107 test('string message', () => expect(checkNotNull(5, message: 'foo'), 5)); | 120 test('string message', () => expect(checkNotNull(5, message: 'foo'), 5)); |
108 test('function message', () => expect(checkNotNull(true, | 121 test( |
109 message: () => fail("Shouldn't be called")), true)); | 122 'function message', |
| 123 () => expect( |
| 124 checkNotNull(true, message: () => fail("Shouldn't be called")), |
| 125 true)); |
110 }); | 126 }); |
111 | 127 |
112 group('failure', () { | 128 group('failure', () { |
113 checkNotNullShouldFail(Function f, [String expectedMessage]) { | 129 checkNotNullShouldFail(Function f, [String expectedMessage]) { |
114 if (expectedMessage == null) expectedMessage = 'null pointer'; | 130 if (expectedMessage == null) expectedMessage = 'null pointer'; |
115 try { | 131 try { |
116 f(); | 132 f(); |
117 fail('Should have thrown an ArgumentError'); | 133 fail('Should have thrown an ArgumentError'); |
118 } catch (e) { | 134 } catch (e) { |
119 expect(e, isArgumentError); | 135 expect(e, isArgumentError); |
120 expect(e.message, expectedMessage); | 136 expect(e.message, expectedMessage); |
121 } | 137 } |
122 } | 138 } |
123 | 139 |
124 test( | 140 test( |
125 'no message', () => checkNotNullShouldFail(() => checkNotNull(null))); | 141 'no message', () => checkNotNullShouldFail(() => checkNotNull(null))); |
126 | 142 |
127 test('simple failure message', () => checkNotNullShouldFail( | 143 test( |
128 () => checkNotNull(null, message: 'message'), 'message')); | 144 'simple failure message', |
| 145 () => checkNotNullShouldFail( |
| 146 () => checkNotNull(null, message: 'message'), 'message')); |
129 | 147 |
130 test('null message', () => | 148 test( |
131 checkNotNullShouldFail(() => checkNotNull(null, message: null))); | 149 'null message', |
| 150 () => |
| 151 checkNotNullShouldFail(() => checkNotNull(null, message: null))); |
132 | 152 |
133 test('message closure returns null', () => checkNotNullShouldFail( | 153 test( |
134 () => checkNotNull(null, message: () => null))); | 154 'message closure returns null', |
| 155 () => checkNotNullShouldFail( |
| 156 () => checkNotNull(null, message: () => null))); |
135 | 157 |
136 test('failure and message function', () { | 158 test('failure and message function', () { |
137 int five = 5; | 159 int five = 5; |
138 checkNotNullShouldFail( | 160 checkNotNullShouldFail( |
139 () => checkNotNull(null, message: () => 'I ate $five pies'), | 161 () => checkNotNull(null, message: () => 'I ate $five pies'), |
140 'I ate 5 pies'); | 162 'I ate 5 pies'); |
141 }); | 163 }); |
142 }); | 164 }); |
143 }); | 165 }); |
144 | 166 |
145 group('checkListIndex', () { | 167 group('checkListIndex', () { |
146 test('success', () { | 168 test('success', () { |
147 checkListIndex(0, 1); | 169 checkListIndex(0, 1); |
148 checkListIndex(0, 1, message: () => fail("shouldn't be called")); | 170 checkListIndex(0, 1, message: () => fail("shouldn't be called")); |
149 checkListIndex(0, 2); | 171 checkListIndex(0, 2); |
150 checkListIndex(0, 2, message: () => fail("shouldn't be called")); | 172 checkListIndex(0, 2, message: () => fail("shouldn't be called")); |
151 checkListIndex(1, 2); | 173 checkListIndex(1, 2); |
152 checkListIndex(1, 2, message: () => fail("shouldn't be called")); | 174 checkListIndex(1, 2, message: () => fail("shouldn't be called")); |
153 }); | 175 }); |
154 | 176 |
155 group('failure', () { | 177 group('failure', () { |
156 checkListIndexShouldFail(int index, int size, | 178 checkListIndexShouldFail(int index, int size, |
157 [message, String expectedMessage]) { | 179 [message, String expectedMessage]) { |
158 try { | 180 try { |
159 checkListIndex(index, size, message: message); | 181 checkListIndex(index, size, message: message); |
160 fail('Should have thrown a RangeError'); | 182 fail('Should have thrown a RangeError'); |
161 } catch (e) { | 183 } catch (e) { |
162 expect(e, isRangeError); | 184 expect(e, isRangeError); |
163 expect(e.message, expectedMessage == null | 185 expect( |
164 ? 'index $index not valid for list of size $size' | 186 e.message, |
165 : expectedMessage); | 187 expectedMessage == null |
| 188 ? 'index $index not valid for list of size $size' |
| 189 : expectedMessage); |
166 } | 190 } |
167 } | 191 } |
| 192 |
168 test('negative size', () => checkListIndexShouldFail(0, -1)); | 193 test('negative size', () => checkListIndexShouldFail(0, -1)); |
169 test('negative index', () => checkListIndexShouldFail(-1, 1)); | 194 test('negative index', () => checkListIndexShouldFail(-1, 1)); |
170 test('index too high', () => checkListIndexShouldFail(1, 1)); | 195 test('index too high', () => checkListIndexShouldFail(1, 1)); |
171 test('zero size', () => checkListIndexShouldFail(0, 0)); | 196 test('zero size', () => checkListIndexShouldFail(0, 0)); |
172 | 197 |
173 test('with failure message', | 198 test('with failure message', |
174 () => checkListIndexShouldFail(1, 1, 'foo', 'foo')); | 199 () => checkListIndexShouldFail(1, 1, 'foo', 'foo')); |
175 test('with failure message function', () { | 200 test('with failure message function', () { |
176 int five = 5; | 201 int five = 5; |
177 checkListIndexShouldFail( | 202 checkListIndexShouldFail( |
178 1, 1, () => 'I ate $five pies', 'I ate 5 pies'); | 203 1, 1, () => 'I ate $five pies', 'I ate 5 pies'); |
179 }); | 204 }); |
180 }); | 205 }); |
181 }); | 206 }); |
182 } | 207 } |
OLD | NEW |