blob: 7a58e9fd9f4a0d74665e744e086b6767fd76167f [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 Future<T> elementAt(int index)
* Returns the value of the indexth data event of this stream.
* @description Checks that the future returns the value of the indexth data event of this stream.
* @author kaigorodov
*/
import "dart:async";
import "../../../Utils/expect.dart";
import "IsolateStream.dart" as IsolateStream;
const VAL = 123;
void check(Stream s, int index, var expected) {
asyncStart();
s.elementAt(index).then((actual) {
Expect.equals(expected, actual);
asyncEnd();
});
}
main() {
check(IsolateStream.fromFuture(new Future.sync(() => VAL)), 0, VAL);
check(IsolateStream.fromFuture(new Future(() => VAL)), 0, VAL);
// using completable future
Completer completer = new Completer();
check(IsolateStream.fromFuture(completer.future), 0, VAL);
completer.complete(VAL);
// using fromIterable
check(IsolateStream.fromIterable([1, VAL, 2, 3]), 1, VAL);
for (int k = 0; k < 10; k++) {
Stream s = IsolateStream.fromIterable(
new Iterable.generate(10, (int index) => index));
check(s, k, k);
}
}