| // 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. |
| |
| library stream_controller_async_test; |
| |
| import "package:expect/expect.dart"; |
| import 'dart:async'; |
| import 'package:unittest/unittest.dart'; |
| import 'event_helper.dart'; |
| import 'stream_state_helper.dart'; |
| |
| class A { |
| const A(); |
| } |
| |
| class B extends A { |
| const B(); |
| } |
| |
| main() { |
| Events sentEvents = new Events()..close(); |
| |
| // Make sure that lastWhere allows to return instances of types that are |
| // different than the generic type of the stream. |
| test("lastWhere with super class", () { |
| StreamController c = new StreamController<B>(); |
| Future f = c.stream.lastWhere((x) => false, defaultValue: () => const A()); |
| f.then(expectAsync((v) { |
| Expect.equals(const A(), v); |
| })); |
| sentEvents.replay(c); |
| }); |
| } |