| OLD | NEW | 
| (Empty) |  | 
 |   1 // Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file | 
 |   2 // for details. All rights reserved. Use of this source code is governed by a | 
 |   3 // BSD-style license that can be found in the LICENSE file. | 
 |   4  | 
 |   5 import "dart:async"; | 
 |   6  | 
 |   7 import "package:async/async.dart"; | 
 |   8 import "package:test/test.dart"; | 
 |   9  | 
 |  10 import "utils.dart"; | 
 |  11  | 
 |  12 main() { | 
 |  13   test("calls the callback when the stream is listened", () async { | 
 |  14     var callbackCalled = false; | 
 |  15     var stream = new LazyStream(expectAsync(() { | 
 |  16       callbackCalled = true; | 
 |  17       return new Stream.empty(); | 
 |  18     })); | 
 |  19  | 
 |  20     await flushMicrotasks(); | 
 |  21     expect(callbackCalled, isFalse); | 
 |  22  | 
 |  23     stream.listen(null); | 
 |  24     expect(callbackCalled, isTrue); | 
 |  25   }); | 
 |  26  | 
 |  27   test("forwards to a synchronously-provided stream", () async { | 
 |  28     var controller = new StreamController<int>(); | 
 |  29     var stream = new LazyStream(expectAsync(() => controller.stream)); | 
 |  30  | 
 |  31     var events = []; | 
 |  32     stream.listen(events.add); | 
 |  33  | 
 |  34     controller.add(1); | 
 |  35     await flushMicrotasks(); | 
 |  36     expect(events, equals([1])); | 
 |  37  | 
 |  38     controller.add(2); | 
 |  39     await flushMicrotasks(); | 
 |  40     expect(events, equals([1, 2])); | 
 |  41  | 
 |  42     controller.add(3); | 
 |  43     await flushMicrotasks(); | 
 |  44     expect(events, equals([1, 2, 3])); | 
 |  45  | 
 |  46     controller.close(); | 
 |  47   }); | 
 |  48  | 
 |  49   test("forwards to an asynchronously-provided stream", () async { | 
 |  50     var controller = new StreamController<int>(); | 
 |  51     var stream = new LazyStream(expectAsync(() async => controller.stream)); | 
 |  52  | 
 |  53     var events = []; | 
 |  54     stream.listen(events.add); | 
 |  55  | 
 |  56     controller.add(1); | 
 |  57     await flushMicrotasks(); | 
 |  58     expect(events, equals([1])); | 
 |  59  | 
 |  60     controller.add(2); | 
 |  61     await flushMicrotasks(); | 
 |  62     expect(events, equals([1, 2])); | 
 |  63  | 
 |  64     controller.add(3); | 
 |  65     await flushMicrotasks(); | 
 |  66     expect(events, equals([1, 2, 3])); | 
 |  67  | 
 |  68     controller.close(); | 
 |  69   }); | 
 |  70  | 
 |  71   test("a lazy stream can't be listened to multiple times", () { | 
 |  72     var stream = new LazyStream(expectAsync(() => new Stream.empty())); | 
 |  73     expect(stream.isBroadcast, isFalse); | 
 |  74  | 
 |  75     stream.listen(null); | 
 |  76     expect(() => stream.listen(null), throwsStateError); | 
 |  77     expect(() => stream.listen(null), throwsStateError); | 
 |  78   }); | 
 |  79  | 
 |  80   test("a lazy stream can't be listened to from within its callback", () { | 
 |  81     var stream; | 
 |  82     stream = new LazyStream(expectAsync(() { | 
 |  83       expect(() => stream.listen(null), throwsStateError); | 
 |  84       return new Stream.empty(); | 
 |  85     })); | 
 |  86     stream.listen(null); | 
 |  87   }); | 
 |  88 } | 
| OLD | NEW |