Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: test/typed_wrapper/queue_test.dart

Issue 1840573002: Add type-asserting wrapper constructors. (Closed) Base URL: git@github.com:dart-lang/collection@master
Patch Set: Code review changes Created 4 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/typed_wrapper/map_test.dart ('k') | test/typed_wrapper/set_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file.
4
5 import "dart:collection";
6
7 import "package:collection/collection.dart";
8 import "package:test/test.dart";
9
10 import '../utils.dart';
11
12 void main() {
13 group("with valid types, forwards", () {
14 var wrapper;
15 var emptyWrapper;
16 setUp(() {
17 wrapper = DelegatingQueue.typed/*<int>*/(
18 new Queue<Object>.from([1, 2, 3, 4, 5]));
19 emptyWrapper = DelegatingQueue.typed/*<int>*/(new Queue<Object>());
20 });
21
22 test("add()", () {
23 wrapper.add(6);
24 wrapper.add(7);
25 expect(wrapper, equals([1, 2, 3, 4, 5, 6, 7]));
26 });
27
28 test("addAll()", () {
29 wrapper.addAll([6, 7, 8]);
30 expect(wrapper, equals([1, 2, 3, 4, 5, 6, 7, 8]));
31 });
32
33 test("addFirst()", () {
34 wrapper.addFirst(6);
35 wrapper.addFirst(7);
36 expect(wrapper, equals([7, 6, 1, 2, 3, 4, 5]));
37 });
38
39 test("addLast()", () {
40 wrapper.addLast(6);
41 wrapper.addLast(7);
42 expect(wrapper, equals([1, 2, 3, 4, 5, 6, 7]));
43 });
44
45 test("clear()", () {
46 wrapper.clear();
47 expect(wrapper, isEmpty);
48 });
49
50 test("remove()", () {
51 expect(wrapper.remove(3), isTrue);
52 expect(wrapper, equals([1, 2, 4, 5]));
53
54 expect(wrapper.remove(3), isFalse);
55 expect(wrapper.remove("foo"), isFalse);
56 });
57
58 test("removeWhere()", () {
59 wrapper.removeWhere((i) => i.isOdd);
60 expect(wrapper, equals([2, 4]));
61 });
62
63 test("retainWhere()", () {
64 wrapper.retainWhere((i) => i.isOdd);
65 expect(wrapper, equals([1, 3, 5]));
66 });
67
68 test("removeLast()", () {
69 expect(wrapper.removeLast(), equals(5));
70 expect(wrapper, equals([1, 2, 3, 4]));
71
72 expect(() => emptyWrapper.removeLast(), throwsStateError);
73 });
74
75 test("removeFirst()", () {
76 expect(wrapper.removeFirst(), equals(1));
77 expect(wrapper, equals([2, 3, 4, 5]));
78
79 expect(() => emptyWrapper.removeFirst(), throwsStateError);
80 });
81 });
82
83 group("with invalid types", () {
84 var inner;
85 var wrapper;
86 setUp(() {
87 inner = new Queue<Object>.from(["foo", "bar", "baz"]);
88 wrapper = DelegatingQueue.typed/*<int>*/(inner);
89 });
90
91 group("throws a CastError for", () {
92 test("removeLast()", () {
93 expect(() => wrapper.removeLast(), throwsCastError);
94 });
95
96 test("removeFirst()", () {
97 expect(() => wrapper.removeFirst(), throwsCastError);
98 });
99
100 test("removeWhere()", () {
101 expect(() => wrapper.removeWhere(expectAsync((_) => false, count: 0)),
102 throwsCastError);
103 });
104
105 test("retainWhere()", () {
106 expect(() => wrapper.retainWhere(expectAsync((_) => false, count: 0)),
107 throwsCastError);
108 });
109 });
110
111 group("doesn't throw a CastError for", () {
112 test("add()", () {
113 wrapper.add(6);
114 wrapper.add(7);
115 expect(inner, equals(["foo", "bar", "baz", 6, 7]));
116 });
117
118 test("addAll()", () {
119 wrapper.addAll([6, 7, 8]);
120 expect(inner, equals(["foo", "bar", "baz", 6, 7, 8]));
121 });
122
123 test("addFirst()", () {
124 wrapper.addFirst(6);
125 wrapper.addFirst(7);
126 expect(inner, equals([7, 6, "foo", "bar", "baz"]));
127 });
128
129 test("addLast()", () {
130 wrapper.addLast(6);
131 wrapper.addLast(7);
132 expect(inner, equals(["foo", "bar", "baz", 6, 7]));
133 });
134
135 test("clear()", () {
136 wrapper.clear();
137 expect(wrapper, isEmpty);
138 });
139 });
140 }, skip: "Re-enable this when test can run DDC (test#414).");
141 }
OLDNEW
« no previous file with comments | « test/typed_wrapper/map_test.dart ('k') | test/typed_wrapper/set_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698