// 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.

// @dart = 2.9

/// @assertion Stream<T> asBroadcastStream (
///   {void onListen(StreamSubscription<T> subscription),
///    void onCancel(StreamSubscription<T> subscription)})
/// Returns a multi-subscription stream that produces the same events as this.
///
/// @description Checks Stream interface methods
/// @author a.semenov@unipro.ru

library asBroadcastStream_A05_t01;
import "dart:async";
import "../../../Utils/expect.dart";
import "allTests_A01.lib.dart" as StreamTests;

void test(CreateStreamFunction create) {
  Stream s = create([]);
  if (!s.isBroadcast){
    StreamTests.test(<T>(Iterable<T> data) => create(data).asBroadcastStream());
  }
}
