blob: 68b5730e9872b031ae03a4e94275e52c73aa2ef5 [file] [log] [blame]
// 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 Stream.fromFuture(Future<T> future)
* When the future completes, the stream will fire one event, either data or
* error, and then close with a done-event.
* @description Checks that if the future completes with error, the stream will
* fire one error event, and then close with a done-event.
* @author kaigorodov
*/
import "dart:async";
import "../../../Utils/expect.dart";
main() {
Error error = new Error();
// using immediate sync future
void throwError() {throw error;}
AsyncExpect.events([], [error], new Stream.fromFuture(new Future.sync(throwError)));
// using immediate future
AsyncExpect.events([], [error], new Stream.fromFuture(new Future(throwError)));
// using completable future
Completer completer = new Completer();
AsyncExpect.events([], [123], new Stream.fromFuture(completer.future));
completer.completeError(123);
AsyncExpect.events([], [3.14], new Stream.fromFuture(new Future.error(3.14)));
}