OLD | NEW |
---|---|
(Empty) | |
1 // Copyright (c) 2014, 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 "package:collection/collection.dart"; | |
6 import "package:unittest/unittest.dart"; | |
7 | |
8 void main() { | |
9 group("with an empty canonicalized map", () { | |
10 var map; | |
11 setUp(() { | |
12 map = new CanonicalizedMap<int, String, String>((key) => int.parse(key)); | |
Lasse Reichstein Nielsen
2014/07/01 09:18:15
"(key) => int.parse(key)" could be just "int.parse
nweiz
2014/07/01 21:21:44
Done.
| |
13 }); | |
14 | |
15 test("canonicalizes keys on set and get", () { | |
16 map["1"] = "value"; | |
17 expect(map["01"], equals("value")); | |
18 }); | |
19 | |
20 test("canonicalizes keys for addAll", () { | |
21 map.addAll({ | |
22 "1": "value 1", | |
23 "2": "value 2", | |
24 "3": "value 3" | |
25 }); | |
26 expect(map["01"], equals("value 1")); | |
27 expect(map["02"], equals("value 2")); | |
28 expect(map["03"], equals("value 3")); | |
29 }); | |
30 | |
31 test("uses the final value for addAll collisions", () { | |
32 map.addAll({ | |
33 "1": "value 1", | |
34 "01": "value 2", | |
35 "001": "value 3" | |
36 }); | |
37 expect(map.length, equals(1)); | |
38 expect(map["0001"], equals("value 3")); | |
39 }); | |
40 | |
41 test("clear clears the map", () { | |
42 map.addAll({ | |
43 "1": "value 1", | |
44 "2": "value 2", | |
45 "3": "value 3" | |
46 }); | |
47 expect(map, isNot(isEmpty)); | |
48 map.clear(); | |
49 expect(map, isEmpty); | |
50 }); | |
51 | |
52 test("canonicalizes keys for containsKey", () { | |
53 map["1"] = "value"; | |
54 expect(map.containsKey("01"), isTrue); | |
55 expect(map.containsKey("2"), isFalse); | |
56 }); | |
57 | |
58 test("canonicalizes keys for putIfAbsent", () { | |
59 map["1"] = "value"; | |
60 expect(map.putIfAbsent("01", () => throw "shouldn't run"), | |
61 equals("value")); | |
Lasse Reichstein Nielsen
2014/07/01 09:18:15
indent to '('?
nweiz
2014/07/01 21:21:44
Done.
| |
62 expect(map.putIfAbsent("2", () => "new value"), equals("new value")); | |
63 }); | |
64 | |
65 test("canonicalizes keys for remove", () { | |
66 map["1"] = "value"; | |
67 expect(map.remove("2"), isNull); | |
68 expect(map.remove("01"), equals("value")); | |
69 expect(map, isEmpty); | |
70 }); | |
71 | |
72 test("containsValue returns whether a value is in the map", () { | |
73 map["1"] = "value"; | |
74 expect(map.containsValue("value"), isTrue); | |
75 expect(map.containsValue("not value"), isFalse); | |
76 }); | |
77 | |
78 test("isEmpty returns whether the map is empty", () { | |
79 expect(map.isEmpty, isTrue); | |
80 map["1"] = "value"; | |
81 expect(map.isEmpty, isFalse); | |
82 map.remove("01"); | |
83 expect(map.isEmpty, isTrue); | |
84 }); | |
85 | |
86 test("isNotEmpty returns whether the map isn't empty", () { | |
87 expect(map.isNotEmpty, isFalse); | |
88 map["1"] = "value"; | |
89 expect(map.isNotEmpty, isTrue); | |
90 map.remove("01"); | |
91 expect(map.isNotEmpty, isFalse); | |
92 }); | |
93 | |
94 test("length returns the number of pairs in the map", () { | |
95 expect(map.length, equals(0)); | |
96 map["1"] = "value 1"; | |
97 expect(map.length, equals(1)); | |
98 map["01"] = "value 01"; | |
99 expect(map.length, equals(1)); | |
100 map["02"] = "value 02"; | |
101 expect(map.length, equals(2)); | |
102 }); | |
103 | |
104 test("uses original keys for keys", () { | |
105 map["001"] = "value 1"; | |
106 map["02"] = "value 2"; | |
107 expect(map.keys, equals(["001", "02"])); | |
108 }); | |
109 | |
110 test("uses original keys for forEach", () { | |
111 map["001"] = "value 1"; | |
112 map["02"] = "value 2"; | |
113 | |
114 var keys = []; | |
115 map.forEach((key, value) => keys.add(key)); | |
116 expect(keys, equals(["001", "02"])); | |
117 }); | |
118 | |
119 test("values returns all values in the map", () { | |
120 map.addAll({ | |
121 "1": "value 1", | |
122 "01": "value 01", | |
123 "2": "value 2", | |
124 "03": "value 03" | |
125 }); | |
126 | |
127 expect(map.values, equals(["value 01", "value 2", "value 03"])); | |
128 }); | |
129 }); | |
130 | |
131 group("CanonicalizedMap.from", () { | |
132 test("canonicalizes its keys", () { | |
133 var map = new CanonicalizedMap.from({ | |
134 "1": "value 1", | |
135 "2": "value 2", | |
136 "3": "value 3" | |
137 }, (key) => int.parse(key)); | |
138 expect(map["01"], equals("value 1")); | |
139 expect(map["02"], equals("value 2")); | |
140 expect(map["03"], equals("value 3")); | |
141 }); | |
142 | |
143 test("uses the final value for collisions", () { | |
144 var map = new CanonicalizedMap.from({ | |
145 "1": "value 1", | |
146 "01": "value 2", | |
147 "001": "value 3" | |
148 }, (key) => int.parse(key)); | |
149 expect(map.length, equals(1)); | |
150 expect(map["0001"], equals("value 3")); | |
151 }); | |
152 }); | |
153 } | |
OLD | NEW |