| 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 |