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 1256 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 |
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.methodName; |
1279 method = 'get ${method.substring(4)}'; | 1279 // Remove this when InvocationMirror works correctly. |
| 1280 if (method.startsWith("get:")) method = method.substring(4); |
| 1281 |
| 1282 if (invocation.isGetter) { |
| 1283 method = 'get $method'; |
1280 } | 1284 } |
| 1285 List args = invocation.positionalArguments; |
| 1286 // TODO: Handle named arguments too. |
| 1287 |
1281 bool matchedMethodName = false; | 1288 bool matchedMethodName = false; |
1282 MatchState matchState = new MatchState(); | 1289 MatchState matchState = new MatchState(); |
1283 for (String k in _behaviors.keys) { | 1290 for (String k in _behaviors.keys) { |
1284 Behavior b = _behaviors[k]; | 1291 Behavior b = _behaviors[k]; |
1285 if (b.matcher.nameFilter.matches(method, matchState)) { | 1292 if (b.matcher.nameFilter.matches(method, matchState)) { |
1286 matchedMethodName = true; | 1293 matchedMethodName = true; |
1287 } | 1294 } |
1288 if (b.matches(method, args)) { | 1295 if (b.matches(method, args)) { |
1289 List actions = b.actions; | 1296 List actions = b.actions; |
1290 if (actions == null || actions.length == 0) { | 1297 if (actions == null || actions.length == 0) { |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1450 } | 1457 } |
1451 } | 1458 } |
1452 } | 1459 } |
1453 | 1460 |
1454 /** Clear both logs and behavior. */ | 1461 /** Clear both logs and behavior. */ |
1455 void reset() { | 1462 void reset() { |
1456 resetBehavior(); | 1463 resetBehavior(); |
1457 clearLogs(); | 1464 clearLogs(); |
1458 } | 1465 } |
1459 } | 1466 } |
OLD | NEW |