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

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: Fixes for review comments 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 }
68
69 void test_new_forUnit() {
70 resolveTestUnit('');
71 SourceRange range = rangeStartLength(10, 20);
72 var statusContext = new RefactoringStatusContext.forUnit(testUnit, range);
73 // access
74 expect(statusContext.context, context);
75 expect(statusContext.source, testSource);
76 expect(statusContext.range, range);
77 }
78 }
79
80
81 @ReflectiveTestCase()
82 class RefactoringStatusEntryTest {
83 void test_new_withContext() {
84 RefactoringStatusContext context = new _MockRefactoringStatusContext();
85 RefactoringStatusEntry entry =
86 new RefactoringStatusEntry(
87 RefactoringStatusSeverity.ERROR,
88 "my message",
89 context);
90 // access
91 expect(entry.severity, RefactoringStatusSeverity.ERROR);
92 expect(entry.message, 'my message');
93 expect(entry.context, context);
94 }
95
96 void test_new_withoutContext() {
97 RefactoringStatusEntry entry =
98 new RefactoringStatusEntry(RefactoringStatusSeverity.ERROR, "my message" );
99 // access
100 expect(entry.severity, RefactoringStatusSeverity.ERROR);
101 expect(entry.message, 'my message');
102 expect(entry.context, isNull);
103 // isX
104 expect(entry.isFatalError, isFalse);
105 expect(entry.isError, isTrue);
106 expect(entry.isWarning, isFalse);
107 }
108 }
109
110
111 @ReflectiveTestCase()
112 class RefactoringStatusTest {
113 void test_addError() {
114 RefactoringStatus refactoringStatus = new RefactoringStatus();
115 // initial state
116 expect(refactoringStatus.severity, RefactoringStatusSeverity.OK);
117 // add ERROR
118 refactoringStatus.addError('msg');
119 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
120 expect(refactoringStatus.isOK, isFalse);
121 expect(refactoringStatus.hasFatalError, isFalse);
122 expect(refactoringStatus.hasError, isTrue);
123 // entries
124 List<RefactoringStatusEntry> entries = refactoringStatus.entries;
125 expect(entries, hasLength(1));
126 expect(entries[0].message, 'msg');
127 }
128
129 void test_addFatalError_withContext() {
130 RefactoringStatusContext context = new _MockRefactoringStatusContext();
131 RefactoringStatus refactoringStatus = new RefactoringStatus();
132 // initial state
133 expect(refactoringStatus.severity, RefactoringStatusSeverity.OK);
134 // add FATAL
135 refactoringStatus.addFatalError('msg', context);
136 expect(refactoringStatus.severity, RefactoringStatusSeverity.FATAL);
137 expect(refactoringStatus.isOK, isFalse);
138 expect(refactoringStatus.hasFatalError, isTrue);
139 expect(refactoringStatus.hasError, isTrue);
140 // entries
141 List<RefactoringStatusEntry> entries = refactoringStatus.entries;
142 expect(entries, hasLength(1));
143 expect(entries[0].message, 'msg');
144 expect(entries[0].context, context);
145 // add WARNING, resulting severity is still FATAL
146 refactoringStatus.addWarning("warning");
147 expect(refactoringStatus.severity, RefactoringStatusSeverity.FATAL);
148 }
149
150 void test_addFatalError_withoutContext() {
151 RefactoringStatus refactoringStatus = new RefactoringStatus();
152 // initial state
153 expect(refactoringStatus.severity, RefactoringStatusSeverity.OK);
154 // add FATAL
155 refactoringStatus.addFatalError('msg');
156 expect(refactoringStatus.severity, RefactoringStatusSeverity.FATAL);
157 expect(refactoringStatus.isOK, isFalse);
158 expect(refactoringStatus.hasFatalError, isTrue);
159 expect(refactoringStatus.hasError, isTrue);
160 // entries
161 List<RefactoringStatusEntry> entries = refactoringStatus.entries;
162 expect(entries, hasLength(1));
163 expect(entries[0].message, 'msg');
164 expect(entries[0].context, isNull);
165 }
166
167 void test_addStatus_Error_withWarning() {
168 RefactoringStatus refactoringStatus = new RefactoringStatus();
169 refactoringStatus.addError("err");
170 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
171 // merge with OK
172 {
173 RefactoringStatus other = new RefactoringStatus();
174 other.addWarning("warn");
175 refactoringStatus.addStatus(other);
176 }
177 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
178 expect(refactoringStatus.message, 'err');
179 }
180
181 void test_addStatus_Warning_null() {
182 RefactoringStatus refactoringStatus = new RefactoringStatus();
183 refactoringStatus.addWarning("warn");
184 expect(refactoringStatus.severity, RefactoringStatusSeverity.WARNING);
185 // merge with "null"
186 refactoringStatus.addStatus(null);
187 expect(refactoringStatus.severity, RefactoringStatusSeverity.WARNING);
188 }
189
190 void test_addStatus_Warning_withError() {
191 RefactoringStatus refactoringStatus = new RefactoringStatus();
192 refactoringStatus.addWarning("warn");
193 expect(refactoringStatus.severity, RefactoringStatusSeverity.WARNING);
194 // merge with OK
195 {
196 RefactoringStatus other = new RefactoringStatus();
197 other.addError("err");
198 refactoringStatus.addStatus(other);
199 }
200 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
201 expect(refactoringStatus.message, 'err');
202 }
203
204 void test_addWarning() {
205 RefactoringStatus refactoringStatus = new RefactoringStatus();
206 // initial state
207 expect(refactoringStatus.severity, RefactoringStatusSeverity.OK);
208 // add WARNING
209 refactoringStatus.addWarning('msg');
210 expect(refactoringStatus.severity, RefactoringStatusSeverity.WARNING);
211 expect(refactoringStatus.isOK, isFalse);
212 expect(refactoringStatus.hasFatalError, isFalse);
213 expect(refactoringStatus.hasError, isFalse);
214 expect(refactoringStatus.hasWarning, isTrue);
215 // entries
216 List<RefactoringStatusEntry> entries = refactoringStatus.entries;
217 expect(entries, hasLength(1));
218 expect(entries[0].message, 'msg');
219 }
220
221 void test_escalateErrorToFatal() {
222 RefactoringStatus refactoringStatus = new RefactoringStatus.error('msg');
223 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
224 // escalated
225 RefactoringStatus escalated = refactoringStatus.escalateErrorToFatal();
226 expect(escalated.severity, RefactoringStatusSeverity.FATAL);
227 }
228
229 void test_get_entryWithHighestSeverity() {
230 RefactoringStatus refactoringStatus = new RefactoringStatus();
231 // no entries
232 expect(refactoringStatus.entryWithHighestSeverity, isNull);
233 expect(refactoringStatus.message, isNull);
234 // add entries
235 refactoringStatus.addError('msgError');
236 refactoringStatus.addWarning('msgWarning');
237 refactoringStatus.addFatalError('msgFatalError');
238 // get entry
239 {
240 RefactoringStatusEntry entry = refactoringStatus.entryWithHighestSeverity;
241 expect(entry.severity, RefactoringStatusSeverity.FATAL);
242 expect(entry.message, 'msgFatalError');
243 }
244 // get message
245 expect(refactoringStatus.message, 'msgFatalError');
246 }
247
248 void test_newError() {
249 RefactoringStatusContext context = new _MockRefactoringStatusContext();
250 RefactoringStatus refactoringStatus =
251 new RefactoringStatus.error('msg', context);
252 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
253 expect(refactoringStatus.message, 'msg');
254 expect(refactoringStatus.entryWithHighestSeverity.context, context);
255 }
256
257 void test_newFatalError() {
258 RefactoringStatus refactoringStatus = new RefactoringStatus.fatal('msg');
259 expect(refactoringStatus.severity, RefactoringStatusSeverity.FATAL);
260 expect(refactoringStatus.message, 'msg');
261 }
262
263 void test_newWarning() {
264 RefactoringStatus refactoringStatus = new RefactoringStatus.warning('msg');
265 expect(refactoringStatus.severity, RefactoringStatusSeverity.WARNING);
266 expect(refactoringStatus.message, 'msg');
267 }
268 }
269
270
271 class _MockRefactoringStatusContext extends TypedMock implements
272 RefactoringStatusContext {
273 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
274 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698