// 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.broadcast({void onListen(), void onCancel(),
///                                       bool sync: false})
/// If sync is true, the returned stream controller is a
/// SynchronousStreamController, and must be used with the care and attention
/// necessary to not break the Stream contract. See Completer.sync for some
/// explanations on when a synchronous dispatching can be used. If in doubt,
/// keep the controller non-sync.
///
/// @description Checks that if sync is true, instance of
/// SynchronousStreamController is created
/// @author a.semenov@unipro.ru

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

main() {
  StreamController streamController = new StreamController(sync: true);
  Expect.isTrue(streamController is SynchronousStreamController);
  streamController.close();
}
