Chromium Code Reviews| 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 // 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 } | |
| OLD | NEW |