// Copyright (c) 2016, 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 const Stream.empty()
 * Creates an empty broadcast stream.
 *
 * This is a stream which does nothing except sending a done event when it's
 * listened to.
 *
 * @description Checks that Stream.empty() constructor creates empty stream.
 * @author ngl@unipro.ru
 */
import "dart:async";
import "../../../Utils/expect.dart";

main() {
  asyncStart();
  new Stream.empty().listen(
    (_) {
      Expect.fail("Created stream should be empty");
    },
    onDone: () {
      asyncEnd();
    }
  );
}
