blob: 892bf6d5434b2bfbd30c27f07ea42f7bcf6bec69 [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 factory StreamTransformer(StreamSubscription<T>
/// transformer(Stream<S> stream, bool cancelOnError))
/// Creates a StreamTransformer.
///
/// The transformer closure receives the stream, that was bound, as argument
/// and returns a StreamSubscription. In almost all cases the closure listens
/// itself to the stream that is given as argument.
///
/// @description Checks that transformer will listen to whatever stream the
/// the returned StreamSubscription is created for.
/// @author ilya
import "dart:async";
import "../../../Utils/expect.dart";
main() {
Stream<int> s = new Stream.fromIterable([1]);
StreamTransformer<int, dynamic> tr = new StreamTransformer(
(_, __) {
Stream s2 = new Stream.fromIterable([2]);
return s2.listen(null);
}
);
asyncStart();
s.transform(tr).toList().then(
(x) {
Expect.listEquals([2], x);
asyncEnd();
}
);
}