| Index: pkg/collection/test/wrapper_test.dart
|
| diff --git a/pkg/collection/test/wrapper_test.dart b/pkg/collection/test/wrapper_test.dart
|
| index 875a70aedae241df8b34ca2adc5fc588f51c36ab..86a0ddd1b349621550f2afcc2d647f340ee61b3d 100644
|
| --- a/pkg/collection/test/wrapper_test.dart
|
| +++ b/pkg/collection/test/wrapper_test.dart
|
| @@ -37,6 +37,10 @@ abstract class Expector {
|
| noSuchMethod(Invocation m) => new _Equals(equals = getWrappedObject((m2) {
|
| testInvocations(m, m2);
|
| }));
|
| +
|
| + toString() => new _Equals(equals = getWrappedObject((m2) {
|
| + testInvocations(TO_STRING_INVOCATION, m2);
|
| + }));
|
| }
|
|
|
| // An object with a field called "equals", only introduced into the
|
| @@ -46,6 +50,27 @@ class _Equals {
|
| _Equals(this.equals);
|
| }
|
|
|
| +class SyntheticInvocation implements Invocation {
|
| + static const int METHOD = 0x00;
|
| + static const int GETTER = 0x01;
|
| + static const int SETTER = 0x02;
|
| + final Symbol memberName;
|
| + final List positionalArguments;
|
| + final Map namedArguments;
|
| + final int _type;
|
| + const SyntheticInvocation(this.memberName,
|
| + this.positionalArguments,
|
| + this.namedArguments,
|
| + this._type);
|
| + bool get isMethod => _type == METHOD;
|
| +
|
| + bool get isGetter => _type == GETTER;
|
| +
|
| + bool get isSetter => _type == SETTER;
|
| +
|
| + bool get isAccessor => isGetter || isSetter;
|
| +}
|
| +
|
| // Parameterization of noSuchMethod.
|
| class NSM {
|
| Function _action;
|
| @@ -53,11 +78,15 @@ class NSM {
|
| noSuchMethod(Invocation i) => _action(i);
|
| }
|
|
|
| +const TO_STRING_INVOCATION = const SyntheticInvocation(
|
| + #toString, const[], const{}, SyntheticInvocation.METHOD);
|
| +
|
| // LikeNSM, but has types Iterable, Set and List to allow it as
|
| // argument to DelegatingIterable/Set/List.
|
| class IterableNSM extends NSM implements Iterable, Set, List, Queue {
|
| IterableNSM(action(Invocation i)) : super(action);
|
| noSuchMethod(Invocation i) => super.noSuchMethod(i); // Silence warnings
|
| + toString() => super.noSuchMethod(TO_STRING_INVOCATION);
|
| }
|
|
|
| // Expector that wraps in DelegatingIterable.
|
| @@ -92,6 +121,7 @@ class QueueExpector extends Expector {
|
| class MapNSM extends NSM implements Map {
|
| MapNSM(action(Invocation i)) : super(action);
|
| noSuchMethod(Invocation i) => super.noSuchMethod(i);
|
| + toString() => super.noSuchMethod(TO_STRING_INVOCATION);
|
| }
|
|
|
| // Expector that wraps in DelegatingMap.
|
| @@ -146,6 +176,7 @@ void main() {
|
| expect.toList(growable: true).equals.toList(growable: true);
|
| expect.toList(growable: false).equals.toList(growable: false);
|
| expect.toSet().equals.toSet();
|
| + expect.toString().equals.toString();
|
| expect.where(func1).equals.where(func1);
|
| }
|
|
|
| @@ -231,6 +262,7 @@ void main() {
|
| expect.putIfAbsent(val, func0).equals.putIfAbsent(val, func0);
|
| expect.remove(val).equals.remove(val);
|
| expect.values.equals.values;
|
| + expect.toString().equals.toString();
|
| }
|
|
|
| test("Iterable", () {
|
|
|