// 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.

// @dart = 2.9

/// @assertion void removeWhere(bool test(E element))
/// ...
/// The [test] function must not throw or modify the queue.
/// @description Checks that if [test] function modifies the queue the exception
/// is thrown and operation stops
/// @issue 26587
/// @author sgrekhov@unipro.ru

library removeWhere_A02_t02;
 
import "dart:collection";
import "../../../Utils/expect.dart";

test(Queue create([Iterable content])) {
  Queue queue = create([-3, -2, -1, 0, 1, 2, 3, -1]);

  bool throwFunction(var element) {
    queue.remove(element);
    return false;
  }

  // A concurrent modification is always thrown if the current entry is removed
  // from the queue during iteration. In case of other modifications result is
  // not predictable (see https://github.com/dart-lang/co19/issues/89)
  // So we are checking this case only
  Expect.throws( () {queue.removeWhere(throwFunction);});
  Expect.iterableEquals([-2, -1, 0, 1, 2, 3, -1], queue);
}
