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

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

Issue 484733003: Import analysis_services.dart into analysis_server.dart. (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 library test.services.correction.status;
6
7 import 'package:analysis_services/correction/status.dart';
8 import 'package:analysis_services/search/search_engine.dart';
9 import 'package:analysis_services/src/correction/source_range.dart';
10 import 'package:analysis_testing/abstract_single_unit.dart';
11 import 'package:analysis_testing/reflective_tests.dart';
12 import 'package:analyzer/src/generated/ast.dart';
13 import 'package:analyzer/src/generated/element.dart';
14 import 'package:analyzer/src/generated/source.dart';
15 import 'package:typed_mock/typed_mock.dart';
16 import 'package:unittest/unittest.dart';
17
18
19 main() {
20 groupSep = ' | ';
21 runReflectiveTests(RefactoringStatusContextTest);
22 runReflectiveTests(RefactoringStatusEntryTest);
23 runReflectiveTests(RefactoringStatusTest);
24 }
25
26
27 @ReflectiveTestCase()
28 class RefactoringStatusContextTest extends AbstractSingleUnitTest {
29 void test_new_forElement() {
30 resolveTestUnit('class MyClass {}');
31 Element element = findElement('MyClass');
32 var statusContext = new RefactoringStatusContext.forElement(element);
33 // access
34 expect(statusContext.context, context);
35 expect(statusContext.source, testSource);
36 expect(
37 statusContext.range,
38 rangeStartLength(element.nameOffset, 'MyClass'.length));
39 }
40
41 void test_new_forMatch() {
42 resolveTestUnit('class MyClass {}');
43 Element element = findElement('MyClass');
44 SourceRange range = rangeElementName(element);
45 SearchMatch match = new SearchMatch(null, element, range, true, false);
46 var statusContext = new RefactoringStatusContext.forMatch(match);
47 // access
48 expect(statusContext.context, context);
49 expect(statusContext.source, testSource);
50 expect(statusContext.range, range);
51 }
52
53 void test_new_forNode() {
54 resolveTestUnit('''
55 main() {
56 }
57 ''');
58 AstNode node = findNodeAtString('main');
59 var statusContext = new RefactoringStatusContext.forNode(node);
60 // access
61 expect(statusContext.context, context);
62 expect(statusContext.source, testSource);
63 expect(statusContext.range, rangeNode(node));
64 }
65
66 void test_new_forUnit() {
67 resolveTestUnit('');
68 SourceRange range = rangeStartLength(10, 20);
69 var statusContext = new RefactoringStatusContext.forUnit(testUnit, range);
70 // access
71 expect(statusContext.context, context);
72 expect(statusContext.source, testSource);
73 expect(statusContext.range, range);
74 }
75 }
76
77
78 @ReflectiveTestCase()
79 class RefactoringStatusEntryTest {
80 void test_new_withContext() {
81 RefactoringStatusContext context = new _MockRefactoringStatusContext();
82 RefactoringStatusEntry entry =
83 new RefactoringStatusEntry(
84 RefactoringStatusSeverity.ERROR,
85 "my message",
86 context);
87 // access
88 expect(entry.severity, RefactoringStatusSeverity.ERROR);
89 expect(entry.message, 'my message');
90 expect(entry.context, context);
91 }
92
93 void test_new_withoutContext() {
94 RefactoringStatusEntry entry =
95 new RefactoringStatusEntry(RefactoringStatusSeverity.ERROR, "my message" );
96 // access
97 expect(entry.severity, RefactoringStatusSeverity.ERROR);
98 expect(entry.message, 'my message');
99 expect(entry.context, isNull);
100 // isX
101 expect(entry.isFatalError, isFalse);
102 expect(entry.isError, isTrue);
103 expect(entry.isWarning, isFalse);
104 }
105 }
106
107
108 @ReflectiveTestCase()
109 class RefactoringStatusTest {
110 void test_addError() {
111 RefactoringStatus refactoringStatus = new RefactoringStatus();
112 // initial state
113 expect(refactoringStatus.severity, RefactoringStatusSeverity.OK);
114 // add ERROR
115 refactoringStatus.addError('msg');
116 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
117 expect(refactoringStatus.isOK, isFalse);
118 expect(refactoringStatus.hasFatalError, isFalse);
119 expect(refactoringStatus.hasError, isTrue);
120 // entries
121 List<RefactoringStatusEntry> entries = refactoringStatus.entries;
122 expect(entries, hasLength(1));
123 expect(entries[0].message, 'msg');
124 }
125
126 void test_addFatalError_withContext() {
127 RefactoringStatusContext context = new _MockRefactoringStatusContext();
128 RefactoringStatus refactoringStatus = new RefactoringStatus();
129 // initial state
130 expect(refactoringStatus.severity, RefactoringStatusSeverity.OK);
131 // add FATAL
132 refactoringStatus.addFatalError('msg', context);
133 expect(refactoringStatus.severity, RefactoringStatusSeverity.FATAL);
134 expect(refactoringStatus.isOK, isFalse);
135 expect(refactoringStatus.hasFatalError, isTrue);
136 expect(refactoringStatus.hasError, isTrue);
137 // entries
138 List<RefactoringStatusEntry> entries = refactoringStatus.entries;
139 expect(entries, hasLength(1));
140 expect(entries[0].message, 'msg');
141 expect(entries[0].context, context);
142 // add WARNING, resulting severity is still FATAL
143 refactoringStatus.addWarning("warning");
144 expect(refactoringStatus.severity, RefactoringStatusSeverity.FATAL);
145 }
146
147 void test_addFatalError_withoutContext() {
148 RefactoringStatus refactoringStatus = new RefactoringStatus();
149 // initial state
150 expect(refactoringStatus.severity, RefactoringStatusSeverity.OK);
151 // add FATAL
152 refactoringStatus.addFatalError('msg');
153 expect(refactoringStatus.severity, RefactoringStatusSeverity.FATAL);
154 expect(refactoringStatus.isOK, isFalse);
155 expect(refactoringStatus.hasFatalError, isTrue);
156 expect(refactoringStatus.hasError, isTrue);
157 // entries
158 List<RefactoringStatusEntry> entries = refactoringStatus.entries;
159 expect(entries, hasLength(1));
160 expect(entries[0].message, 'msg');
161 expect(entries[0].context, isNull);
162 }
163
164 void test_addStatus_Error_withWarning() {
165 RefactoringStatus refactoringStatus = new RefactoringStatus();
166 refactoringStatus.addError("err");
167 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
168 // merge with OK
169 {
170 RefactoringStatus other = new RefactoringStatus();
171 other.addWarning("warn");
172 refactoringStatus.addStatus(other);
173 }
174 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
175 expect(refactoringStatus.message, 'err');
176 }
177
178 void test_addStatus_Warning_null() {
179 RefactoringStatus refactoringStatus = new RefactoringStatus();
180 refactoringStatus.addWarning("warn");
181 expect(refactoringStatus.severity, RefactoringStatusSeverity.WARNING);
182 // merge with "null"
183 refactoringStatus.addStatus(null);
184 expect(refactoringStatus.severity, RefactoringStatusSeverity.WARNING);
185 }
186
187 void test_addStatus_Warning_withError() {
188 RefactoringStatus refactoringStatus = new RefactoringStatus();
189 refactoringStatus.addWarning("warn");
190 expect(refactoringStatus.severity, RefactoringStatusSeverity.WARNING);
191 // merge with OK
192 {
193 RefactoringStatus other = new RefactoringStatus();
194 other.addError("err");
195 refactoringStatus.addStatus(other);
196 }
197 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
198 expect(refactoringStatus.message, 'err');
199 }
200
201 void test_addWarning() {
202 RefactoringStatus refactoringStatus = new RefactoringStatus();
203 // initial state
204 expect(refactoringStatus.severity, RefactoringStatusSeverity.OK);
205 // add WARNING
206 refactoringStatus.addWarning('msg');
207 expect(refactoringStatus.severity, RefactoringStatusSeverity.WARNING);
208 expect(refactoringStatus.isOK, isFalse);
209 expect(refactoringStatus.hasFatalError, isFalse);
210 expect(refactoringStatus.hasError, isFalse);
211 expect(refactoringStatus.hasWarning, isTrue);
212 // entries
213 List<RefactoringStatusEntry> entries = refactoringStatus.entries;
214 expect(entries, hasLength(1));
215 expect(entries[0].message, 'msg');
216 }
217
218 void test_escalateErrorToFatal() {
219 RefactoringStatus refactoringStatus = new RefactoringStatus.error('msg');
220 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
221 // escalated
222 RefactoringStatus escalated = refactoringStatus.escalateErrorToFatal();
223 expect(escalated.severity, RefactoringStatusSeverity.FATAL);
224 }
225
226 void test_get_entryWithHighestSeverity() {
227 RefactoringStatus refactoringStatus = new RefactoringStatus();
228 // no entries
229 expect(refactoringStatus.entryWithHighestSeverity, isNull);
230 expect(refactoringStatus.message, isNull);
231 // add entries
232 refactoringStatus.addError('msgError');
233 refactoringStatus.addWarning('msgWarning');
234 refactoringStatus.addFatalError('msgFatalError');
235 // get entry
236 {
237 RefactoringStatusEntry entry = refactoringStatus.entryWithHighestSeverity;
238 expect(entry.severity, RefactoringStatusSeverity.FATAL);
239 expect(entry.message, 'msgFatalError');
240 }
241 // get message
242 expect(refactoringStatus.message, 'msgFatalError');
243 }
244
245 void test_newError() {
246 RefactoringStatusContext context = new _MockRefactoringStatusContext();
247 RefactoringStatus refactoringStatus =
248 new RefactoringStatus.error('msg', context);
249 expect(refactoringStatus.severity, RefactoringStatusSeverity.ERROR);
250 expect(refactoringStatus.message, 'msg');
251 expect(refactoringStatus.entryWithHighestSeverity.context, context);
252 }
253
254 void test_newFatalError() {
255 RefactoringStatus refactoringStatus = new RefactoringStatus.fatal('msg');
256 expect(refactoringStatus.severity, RefactoringStatusSeverity.FATAL);
257 expect(refactoringStatus.message, 'msg');
258 }
259
260 void test_newWarning() {
261 RefactoringStatus refactoringStatus = new RefactoringStatus.warning('msg');
262 expect(refactoringStatus.severity, RefactoringStatusSeverity.WARNING);
263 expect(refactoringStatus.message, 'msg');
264 }
265 }
266
267
268 class _MockRefactoringStatusContext extends TypedMock implements
269 RefactoringStatusContext {
270 noSuchMethod(Invocation invocation) => super.noSuchMethod(invocation);
271 }
OLDNEW
« no previous file with comments | « pkg/analysis_services/test/correction/source_range_test.dart ('k') | pkg/analysis_services/test/correction/strings_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698