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

Side by Side Diff: packages/quiver/test/check_test.dart

Issue 1400473008: Roll Observatory packages and add a roll script (Closed) Base URL: git@github.com:dart-lang/observatory_pub_packages.git@master
Patch Set: Created 5 years, 2 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
OLDNEW
(Empty)
1 // Copyright 2014 Google Inc. All Rights Reserved.
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14
15 library quiver.check_test;
16
17 import 'package:quiver/check.dart';
18 import 'package:test/test.dart';
19
20 main() {
21 group('checkArgument', () {
22 group('success', () {
23 test('simple', () => checkArgument(true));
24 test('null message', () => checkArgument(true, message: null));
25 test('string message', () => checkArgument(true, message: 'foo'));
26 test('function message', () =>
27 checkArgument(true, message: () => fail("Shouldn't be called")));
28 });
29
30 group('failure', () {
31 checkArgumentShouldFail(Function f, [String expectedMessage]) {
32 try {
33 f();
34 fail('Should have thrown an ArgumentError');
35 } catch (e) {
36 expect(e, isArgumentError);
37 expect(e.message, expectedMessage);
38 }
39 }
40
41 test('no message',
42 () => checkArgumentShouldFail(() => checkArgument(false)));
43
44 test('failure and simple string message', () => checkArgumentShouldFail(
45 () => checkArgument(false, message: 'message'), 'message'));
46
47 test('failure and null message', () =>
48 checkArgumentShouldFail(() => checkArgument(false, message: null)));
49 test('failure and object as message', () =>
50 checkArgumentShouldFail(() => checkArgument(false, message: 5), '5'));
51 test('failure and message closure returns object',
52 () => checkArgumentShouldFail(
53 () => checkArgument(false, message: () => 5), '5'));
54
55 test('failure and message function', () {
56 int five = 5;
57 checkArgumentShouldFail(
58 () => checkArgument(false, message: () => 'I ate $five pies'),
59 'I ate 5 pies');
60 });
61 });
62 });
63
64 group('checkState', () {
65 group('success', () {
66 test('simple', () => checkState(true));
67 test('null message', () => checkState(true, message: null));
68 test('string message', () => checkState(true, message: 'foo'));
69 test('function message',
70 () => checkState(true, message: () => fail("Shouldn't be called")));
71 });
72
73 group('failure', () {
74 checkStateShouldFail(Function f, [String expectedMessage]) {
75 if (expectedMessage == null) expectedMessage = 'failed precondition';
76 try {
77 f();
78 fail('Should have thrown a StateError');
79 } catch (e) {
80 expect(e, isStateError);
81 expect(e.message, expectedMessage);
82 }
83 }
84
85 test('no message', () => checkStateShouldFail(() => checkState(false)));
86
87 test('failure and simple string message', () => checkStateShouldFail(
88 () => checkState(false, message: 'message'), 'message'));
89
90 test('failure and null message',
91 () => checkStateShouldFail(() => checkState(false, message: null)));
92 test('message closure returns null', () =>
93 checkStateShouldFail(() => checkState(false, message: () => null)));
94
95 test('failure and message function', () {
96 int five = 5;
97 checkStateShouldFail(
98 () => checkState(false, message: () => 'I ate $five pies'),
99 'I ate 5 pies');
100 });
101 });
102 });
103
104 group('checkNotNull', () {
105 group('success', () {
106 test('simple', () => expect(checkNotNull(''), ''));
107 test('string message', () => expect(checkNotNull(5, message: 'foo'), 5));
108 test('function message', () => expect(checkNotNull(true,
109 message: () => fail("Shouldn't be called")), true));
110 });
111
112 group('failure', () {
113 checkNotNullShouldFail(Function f, [String expectedMessage]) {
114 if (expectedMessage == null) expectedMessage = 'null pointer';
115 try {
116 f();
117 fail('Should have thrown an ArgumentError');
118 } catch (e) {
119 expect(e, isArgumentError);
120 expect(e.message, expectedMessage);
121 }
122 }
123
124 test(
125 'no message', () => checkNotNullShouldFail(() => checkNotNull(null)));
126
127 test('simple failure message', () => checkNotNullShouldFail(
128 () => checkNotNull(null, message: 'message'), 'message'));
129
130 test('null message', () =>
131 checkNotNullShouldFail(() => checkNotNull(null, message: null)));
132
133 test('message closure returns null', () => checkNotNullShouldFail(
134 () => checkNotNull(null, message: () => null)));
135
136 test('failure and message function', () {
137 int five = 5;
138 checkNotNullShouldFail(
139 () => checkNotNull(null, message: () => 'I ate $five pies'),
140 'I ate 5 pies');
141 });
142 });
143 });
144
145 group('checkListIndex', () {
146 test('success', () {
147 checkListIndex(0, 1);
148 checkListIndex(0, 1, message: () => fail("shouldn't be called"));
149 checkListIndex(0, 2);
150 checkListIndex(0, 2, message: () => fail("shouldn't be called"));
151 checkListIndex(1, 2);
152 checkListIndex(1, 2, message: () => fail("shouldn't be called"));
153 });
154
155 group('failure', () {
156 checkListIndexShouldFail(int index, int size,
157 [message, String expectedMessage]) {
158 try {
159 checkListIndex(index, size, message: message);
160 fail('Should have thrown a RangeError');
161 } catch (e) {
162 expect(e, isRangeError);
163 expect(e.message, expectedMessage == null
164 ? 'index $index not valid for list of size $size'
165 : expectedMessage);
166 }
167 }
168 test('negative size', () => checkListIndexShouldFail(0, -1));
169 test('negative index', () => checkListIndexShouldFail(-1, 1));
170 test('index too high', () => checkListIndexShouldFail(1, 1));
171 test('zero size', () => checkListIndexShouldFail(0, 0));
172
173 test('with failure message',
174 () => checkListIndexShouldFail(1, 1, 'foo', 'foo'));
175 test('with failure message function', () {
176 int five = 5;
177 checkListIndexShouldFail(
178 1, 1, () => 'I ate $five pies', 'I ate 5 pies');
179 });
180 });
181 });
182 }
OLDNEW
« no previous file with comments | « packages/quiver/test/cache/map_cache_test.dart ('k') | packages/quiver/test/collection/all_tests.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698