// 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. // Test the Stream.single method. library stream_single_test; import 'dart:async'; import 'package:expect/expect.dart'; import 'package:async_helper/async_minitest.dart'; import 'event_helper.dart'; main() { test("single", () { StreamController c = new StreamController(sync: true); Future f = c.stream.single; f.then(expectAsync((v) { Expect.equals(42, v); })); new Events.fromIterable([42]).replay(c); }); test("single empty", () { StreamController c = new StreamController(sync: true); Future f = c.stream.single; f.catchError(expectAsync((error) { Expect.isTrue(error is StateError); })); new Events.fromIterable([]).replay(c); }); test("single error", () { StreamController c = new StreamController(sync: true); Future f = c.stream.single; f.catchError(expectAsync((error) { Expect.equals("error", error); })); Events errorEvents = new Events() ..error("error") ..close(); errorEvents.replay(c); }); test("single error 2", () { StreamController c = new StreamController(sync: true); Future f = c.stream.single; f.catchError(expectAsync((error) { Expect.equals("error", error); })); Events errorEvents = new Events() ..error("error") ..error("error2") ..close(); errorEvents.replay(c); }); test("single error 3", () { StreamController c = new StreamController(sync: true); Future f = c.stream.single; f.catchError(expectAsync((error) { Expect.equals("error", error); })); Events errorEvents = new Events() ..add(499) ..error("error") ..close(); errorEvents.replay(c); }); }