| Index: pkg/unittest/lib/mirror_matchers.dart
|
| diff --git a/pkg/unittest/lib/mirror_matchers.dart b/pkg/unittest/lib/mirror_matchers.dart
|
| index ad0dfd414e193773a1548b61527f77633a7ed15c..d144554e0339331ac381bc7b2f925a2258907ed3 100644
|
| --- a/pkg/unittest/lib/mirror_matchers.dart
|
| +++ b/pkg/unittest/lib/mirror_matchers.dart
|
| @@ -1,99 +1,12 @@
|
| // Copyright (c) 2013, 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.
|
| - *
|
| - * ## Installing ##
|
| - *
|
| - * Use [pub][] to install this package. Add the following to your `pubspec.yaml`
|
| - * file.
|
| - *
|
| - * dependencies:
|
| - * unittest: any
|
| - *
|
| - * Then run `pub install`.
|
| - *
|
| - * Import this into your Dart code with:
|
| - *
|
| - * import 'package:unittest/mirror_matchers.dart';
|
| - *
|
| - * For more information, see the [unittest package on pub.dartlang.org].
|
| - * (http://pub.dartlang.org/packages/unittest).
|
| - *
|
| - * [pub]: http://pub.dartlang.org
|
| - * [pkg]: http://pub.dartlang.org/packages/mirror_matchers
|
| - */
|
| -library unittest.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;
|
| - }
|
| +/// `unittest.mirror_matchers` has been moved to the `matcher` package.
|
| +///
|
| +/// Add `matcher` to your `pubspec.yaml` file and import it via
|
| +/// `import 'package:matcher/mirror_matchers.dart';`
|
| +@deprecated
|
| +library unittest.mirror_matchers;
|
|
|
| - 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;
|
| - }
|
| -}
|
| +export 'package:matcher/mirror_matchers.dart';
|
|
|