From 8aacc288ceddf0357d2fb8222b58bd13c4d7c7b3 Mon Sep 17 00:00:00 2001 From: xster Date: Wed, 12 Apr 2017 23:09:40 -0700 Subject: [PATCH] Simplify change notifier toString and handle nulls (#9368) --- .../lib/src/foundation/change_notifier.dart | 10 +------ .../test/foundation/change_notifier_test.dart | 29 +++++++++++++++++++ 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/packages/flutter/lib/src/foundation/change_notifier.dart b/packages/flutter/lib/src/foundation/change_notifier.dart index b1eb40cc4e..2fa6d49947 100644 --- a/packages/flutter/lib/src/foundation/change_notifier.dart +++ b/packages/flutter/lib/src/foundation/change_notifier.dart @@ -161,15 +161,7 @@ class _MergingListenable extends ChangeNotifier { @override String toString() { - final StringBuffer buffer = new StringBuffer(); - buffer.write('Listenable.merge(['); - for (int i = 0; i < _children.length; ++i) { - buffer.write(_children[i].toString()); - if (i < _children.length - 1) - buffer.write(', '); - } - buffer.write('])'); - return buffer.toString(); + return 'Listenable.merge([${_children.join(", ")}])'; } } diff --git a/packages/flutter/test/foundation/change_notifier_test.dart b/packages/flutter/test/foundation/change_notifier_test.dart index 73e036e82e..759516a137 100644 --- a/packages/flutter/test/foundation/change_notifier_test.dart +++ b/packages/flutter/test/foundation/change_notifier_test.dart @@ -206,4 +206,33 @@ void main() { notifier.value = 3.0; expect(log, isEmpty); }); + + test('Listenable.merge toString', () { + final TestNotifier source1 = new TestNotifier(); + final TestNotifier source2 = new TestNotifier(); + + ChangeNotifier listenableUnderTest = new Listenable.merge([]); + expect(listenableUnderTest.toString(), 'Listenable.merge([])'); + + listenableUnderTest = new Listenable.merge([null]); + expect(listenableUnderTest.toString(), 'Listenable.merge([null])'); + + listenableUnderTest = new Listenable.merge([source1]); + expect( + listenableUnderTest.toString(), + "Listenable.merge([Instance of 'TestNotifier'])", + ); + + listenableUnderTest = new Listenable.merge([source1, source2]); + expect( + listenableUnderTest.toString(), + "Listenable.merge([Instance of 'TestNotifier', Instance of 'TestNotifier'])", + ); + + listenableUnderTest = new Listenable.merge([null, source2]); + expect( + listenableUnderTest.toString(), + "Listenable.merge([null, Instance of 'TestNotifier'])", + ); + }); }