OLD | NEW |
---|---|
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 /** | 5 /** |
6 * The error formatter for mocking is a bit different from the default one | 6 * The error formatter for mocking is a bit different from the default one |
7 * for unit testing; instead of the third argument being a 'reason' | 7 * for unit testing; instead of the third argument being a 'reason' |
8 * it is instead a [signature] describing the method signature filter | 8 * it is instead a [signature] describing the method signature filter |
9 * that was used to select the logs that were verified. | 9 * that was used to select the logs that were verified. |
10 */ | 10 */ |
(...skipping 1250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1261 if (!_behaviors.containsKey(key)) { | 1261 if (!_behaviors.containsKey(key)) { |
1262 Behavior b = new Behavior(logFilter); | 1262 Behavior b = new Behavior(logFilter); |
1263 _behaviors[key] = b; | 1263 _behaviors[key] = b; |
1264 return b; | 1264 return b; |
1265 } else { | 1265 } else { |
1266 return _behaviors[key]; | 1266 return _behaviors[key]; |
1267 } | 1267 } |
1268 } | 1268 } |
1269 | 1269 |
1270 /** | 1270 /** |
1271 * This is the handler for method calls. We loo through the list | 1271 * This is the handler for method calls. We loo through the list |
floitsch
2012/10/23 13:04:35
loop
Lasse Reichstein Nielsen
2012/10/25 06:17:35
Good catch.
| |
1272 * of [Behavior]s, and find the first match that still has return | 1272 * of [Behavior]s, and find the first match that still has return |
1273 * values available, and then do the action specified by that | 1273 * values available, and then do the action specified by that |
1274 * return value. If we find no [Behavior] to apply an exception is | 1274 * return value. If we find no [Behavior] to apply an exception is |
1275 * thrown. | 1275 * thrown. |
1276 */ | 1276 */ |
1277 noSuchMethod(String method, List args) { | 1277 noSuchMethod(InvocationMirror invocation) { |
1278 if (method.startsWith('get:')) { | 1278 String method = invocation.getterName; |
1279 method = 'get ${method.substring(4)}'; | 1279 if (invocation.isGetter) { |
1280 method = 'get $method'; | |
1280 } | 1281 } |
1282 List args = invocation.positionalArguments; | |
1283 // TODO: Handle named arguments too. | |
1281 bool matchedMethodName = false; | 1284 bool matchedMethodName = false; |
1282 MatchState matchState = new MatchState(); | 1285 MatchState matchState = new MatchState(); |
1283 for (String k in _behaviors.getKeys()) { | 1286 for (String k in _behaviors.getKeys()) { |
1284 Behavior b = _behaviors[k]; | 1287 Behavior b = _behaviors[k]; |
1285 if (b.matcher.nameFilter.matches(method, matchState)) { | 1288 if (b.matcher.nameFilter.matches(method, matchState)) { |
1286 matchedMethodName = true; | 1289 matchedMethodName = true; |
1287 } | 1290 } |
1288 if (b.matches(method, args)) { | 1291 if (b.matches(method, args)) { |
1289 List actions = b.actions; | 1292 List actions = b.actions; |
1290 if (actions == null || actions.length == 0) { | 1293 if (actions == null || actions.length == 0) { |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1450 } | 1453 } |
1451 } | 1454 } |
1452 } | 1455 } |
1453 | 1456 |
1454 /** Clear both logs and behavior. */ | 1457 /** Clear both logs and behavior. */ |
1455 void reset() { | 1458 void reset() { |
1456 resetBehavior(); | 1459 resetBehavior(); |
1457 clearLogs(); | 1460 clearLogs(); |
1458 } | 1461 } |
1459 } | 1462 } |
OLD | NEW |