// Copyright (c) 2011, 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.

/// @assertion StreamController({void onListen(), void onPause(),
///                  void onResume(), dynamic onCancel(), bool sync: false})
/// The onListen callback is called when the stream receives its listener
/// and onCancel when the listener ends its subscription.
///
/// @description Checks that the onListen function is called when the stream
/// receives its listener.
/// @author kaigorodov

import "dart:async";
import "../../../Utils/expect.dart";

main() {
  bool onListenCalled = false;
  asyncStart();
  StreamController controller = new StreamController(
    onListen: () {
      onListenCalled = true;
      asyncEnd();
    }
  );

  Expect.isFalse(onListenCalled);
  StreamSubscription subs = controller.stream.listen((event) {});
  Expect.isTrue(onListenCalled);
}
