Chromium Code Reviews| Index: pkg/barback/test/stream_replayer_test.dart |
| diff --git a/pkg/barback/test/stream_replayer_test.dart b/pkg/barback/test/stream_replayer_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..49f60bad5c3352b55f91a6c75b5c0de9277ee4a4 |
| --- /dev/null |
| +++ b/pkg/barback/test/stream_replayer_test.dart |
| @@ -0,0 +1,57 @@ |
| +// Copyright (c) 2013, 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. |
| + |
| +library barback.test.stream_replayer_test; |
| + |
| +import 'dart:async'; |
| + |
| +import 'package:barback/src/stream_replayer.dart'; |
| +import 'package:unittest/unittest.dart'; |
| + |
| +import 'utils.dart'; |
| + |
| +main() { |
| + initConfig(); |
| + |
| + test("a replay that's retrieved before the stream is finished replays the " |
| + "stream", () { |
| + var controller = new StreamController<int>(); |
| + var replay = new StreamReplayer<int>(controller.stream).getReplay(); |
| + |
| + controller.add(1); |
| + controller.add(2); |
| + controller.add(3); |
| + controller.close(); |
| + |
| + expect(replay.toList(), completion(equals([1, 2, 3]))); |
| + }); |
| + |
| + test("a replay that's retrieved after the stream is finished replays the " |
| + "stream", () { |
| + var controller = new StreamController<int>(); |
| + var replayer = new StreamReplayer<int>(controller.stream); |
| + |
| + controller.add(1); |
| + controller.add(2); |
| + controller.add(3); |
| + controller.close(); |
| + |
| + expect(replayer.getReplay().toList(), completion(equals([1, 2, 3]))); |
| + }); |
| + |
| + test("multiple replays each replay the stream", () { |
| + var controller = new StreamController<int>(); |
| + var replayer = new StreamReplayer<int>(controller.stream); |
| + |
| + var replay1 = replayer.getReplay(); |
| + controller.add(1); |
| + controller.add(2); |
| + controller.add(3); |
| + controller.close(); |
| + var replay2 = replayer.getReplay(); |
| + |
| + expect(replay1.toList(), completion(equals([1, 2, 3]))); |
| + expect(replay2.toList(), completion(equals([1, 2, 3]))); |
| + }); |
|
Bob Nystrom
2013/08/27 17:20:29
Add a test that the replayed stream doesn't close
nweiz
2013/08/27 17:47:52
Done.
|
| +} |