| 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 23 matching lines...) Expand all Loading... |
| 34 proxy.fail(_mockingErrorFormatter(actual, matcher, reason, | 34 proxy.fail(_mockingErrorFormatter(actual, matcher, reason, |
| 35 matchState, verbose)); | 35 matchState, verbose)); |
| 36 } | 36 } |
| 37 } | 37 } |
| 38 | 38 |
| 39 _MockFailureHandler _mockFailureHandler = null; | 39 _MockFailureHandler _mockFailureHandler = null; |
| 40 | 40 |
| 41 /** | 41 /** |
| 42 * [_noArg] is a sentinel value representing no argument. | 42 * [_noArg] is a sentinel value representing no argument. |
| 43 */ | 43 */ |
| 44 final _noArg = const _Sentinel(); | 44 const _noArg = const _Sentinel(); |
| 45 | 45 |
| 46 /** The ways in which a call to a mock method can be handled. */ | 46 /** The ways in which a call to a mock method can be handled. */ |
| 47 class Action { | 47 class Action { |
| 48 /** Do nothing (void method) */ | 48 /** Do nothing (void method) */ |
| 49 static final IGNORE = const Action._('IGNORE'); | 49 static const IGNORE = const Action._('IGNORE'); |
| 50 | 50 |
| 51 /** Return a supplied value. */ | 51 /** Return a supplied value. */ |
| 52 static final RETURN = const Action._('RETURN'); | 52 static const RETURN = const Action._('RETURN'); |
| 53 | 53 |
| 54 /** Throw a supplied value. */ | 54 /** Throw a supplied value. */ |
| 55 static final THROW = const Action._('THROW'); | 55 static const THROW = const Action._('THROW'); |
| 56 | 56 |
| 57 /** Call a supplied function. */ | 57 /** Call a supplied function. */ |
| 58 static final PROXY = const Action._('PROXY'); | 58 static const PROXY = const Action._('PROXY'); |
| 59 | 59 |
| 60 const Action._(this.name); | 60 const Action._(this.name); |
| 61 | 61 |
| 62 final String name; | 62 final String name; |
| 63 } | 63 } |
| 64 | 64 |
| 65 /** | 65 /** |
| 66 * The behavior of a method call in the mock library is specified | 66 * The behavior of a method call in the mock library is specified |
| 67 * with [Responder]s. A [Responder] has a [value] to throw | 67 * with [Responder]s. A [Responder] has a [value] to throw |
| 68 * or return (depending on the type of [action]), | 68 * or return (depending on the type of [action]), |
| (...skipping 825 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 894 Matcher happenedAtLeast(count) { | 894 Matcher happenedAtLeast(count) { |
| 895 return new _TimesMatcher(count); | 895 return new _TimesMatcher(count); |
| 896 } | 896 } |
| 897 | 897 |
| 898 /** [happenedAtMost] matches a maximum number of calls. */ | 898 /** [happenedAtMost] matches a maximum number of calls. */ |
| 899 Matcher happenedAtMost(count) { | 899 Matcher happenedAtMost(count) { |
| 900 return new _TimesMatcher(0, count); | 900 return new _TimesMatcher(0, count); |
| 901 } | 901 } |
| 902 | 902 |
| 903 /** [neverHappened] matches zero calls. */ | 903 /** [neverHappened] matches zero calls. */ |
| 904 final Matcher neverHappened = const _TimesMatcher(0, 0); | 904 const Matcher neverHappened = const _TimesMatcher(0, 0); |
| 905 | 905 |
| 906 /** [happenedOnce] matches exactly one call. */ | 906 /** [happenedOnce] matches exactly one call. */ |
| 907 final Matcher happenedOnce = const _TimesMatcher(1, 1); | 907 const Matcher happenedOnce = const _TimesMatcher(1, 1); |
| 908 | 908 |
| 909 /** [happenedAtLeastOnce] matches one or more calls. */ | 909 /** [happenedAtLeastOnce] matches one or more calls. */ |
| 910 final Matcher happenedAtLeastOnce = const _TimesMatcher(1); | 910 const Matcher happenedAtLeastOnce = const _TimesMatcher(1); |
| 911 | 911 |
| 912 /** [happenedAtMostOnce] matches zero or one call. */ | 912 /** [happenedAtMostOnce] matches zero or one call. */ |
| 913 final Matcher happenedAtMostOnce = const _TimesMatcher(0, 1); | 913 const Matcher happenedAtMostOnce = const _TimesMatcher(0, 1); |
| 914 | 914 |
| 915 /** | 915 /** |
| 916 * [_ResultMatcher]s are used to make assertions about the results | 916 * [_ResultMatcher]s are used to make assertions about the results |
| 917 * of method calls. These can be used as optional parameters to [getLogs]. | 917 * of method calls. These can be used as optional parameters to [getLogs]. |
| 918 */ | 918 */ |
| 919 class _ResultMatcher extends BaseMatcher { | 919 class _ResultMatcher extends BaseMatcher { |
| 920 final Action action; | 920 final Action action; |
| 921 final Matcher value; | 921 final Matcher value; |
| 922 | 922 |
| 923 const _ResultMatcher(this.action, this.value); | 923 const _ResultMatcher(this.action, this.value); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 965 /** | 965 /** |
| 966 *[throwing] matches log entrues where the call to a method threw | 966 *[throwing] matches log entrues where the call to a method threw |
| 967 * a value that matched [value]. | 967 * a value that matched [value]. |
| 968 */ | 968 */ |
| 969 Matcher throwing(value) => | 969 Matcher throwing(value) => |
| 970 new _ResultMatcher(Action.THROW, wrapMatcher(value)); | 970 new _ResultMatcher(Action.THROW, wrapMatcher(value)); |
| 971 | 971 |
| 972 /** Special values for use with [_ResultSetMatcher] [frequency]. */ | 972 /** Special values for use with [_ResultSetMatcher] [frequency]. */ |
| 973 class _Frequency { | 973 class _Frequency { |
| 974 /** Every call/throw must match */ | 974 /** Every call/throw must match */ |
| 975 static final ALL = const _Frequency._('ALL'); | 975 static const ALL = const _Frequency._('ALL'); |
| 976 | 976 |
| 977 /** At least one call/throw must match. */ | 977 /** At least one call/throw must match. */ |
| 978 static final SOME = const _Frequency._('SOME'); | 978 static const SOME = const _Frequency._('SOME'); |
| 979 | 979 |
| 980 /** No calls/throws should match. */ | 980 /** No calls/throws should match. */ |
| 981 static final NONE = const _Frequency._('NONE'); | 981 static const NONE = const _Frequency._('NONE'); |
| 982 | 982 |
| 983 const _Frequency._(this.name); | 983 const _Frequency._(this.name); |
| 984 | 984 |
| 985 final String name; | 985 final String name; |
| 986 } | 986 } |
| 987 | 987 |
| 988 /** | 988 /** |
| 989 * [_ResultSetMatcher]s are used to make assertions about the results | 989 * [_ResultSetMatcher]s are used to make assertions about the results |
| 990 * of method calls. When filtering an execution log by calling | 990 * of method calls. When filtering an execution log by calling |
| 991 * [getLogs], a [LogEntrySet] of matching call logs is returned; | 991 * [getLogs], a [LogEntrySet] of matching call logs is returned; |
| (...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1450 } | 1450 } |
| 1451 } | 1451 } |
| 1452 } | 1452 } |
| 1453 | 1453 |
| 1454 /** Clear both logs and behavior. */ | 1454 /** Clear both logs and behavior. */ |
| 1455 void reset() { | 1455 void reset() { |
| 1456 resetBehavior(); | 1456 resetBehavior(); |
| 1457 clearLogs(); | 1457 clearLogs(); |
| 1458 } | 1458 } |
| 1459 } | 1459 } |
| OLD | NEW |