library angel_framework.test.common; import 'package:platform_core/core.dart'; import 'package:matcher/matcher.dart'; class Todo extends Model { String? text; String? over; Todo({this.text, this.over}); Map toJson() { return { 'text': text, 'over': over, }; } } class BookService extends Service { @override Future index([params]) async { print('Book params: $params'); return [ {'foo': 'bar'} ]; } } void incrementTodoTimes(e) { IncrementService.times++; } @Hooks(before: [incrementTodoTimes]) class IncrementService extends Service { static int times = 0; @override @Hooks(after: [incrementTodoTimes]) Future index([params]) async => []; } class IsInstanceOf implements Matcher { const IsInstanceOf(); @override Description describeMismatch( item, Description mismatchDescription, Map matchState, bool verbose) { return mismatchDescription.add('$item is not an instance of $T'); } @override Description describe(Description description) { return description.add('is an instance of $T'); } @override bool matches(item, Map matchState) => item is T; }