| Index: test/typed_wrapper/queue_test.dart
|
| diff --git a/test/typed_wrapper/queue_test.dart b/test/typed_wrapper/queue_test.dart
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..dc93321bbab139562b5d8f16a5328bd828a25c1f
|
| --- /dev/null
|
| +++ b/test/typed_wrapper/queue_test.dart
|
| @@ -0,0 +1,141 @@
|
| +// 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.
|
| +
|
| +import "dart:collection";
|
| +
|
| +import "package:collection/collection.dart";
|
| +import "package:test/test.dart";
|
| +
|
| +import '../utils.dart';
|
| +
|
| +void main() {
|
| + group("with valid types, forwards", () {
|
| + var wrapper;
|
| + var emptyWrapper;
|
| + setUp(() {
|
| + wrapper = DelegatingQueue.typed/*<int>*/(
|
| + new Queue<Object>.from([1, 2, 3, 4, 5]));
|
| + emptyWrapper = DelegatingQueue.typed/*<int>*/(new Queue<Object>());
|
| + });
|
| +
|
| + test("add()", () {
|
| + wrapper.add(6);
|
| + wrapper.add(7);
|
| + expect(wrapper, equals([1, 2, 3, 4, 5, 6, 7]));
|
| + });
|
| +
|
| + test("addAll()", () {
|
| + wrapper.addAll([6, 7, 8]);
|
| + expect(wrapper, equals([1, 2, 3, 4, 5, 6, 7, 8]));
|
| + });
|
| +
|
| + test("addFirst()", () {
|
| + wrapper.addFirst(6);
|
| + wrapper.addFirst(7);
|
| + expect(wrapper, equals([7, 6, 1, 2, 3, 4, 5]));
|
| + });
|
| +
|
| + test("addLast()", () {
|
| + wrapper.addLast(6);
|
| + wrapper.addLast(7);
|
| + expect(wrapper, equals([1, 2, 3, 4, 5, 6, 7]));
|
| + });
|
| +
|
| + test("clear()", () {
|
| + wrapper.clear();
|
| + expect(wrapper, isEmpty);
|
| + });
|
| +
|
| + test("remove()", () {
|
| + expect(wrapper.remove(3), isTrue);
|
| + expect(wrapper, equals([1, 2, 4, 5]));
|
| +
|
| + expect(wrapper.remove(3), isFalse);
|
| + expect(wrapper.remove("foo"), isFalse);
|
| + });
|
| +
|
| + test("removeWhere()", () {
|
| + wrapper.removeWhere((i) => i.isOdd);
|
| + expect(wrapper, equals([2, 4]));
|
| + });
|
| +
|
| + test("retainWhere()", () {
|
| + wrapper.retainWhere((i) => i.isOdd);
|
| + expect(wrapper, equals([1, 3, 5]));
|
| + });
|
| +
|
| + test("removeLast()", () {
|
| + expect(wrapper.removeLast(), equals(5));
|
| + expect(wrapper, equals([1, 2, 3, 4]));
|
| +
|
| + expect(() => emptyWrapper.removeLast(), throwsStateError);
|
| + });
|
| +
|
| + test("removeFirst()", () {
|
| + expect(wrapper.removeFirst(), equals(1));
|
| + expect(wrapper, equals([2, 3, 4, 5]));
|
| +
|
| + expect(() => emptyWrapper.removeFirst(), throwsStateError);
|
| + });
|
| + });
|
| +
|
| + group("with invalid types", () {
|
| + var inner;
|
| + var wrapper;
|
| + setUp(() {
|
| + inner = new Queue<Object>.from(["foo", "bar", "baz"]);
|
| + wrapper = DelegatingQueue.typed/*<int>*/(inner);
|
| + });
|
| +
|
| + group("throws a CastError for", () {
|
| + test("removeLast()", () {
|
| + expect(() => wrapper.removeLast(), throwsCastError);
|
| + });
|
| +
|
| + test("removeFirst()", () {
|
| + expect(() => wrapper.removeFirst(), throwsCastError);
|
| + });
|
| +
|
| + test("removeWhere()", () {
|
| + expect(() => wrapper.removeWhere(expectAsync((_) => false, count: 0)),
|
| + throwsCastError);
|
| + });
|
| +
|
| + test("retainWhere()", () {
|
| + expect(() => wrapper.retainWhere(expectAsync((_) => false, count: 0)),
|
| + throwsCastError);
|
| + });
|
| + });
|
| +
|
| + group("doesn't throw a CastError for", () {
|
| + test("add()", () {
|
| + wrapper.add(6);
|
| + wrapper.add(7);
|
| + expect(inner, equals(["foo", "bar", "baz", 6, 7]));
|
| + });
|
| +
|
| + test("addAll()", () {
|
| + wrapper.addAll([6, 7, 8]);
|
| + expect(inner, equals(["foo", "bar", "baz", 6, 7, 8]));
|
| + });
|
| +
|
| + test("addFirst()", () {
|
| + wrapper.addFirst(6);
|
| + wrapper.addFirst(7);
|
| + expect(inner, equals([7, 6, "foo", "bar", "baz"]));
|
| + });
|
| +
|
| + test("addLast()", () {
|
| + wrapper.addLast(6);
|
| + wrapper.addLast(7);
|
| + expect(inner, equals(["foo", "bar", "baz", 6, 7]));
|
| + });
|
| +
|
| + test("clear()", () {
|
| + wrapper.clear();
|
| + expect(wrapper, isEmpty);
|
| + });
|
| + });
|
| + }, skip: "Re-enable this when test can run DDC (test#414).");
|
| +}
|
|
|