| // Copyright (c) 2016, 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:convert/convert.dart'; |
| import 'package:test/test.dart'; |
| |
| void main() { |
| var sink; |
| setUp(() { |
| sink = new AccumulatorSink<int>(); |
| }); |
| |
| test("provides access to events as they're added", () { |
| expect(sink.events, isEmpty); |
| |
| sink.add(1); |
| expect(sink.events, equals([1])); |
| |
| sink.add(2); |
| expect(sink.events, equals([1, 2])); |
| |
| sink.add(3); |
| expect(sink.events, equals([1, 2, 3])); |
| }); |
| |
| test("clear() clears the events", () { |
| sink..add(1)..add(2)..add(3); |
| expect(sink.events, equals([1, 2, 3])); |
| |
| sink.clear(); |
| expect(sink.events, isEmpty); |
| |
| sink..add(4)..add(5)..add(6); |
| expect(sink.events, equals([4, 5, 6])); |
| }); |
| |
| test("indicates whether the sink is closed", () { |
| expect(sink.isClosed, isFalse); |
| sink.close(); |
| expect(sink.isClosed, isTrue); |
| }); |
| |
| test("doesn't allow add() to be called after close()", () { |
| sink.close(); |
| expect(() => sink.add(1), throwsStateError); |
| }); |
| } |