// Copyright (c) 2016, 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 void removeWhere(bool test(E element))
 * The [test] function must not throw or modify the queue.
 *
 * @description Checks case when test function throws exception
 * @author iarkh@unipro.ru
 * @issue 27920
 */
import "dart:collection";
import "../../../Utils/expect.dart";

bool testThrow(var element) {
  if(element < 8) {
    return true;
  } else {
    throw new Error();
  }
}

main() {
  List list = [1, 5, 3, 4, 9, 5, 6];
  DoubleLinkedQueue queue = new DoubleLinkedQueue.from(list);

  // See issue #27920 for more details. It's unclear from the Specification
  // how result queue should look when exception is thrown.
  Expect.throws(() { queue.removeWhere(testThrow); }, (e) => e is Error);
  Expect.isTrue(queue.length >= 0);
}
