| // 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. |
| |
| // Test merging streams. |
| library dart.test.stream_from_iterable; |
| |
| import "dart:async"; |
| import 'package:unittest/unittest.dart'; |
| |
| main() { |
| test("stream-periodic1", () { |
| Stream stream = new Stream.periodic(const Duration(milliseconds: 1), (i) { |
| if (i == 3) throw 42; |
| return i; |
| }); |
| int expected = 0; |
| var subscription; |
| subscription = stream.listen( |
| expectAsync((data) { |
| expect(data, expected++); |
| if (expected == 5) subscription.cancel(); |
| }, count: 4), onError: expectAsync((e, s) { |
| expect(e, 42); |
| expected++; |
| })); |
| }); |
| } |