|  | // 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)); | 
|  | int receivedCount = 0; | 
|  | var subscription; | 
|  | subscription = stream.listen(expectAsync((data) { | 
|  | expect(data, isNull); | 
|  | receivedCount++; | 
|  | if (receivedCount == 5) { | 
|  | var future = subscription.cancel(); | 
|  | expect(future, completes); | 
|  | } | 
|  | }, count: 5)); | 
|  | }); | 
|  | } |