Index: samples/tests/samples/src/lib/observable/ObservableValueTests.dart |
=================================================================== |
--- samples/tests/samples/src/lib/observable/ObservableValueTests.dart (revision 0) |
+++ samples/tests/samples/src/lib/observable/ObservableValueTests.dart (revision 0) |
@@ -0,0 +1,42 @@ |
+// Copyright (c) 2011, 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. |
+ |
+testObservableValue() { |
+ test('ObservableValue', () { |
+ final value = new ObservableValue<String>('initial'); |
+ expect(value.value).equals('initial'); |
+ |
+ // Set value. |
+ value.value = 'new'; |
+ expect(value.value).equals('new'); |
+ |
+ // Change event is sent when value is changed. |
+ EventSummary result = null; |
+ value.addChangeListener((summary) { |
+ expect(result).isNull(); |
+ result = summary; |
+ expect(result).isNotNull(); |
+ }); |
+ |
+ value.value = 'newer'; |
+ |
+ expect(result).isNotNull(); |
+ expect(result.events.length).equals(1); |
+ validateUpdate(result.events[0], value, 'value', null, 'newer', 'new'); |
+ }); |
+ |
+ test('does not raise event if unchanged', () { |
+ final value = new ObservableValue<String>('foo'); |
+ expect(value.value).equals('foo'); |
+ |
+ bool called = false; |
+ value.addChangeListener((summary) { called = true; }); |
+ |
+ // Set it to the same value. |
+ value.value = 'foo'; |
+ |
+ // Should not have gotten an event. |
+ expect(called).equals(false); |
+ }); |
+} |