| Index: pkg/matcher/lib/mirror_matchers.dart
|
| diff --git a/pkg/matcher/lib/mirror_matchers.dart b/pkg/matcher/lib/mirror_matchers.dart
|
| deleted file mode 100644
|
| index f397128fc2b74c3cfc97e39c75a7082800ec51cb..0000000000000000000000000000000000000000
|
| --- a/pkg/matcher/lib/mirror_matchers.dart
|
| +++ /dev/null
|
| @@ -1,76 +0,0 @@
|
| -// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -/// The mirror matchers library provides some additional matchers that
|
| -/// make use of `dart:mirrors`.
|
| -library matcher.mirror_matchers;
|
| -
|
| -import 'dart:mirrors';
|
| -
|
| -import 'matcher.dart';
|
| -
|
| -/// Returns a matcher that checks if a class instance has a property
|
| -/// with name [name], and optionally, if that property in turn satisfies
|
| -/// a [matcher].
|
| -Matcher hasProperty(String name, [matcher]) =>
|
| - new _HasProperty(name, matcher == null ? null : wrapMatcher(matcher));
|
| -
|
| -class _HasProperty extends Matcher {
|
| - final String _name;
|
| - final Matcher _matcher;
|
| -
|
| - const _HasProperty(this._name, [this._matcher]);
|
| -
|
| - bool matches(item, Map matchState) {
|
| - var mirror = reflect(item);
|
| - var classMirror = mirror.type;
|
| - var symbol = new Symbol(_name);
|
| - var candidate = classMirror.declarations[symbol];
|
| - if (candidate == null) {
|
| - addStateInfo(matchState, {'reason': 'has no property named "$_name"'});
|
| - return false;
|
| - }
|
| - bool isInstanceField = candidate is VariableMirror && !candidate.isStatic;
|
| - bool isInstanceGetter =
|
| - candidate is MethodMirror && candidate.isGetter && !candidate.isStatic;
|
| - if (!(isInstanceField || isInstanceGetter)) {
|
| - addStateInfo(matchState, {'reason':
|
| - 'has a member named "$_name", but it is not an instance property'});
|
| - return false;
|
| - }
|
| - if (_matcher == null) return true;
|
| - var result = mirror.getField(symbol);
|
| - var resultMatches = _matcher.matches(result.reflectee, matchState);
|
| - if (!resultMatches) {
|
| - addStateInfo(matchState, {'value': result.reflectee});
|
| - }
|
| - return resultMatches;
|
| - }
|
| -
|
| - Description describe(Description description) {
|
| - description.add('has property "$_name"');
|
| - if (_matcher != null) {
|
| - description.add(' which matches ').addDescriptionOf(_matcher);
|
| - }
|
| - return description;
|
| - }
|
| -
|
| - Description describeMismatch(item, Description mismatchDescription,
|
| - Map matchState, bool verbose) {
|
| - var reason = matchState == null ? null : matchState['reason'];
|
| - if (reason != null) {
|
| - mismatchDescription.add(reason);
|
| - } else {
|
| - mismatchDescription.add('has property "$_name" with value ').
|
| - addDescriptionOf(matchState['value']);
|
| - var innerDescription = new StringDescription();
|
| - _matcher.describeMismatch(matchState['value'], innerDescription,
|
| - matchState['state'], verbose);
|
| - if (innerDescription.length > 0) {
|
| - mismatchDescription.add(' which ').add(innerDescription.toString());
|
| - }
|
| - }
|
| - return mismatchDescription;
|
| - }
|
| -}
|
|
|