// Copyright (c) 2017, 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. import 'package:collection/collection.dart'; import 'simple_object.dart'; abstract class KitchenSink { int get ctorValidatedNo42; DateTime dateTime; Iterable get iterable; Iterable get dynamicIterable; Iterable get objectIterable; Iterable get intIterable; Iterable get dateTimeIterable; List list; List dynamicList; List objectList; List intList; List dateTimeList; Set set; Set dynamicSet; Set objectSet; Set intSet; Set dateTimeSet; Map map; Map stringStringMap; Map dynamicIntMap; Map objectDateTimeMap; List>>>> crazyComplex; Map val; bool writeNotNull; String string; SimpleObject get simpleObject; int validatedPropertyNo42; Map toJson(); } //TODO(kevmoo) - finish this... bool sinkEquals(KitchenSink a, Object other) => other is KitchenSink && a.ctorValidatedNo42 == other.ctorValidatedNo42 && a.dateTime == other.dateTime && _deepEquals(a.iterable, other.iterable) && _deepEquals(a.dynamicIterable, other.dynamicIterable) && // objectIterable // intIterable _deepEquals(a.dateTimeIterable, other.dateTimeIterable) && // list // dynamicList // objectList // intList _deepEquals(a.dateTimeList, other.dateTimeList) && // map // stringStringMap // stringIntMap _deepEquals(a.objectDateTimeMap, other.objectDateTimeMap) && _deepEquals(a.crazyComplex, other.crazyComplex) && // val a.writeNotNull == other.writeNotNull && a.string == other.string; bool _deepEquals(Object a, Object b) => const DeepCollectionEquality().equals(a, b);