| // Copyright 2016 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| import 'package:test/test.dart'; |
| import 'package:flutter_driver/src/matcher_util.dart'; |
| |
| void main() { |
| group('match', () { |
| test('matches', () { |
| final _TestMatcher matcher = new _TestMatcher(1); |
| final MatchResult ok = match(1, matcher); |
| expect(ok.hasMatched, isTrue); |
| expect(ok.mismatchDescription, isNull); |
| expect(matcher.matchState1 is Map<dynamic, dynamic>, isTrue); |
| expect(matcher.matchState2, isNull); |
| }); |
| |
| test('mismatches', () { |
| final _TestMatcher matcher = new _TestMatcher(2); |
| final MatchResult fail = match(1, matcher); |
| expect(fail.hasMatched, isFalse); |
| expect(fail.mismatchDescription, 'mismatch!'); |
| expect(matcher.matchState1, matcher.matchState2); |
| }); |
| }); |
| } |
| |
| class _TestMatcher extends Matcher { |
| int expected; |
| Map<dynamic, dynamic> matchState1; |
| Map<dynamic, dynamic> matchState2; |
| |
| _TestMatcher(this.expected); |
| |
| @override |
| bool matches(dynamic item, Map<dynamic, dynamic> matchState) { |
| matchState1 = matchState; |
| return item == expected; |
| } |
| |
| @override |
| Description describeMismatch(dynamic item, Description mismatchDescription, Map<dynamic, dynamic> matchState, bool verbose) { |
| matchState2 = matchState; |
| mismatchDescription.add('mismatch!'); |
| return mismatchDescription; |
| } |
| |
| @override |
| Description describe(Description description) { |
| throw 'not implemented'; |
| } |
| } |