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

Side by Side Diff: pkg/analysis_services/test/correction/status_test.dart

Issue 458063002: Initial work on refactorings. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 4 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 | Annotate | Revision Log
OLDNEW
(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 // This code was auto-generated, is not intended to be edited, and is subject to
6 // significant change. Please see the README file for more information.
7
8 library test.services.correction.status;
9
10 import 'package:analysis_services/correction/status.dart';
11 import 'package:analysis_services/search/search_engine.dart';
12 import 'package:analysis_services/src/correction/source_range.dart';
13 import 'package:analysis_testing/abstract_single_unit.dart';
14 import 'package:analysis_testing/reflective_tests.dart';
15 import 'package:analyzer/src/generated/ast.dart';
16 import 'package:analyzer/src/generated/element.dart';
17 import 'package:analyzer/src/generated/source.dart';
18 import 'package:typed_mock/typed_mock.dart';
19 import 'package:unittest/unittest.dart';
20
21
22 main() {
23 groupSep = ' | ';
24 runReflectiveTests(RefactoringStatusContextTest);
25 runReflectiveTests(RefactoringStatusEntryTest);
26 runReflectiveTests(RefactoringStatusTest);
27 }
28
29
30 @ReflectiveTestCase()
31 class RefactoringStatusContextTest extends AbstractSingleUnitTest {
32 void test_new_forElement() {
33 resolveTestUnit('class MyClass {}');
34 Element element = findElement('MyClass');
35 var statusContext = new RefactoringStatusContext.forElement(element);
36 // access
37 expect(statusContext.context, context);
38 expect(statusContext.source, testSource);
39 expect(
40 statusContext.range,
41 rangeStartLength(element.nameOffset, 'MyClass'.length));
42 }
43
44 void test_new_forMatch() {
45 resolveTestUnit('class MyClass {}');
46 Element element = findElement('MyClass');
47 SourceRange range = rangeElementName(element);
48 SearchMatch match = new SearchMatch(null, element, range, true, false);
49 var statusContext = new RefactoringStatusContext.forMatch(match);
50 // access
51 expect(statusContext.context, context);
52 expect(statusContext.source, testSource);
53 expect(statusContext.range, range);
54 }
55
56 void test_new_forNode() {
57 resolveTestUnit('''
58 main() {
59 }
60 ''');
61 AstNode node = findNodeAtString('main');
62 var statusContext = new RefactoringStatusContext.forNode(node);
63 // access
64 expect(statusContext.context, context);
65 expect(statusContext.source, testSource);
66 expect(statusContext.range, rangeNode(node));
67 // toString()
68 expect(
69 statusContext.toString(),
70 '[source=/test.dart, range=[offset=0, length=4]]');
71 }
72
73 void test_new_forUnit() {
74 resolveTestUnit('');
75 SourceRange range = rangeStartLength(10, 20);
76 var statusContext = new RefactoringStatusContext.forUnit(testUnit, range);
77 // access
78 expect(statusContext.context, context);
79 expect(statusContext.source, testSource);
80 expect(statusContext.range, range);
81 // toString()
82 expect(
83 statusContext.toString(),
84 '[source=/test.dart, range=[offset=10, length=20]]');
85 }
86 }
87
88
89 @ReflectiveTestCase()
90 class RefactoringStatusEntryTest {
91 void test_new_withContext() {
92 RefactoringStatusContext context = new _MockRefactoringStatusContext();
93 RefactoringStatusEntry entry =
94 new RefactoringStatusEntry(
95 RefactoringStatusSeverity.ERROR,
96 "my message",
97 context);
98 // access
99 expect(entry.severity, RefactoringStatusSeverity.ERROR);
100 expect(entry.message, 'my message');
101 expect(entry.context, context);
102 // toString()
103 entry.toString();
104 }
105
106 void test_new_withoutContext() {
107 RefactoringStatusEntry entry =
108 new RefactoringStatusEntry(RefactoringStatusSeverity.ERROR, "my message" );
109 // access
110 expect(entry.severity, RefactoringStatusSeverity.ERROR);
111 expect(entry.message, 'my message');
112 expect(entry.context, isNull);
113 // isX
114 expect(entry.isFatalError, isFalse);
115 expect(entry.isError, isTrue);
116 expect(entry.isWarning, isFalse);
117 // toString()
118 entry.toString();
119 }
120 }
121
122
123 @ReflectiveTestCase()
124 class RefactoringStatusTest {
125 void test_addError() {
126 RefactoringStatus refactoringStatus = new RefactoringStatus();
127 // initial state
128 expect(refactoringStatus.severity, RefactoringStatusSeverity.OK);
129 // add ERROR
130 refactoringStatus.addError('msg');
131 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
132 expect(refactoringStatus.isOK, isFalse);
133 expect(refactoringStatus.hasFatalError, isFalse);
134 expect(refactoringStatus.hasError, isTrue);
135 // entries
136 List<RefactoringStatusEntry> entries = refactoringStatus.entries;
137 expect(entries, hasLength(1));
138 expect(entries[0].message, 'msg');
139 // toString()
140 expect(refactoringStatus.toString(), '<ERROR\n\tERROR: msg\n>');
141 }
142
143 void test_addFatalError_withContext() {
144 RefactoringStatusContext context = new _MockRefactoringStatusContext();
145 RefactoringStatus refactoringStatus = new RefactoringStatus();
146 // initial state
147 expect(refactoringStatus.severity, RefactoringStatusSeverity.OK);
148 // add FATAL
149 refactoringStatus.addFatalError('msg', context);
150 expect(refactoringStatus.severity, RefactoringStatusSeverity.FATAL);
151 expect(refactoringStatus.isOK, isFalse);
152 expect(refactoringStatus.hasFatalError, isTrue);
153 expect(refactoringStatus.hasError, isTrue);
154 // entries
155 List<RefactoringStatusEntry> entries = refactoringStatus.entries;
156 expect(entries, hasLength(1));
157 expect(entries[0].message, 'msg');
158 expect(entries[0].context, context);
159 // toString()
160 expect(
161 refactoringStatus.toString(),
Brian Wilkerson 2014/08/11 16:27:47 I'm always hesitant to test things like toString.
scheglov 2014/08/11 18:06:25 Acknowledged.
162 '<FATAL\n\tFATAL: msg; Context: MockRefactoringStatusContext\n>');
163 // add WARNING, resulting severity is still FATAL
164 refactoringStatus.addWarning("warning");
165 expect(refactoringStatus.severity, RefactoringStatusSeverity.FATAL);
166 }
167
168 void test_addFatalError_withoutContext() {
169 RefactoringStatus refactoringStatus = new RefactoringStatus();
170 // initial state
171 expect(refactoringStatus.severity, RefactoringStatusSeverity.OK);
172 // add FATAL
173 refactoringStatus.addFatalError('msg');
174 expect(refactoringStatus.severity, RefactoringStatusSeverity.FATAL);
175 expect(refactoringStatus.isOK, isFalse);
176 expect(refactoringStatus.hasFatalError, isTrue);
177 expect(refactoringStatus.hasError, isTrue);
178 // entries
179 List<RefactoringStatusEntry> entries = refactoringStatus.entries;
180 expect(entries, hasLength(1));
181 expect(entries[0].message, 'msg');
182 expect(entries[0].context, isNull);
183 }
184
185 void test_addWarning() {
186 RefactoringStatus refactoringStatus = new RefactoringStatus();
187 // initial state
188 expect(refactoringStatus.severity, RefactoringStatusSeverity.OK);
189 // add WARNING
190 refactoringStatus.addWarning('msg');
191 expect(refactoringStatus.severity, RefactoringStatusSeverity.WARNING);
192 expect(refactoringStatus.isOK, isFalse);
193 expect(refactoringStatus.hasFatalError, isFalse);
194 expect(refactoringStatus.hasError, isFalse);
195 expect(refactoringStatus.hasWarning, isTrue);
196 // entries
197 List<RefactoringStatusEntry> entries = refactoringStatus.entries;
198 expect(entries, hasLength(1));
199 expect(entries[0].message, 'msg');
200 }
201
202 void test_createErrorStatus() {
203 RefactoringStatusContext context = new _MockRefactoringStatusContext();
204 RefactoringStatus refactoringStatus = createErrorStatus('msg', context);
205 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
206 expect(refactoringStatus.message, 'msg');
207 expect(refactoringStatus.entryWithHighestSeverity.context, context);
208 }
209
210 void test_createFatalErrorStatus() {
211 RefactoringStatus refactoringStatus = createFatalErrorStatus('msg');
212 expect(refactoringStatus.severity, RefactoringStatusSeverity.FATAL);
213 expect(refactoringStatus.message, 'msg');
214 }
215
216 void test_createWarningStatus() {
217 RefactoringStatus refactoringStatus = createWarningStatus('msg');
218 expect(refactoringStatus.severity, RefactoringStatusSeverity.WARNING);
219 expect(refactoringStatus.message, 'msg');
220 }
221
222 void test_escalateErrorToFatal() {
223 RefactoringStatus refactoringStatus = createErrorStatus('msg');
224 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
225 // escalated
226 RefactoringStatus escalated = refactoringStatus.escalateErrorToFatal();
227 expect(escalated.severity, RefactoringStatusSeverity.FATAL);
228 }
229
230 void test_get_entryWithHighestSeverity() {
231 RefactoringStatus refactoringStatus = new RefactoringStatus();
232 // no entries
233 expect(refactoringStatus.entryWithHighestSeverity, isNull);
234 expect(refactoringStatus.message, isNull);
235 // add entries
236 refactoringStatus.addError('msgError');
237 refactoringStatus.addWarning('msgWarning');
238 refactoringStatus.addFatalError('msgFatalError');
239 // get entry
240 {
241 RefactoringStatusEntry entry = refactoringStatus.entryWithHighestSeverity;
242 expect(entry.severity, RefactoringStatusSeverity.FATAL);
243 expect(entry.message, 'msgFatalError');
244 }
245 // get message
246 expect(refactoringStatus.message, 'msgFatalError');
247 }
248
249 void test_merge_Error_withWarning() {
250 RefactoringStatus refactoringStatus = new RefactoringStatus();
251 refactoringStatus.addError("err");
252 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
253 // merge with OK
254 {
255 RefactoringStatus other = new RefactoringStatus();
256 other.addWarning("warn");
257 refactoringStatus.merge(other);
258 }
259 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
260 expect(refactoringStatus.message, 'err');
261 }
262
263 void test_merge_Warning_null() {
264 RefactoringStatus refactoringStatus = new RefactoringStatus();
265 refactoringStatus.addWarning("warn");
266 expect(refactoringStatus.severity, RefactoringStatusSeverity.WARNING);
267 // merge with "null"
268 refactoringStatus.merge(null);
269 expect(refactoringStatus.severity, RefactoringStatusSeverity.WARNING);
270 }
271
272 void test_merge_Warning_withError() {
273 RefactoringStatus refactoringStatus = new RefactoringStatus();
274 refactoringStatus.addWarning("warn");
275 expect(refactoringStatus.severity, RefactoringStatusSeverity.WARNING);
276 // merge with OK
277 {
278 RefactoringStatus other = new RefactoringStatus();
279 other.addError("err");
280 refactoringStatus.merge(other);
281 }
282 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
283 expect(refactoringStatus.message, 'err');
284 }
285 }
286
287
288 class _MockRefactoringStatusContext extends TypedMock implements
289 RefactoringStatusContext {
290 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
291
292 @override
293 String toString() => 'MockRefactoringStatusContext';
294 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698