| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 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 | 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. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library test.services.correction.change; | 5 library test.services.correction.change; |
| 6 | 6 |
| 7 import 'package:analysis_server/src/constants.dart'; | 7 import 'package:analysis_server/src/constants.dart'; |
| 8 import 'package:analysis_server/src/protocol2.dart' show SourceEdit; | 8 import 'package:analysis_server/src/protocol2.dart' show SourceEdit, |
| 9 SourceFileEdit, Position; |
| 9 import 'package:analysis_server/src/services/correction/change.dart'; | 10 import 'package:analysis_server/src/services/correction/change.dart'; |
| 10 import 'package:analysis_testing/reflective_tests.dart'; | 11 import 'package:analysis_testing/reflective_tests.dart'; |
| 11 import 'package:analyzer/src/generated/source.dart'; | 12 import 'package:analyzer/src/generated/source.dart'; |
| 12 import 'package:unittest/unittest.dart'; | 13 import 'package:unittest/unittest.dart'; |
| 13 | 14 |
| 14 | 15 |
| 15 main() { | 16 main() { |
| 16 groupSep = ' | '; | 17 groupSep = ' | '; |
| 17 runReflectiveTests(ChangeTest); | 18 runReflectiveTests(ChangeTest); |
| 18 runReflectiveTests(EditTest); | 19 runReflectiveTests(EditTest); |
| 19 runReflectiveTests(FileEditTest); | 20 runReflectiveTests(FileEditTest); |
| 20 runReflectiveTests(LinkedEditGroupTest); | 21 runReflectiveTests(LinkedEditGroupTest); |
| 21 runReflectiveTests(LinkedEditSuggestionTest); | 22 runReflectiveTests(LinkedEditSuggestionTest); |
| 22 runReflectiveTests(PositionTest); | 23 runReflectiveTests(PositionTest); |
| 23 } | 24 } |
| 24 | 25 |
| 25 | 26 |
| 26 @ReflectiveTestCase() | 27 @ReflectiveTestCase() |
| 27 class ChangeTest { | 28 class ChangeTest { |
| 28 void test_addEdit() { | 29 void test_addEdit() { |
| 29 Change change = new Change('msg'); | 30 Change change = new Change('msg'); |
| 30 SourceEdit edit1 = new SourceEdit(1, 2, 'a'); | 31 SourceEdit edit1 = new SourceEdit(1, 2, 'a'); |
| 31 SourceEdit edit2 = new SourceEdit(1, 2, 'b'); | 32 SourceEdit edit2 = new SourceEdit(1, 2, 'b'); |
| 32 expect(change.fileEdits, hasLength(0)); | 33 expect(change.fileEdits, hasLength(0)); |
| 33 change.addEdit('/a.dart', edit1); | 34 change.addEdit('/a.dart', edit1); |
| 34 expect(change.fileEdits, hasLength(1)); | 35 expect(change.fileEdits, hasLength(1)); |
| 35 change.addEdit('/a.dart', edit2); | 36 change.addEdit('/a.dart', edit2); |
| 36 expect(change.fileEdits, hasLength(1)); | 37 expect(change.fileEdits, hasLength(1)); |
| 37 { | 38 { |
| 38 FileEdit fileEdit = change.getFileEdit('/a.dart'); | 39 SourceFileEdit fileEdit = change.getFileEdit('/a.dart'); |
| 39 expect(fileEdit, isNotNull); | 40 expect(fileEdit, isNotNull); |
| 40 expect(fileEdit.edits, unorderedEquals([edit1, edit2])); | 41 expect(fileEdit.edits, unorderedEquals([edit1, edit2])); |
| 41 } | 42 } |
| 42 } | 43 } |
| 43 | 44 |
| 44 void test_getFileEdit() { | 45 void test_getFileEdit() { |
| 45 Change change = new Change('msg'); | 46 Change change = new Change('msg'); |
| 46 FileEdit fileEdit = new FileEdit('/a.dart'); | 47 SourceFileEdit fileEdit = new SourceFileEdit('/a.dart', <SourceEdit>[]); |
| 47 change.addFileEdit(fileEdit); | 48 change.addFileEdit(fileEdit); |
| 48 expect(change.getFileEdit('/a.dart'), fileEdit); | 49 expect(change.getFileEdit('/a.dart'), fileEdit); |
| 49 } | 50 } |
| 50 | 51 |
| 51 void test_getFileEdit_empty() { | 52 void test_getFileEdit_empty() { |
| 52 Change change = new Change('msg'); | 53 Change change = new Change('msg'); |
| 53 expect(change.getFileEdit('/some.dart'), isNull); | 54 expect(change.getFileEdit('/some.dart'), isNull); |
| 54 } | 55 } |
| 55 | 56 |
| 56 void test_toJson() { | 57 void test_toJson() { |
| 57 Change change = new Change('msg'); | 58 Change change = new Change('msg'); |
| 58 change.addFileEdit(new FileEdit('/a.dart') | 59 change.addFileEdit(new SourceFileEdit('/a.dart', <SourceEdit>[]) |
| 59 ..add(new SourceEdit(1, 2, 'aaa')) | 60 ..add(new SourceEdit(1, 2, 'aaa')) |
| 60 ..add(new SourceEdit(10, 20, 'bbb'))); | 61 ..add(new SourceEdit(10, 20, 'bbb'))); |
| 61 change.addFileEdit(new FileEdit('/b.dart') | 62 change.addFileEdit(new SourceFileEdit('/b.dart', <SourceEdit>[]) |
| 62 ..add(new SourceEdit(21, 22, 'xxx')) | 63 ..add(new SourceEdit(21, 22, 'xxx')) |
| 63 ..add(new SourceEdit(210, 220, 'yyy'))); | 64 ..add(new SourceEdit(210, 220, 'yyy'))); |
| 64 { | 65 { |
| 65 var group = new LinkedEditGroup(); | 66 var group = new LinkedEditGroup(); |
| 66 change.addLinkedEditGroup(group | 67 change.addLinkedEditGroup(group |
| 67 ..addPosition(new Position('/ga.dart', 1), 2) | 68 ..addPosition(new Position('/ga.dart', 1), 2) |
| 68 ..addPosition(new Position('/ga.dart', 10), 2)); | 69 ..addPosition(new Position('/ga.dart', 10), 2)); |
| 69 group.addSuggestion( | 70 group.addSuggestion( |
| 70 new LinkedEditSuggestion(LinkedEditSuggestionKind.TYPE, 'AA')); | 71 new LinkedEditSuggestion(LinkedEditSuggestionKind.TYPE, 'AA')); |
| 71 group.addSuggestion( | 72 group.addSuggestion( |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 } | 189 } |
| 189 | 190 |
| 190 | 191 |
| 191 @ReflectiveTestCase() | 192 @ReflectiveTestCase() |
| 192 class FileEditTest { | 193 class FileEditTest { |
| 193 void test_addAll() { | 194 void test_addAll() { |
| 194 SourceEdit edit1a = new SourceEdit(1, 0, 'a1'); | 195 SourceEdit edit1a = new SourceEdit(1, 0, 'a1'); |
| 195 SourceEdit edit1b = new SourceEdit(1, 0, 'a2'); | 196 SourceEdit edit1b = new SourceEdit(1, 0, 'a2'); |
| 196 SourceEdit edit10 = new SourceEdit(10, 1, 'b'); | 197 SourceEdit edit10 = new SourceEdit(10, 1, 'b'); |
| 197 SourceEdit edit100 = new SourceEdit(100, 2, 'c'); | 198 SourceEdit edit100 = new SourceEdit(100, 2, 'c'); |
| 198 FileEdit fileEdit = new FileEdit('/test.dart'); | 199 SourceFileEdit fileEdit = new SourceFileEdit('/test.dart', <SourceEdit>[]); |
| 199 fileEdit.addAll([edit100, edit1a, edit10, edit1b]); | 200 fileEdit.addAll([edit100, edit1a, edit10, edit1b]); |
| 200 expect(fileEdit.edits, [edit100, edit10, edit1b, edit1a]); | 201 expect(fileEdit.edits, [edit100, edit10, edit1b, edit1a]); |
| 201 } | 202 } |
| 202 | 203 |
| 203 void test_add_sorts() { | 204 void test_add_sorts() { |
| 204 SourceEdit edit1a = new SourceEdit(1, 0, 'a1'); | 205 SourceEdit edit1a = new SourceEdit(1, 0, 'a1'); |
| 205 SourceEdit edit1b = new SourceEdit(1, 0, 'a2'); | 206 SourceEdit edit1b = new SourceEdit(1, 0, 'a2'); |
| 206 SourceEdit edit10 = new SourceEdit(10, 1, 'b'); | 207 SourceEdit edit10 = new SourceEdit(10, 1, 'b'); |
| 207 SourceEdit edit100 = new SourceEdit(100, 2, 'c'); | 208 SourceEdit edit100 = new SourceEdit(100, 2, 'c'); |
| 208 FileEdit fileEdit = new FileEdit('/test.dart'); | 209 SourceFileEdit fileEdit = new SourceFileEdit('/test.dart', <SourceEdit>[]); |
| 209 fileEdit.add(edit100); | 210 fileEdit.add(edit100); |
| 210 fileEdit.add(edit1a); | 211 fileEdit.add(edit1a); |
| 211 fileEdit.add(edit1b); | 212 fileEdit.add(edit1b); |
| 212 fileEdit.add(edit10); | 213 fileEdit.add(edit10); |
| 213 expect(fileEdit.edits, [edit100, edit10, edit1b, edit1a]); | 214 expect(fileEdit.edits, [edit100, edit10, edit1b, edit1a]); |
| 214 } | 215 } |
| 215 | 216 |
| 216 void test_new() { | 217 void test_new() { |
| 217 FileEdit fileEdit = new FileEdit('/test.dart'); | 218 SourceFileEdit fileEdit = new SourceFileEdit('/test.dart', <SourceEdit>[]); |
| 218 fileEdit.add(new SourceEdit(1, 2, 'aaa')); | 219 fileEdit.add(new SourceEdit(1, 2, 'aaa')); |
| 219 fileEdit.add(new SourceEdit(10, 20, 'bbb')); | 220 fileEdit.add(new SourceEdit(10, 20, 'bbb')); |
| 220 expect( | 221 expect( |
| 221 fileEdit.toString(), | 222 fileEdit.toString(), |
| 222 'FileEdit(file=/test.dart, edits=[' | 223 '{"file":"/test.dart","edits":[' |
| 223 '{"offset":10,"length":20,"replacement":"bbb"}, ' | 224 '{"offset":10,"length":20,"replacement":"bbb"},' |
| 224 '{"offset":1,"length":2,"replacement":"aaa"}])'); | 225 '{"offset":1,"length":2,"replacement":"aaa"}]}'); |
| 225 } | 226 } |
| 226 | 227 |
| 227 void test_toJson() { | 228 void test_toJson() { |
| 228 FileEdit fileEdit = new FileEdit('/test.dart'); | 229 SourceFileEdit fileEdit = new SourceFileEdit('/test.dart', <SourceEdit>[]); |
| 229 fileEdit.add(new SourceEdit(1, 2, 'aaa')); | 230 fileEdit.add(new SourceEdit(1, 2, 'aaa')); |
| 230 fileEdit.add(new SourceEdit(10, 20, 'bbb')); | 231 fileEdit.add(new SourceEdit(10, 20, 'bbb')); |
| 231 var expectedJson = { | 232 var expectedJson = { |
| 232 FILE: '/test.dart', | 233 FILE: '/test.dart', |
| 233 EDITS: [{ | 234 EDITS: [{ |
| 234 OFFSET: 10, | 235 OFFSET: 10, |
| 235 LENGTH: 20, | 236 LENGTH: 20, |
| 236 REPLACEMENT: 'bbb' | 237 REPLACEMENT: 'bbb' |
| 237 }, { | 238 }, { |
| 238 OFFSET: 1, | 239 OFFSET: 1, |
| 239 LENGTH: 2, | 240 LENGTH: 2, |
| 240 REPLACEMENT: 'aaa' | 241 REPLACEMENT: 'aaa' |
| 241 },] | 242 },] |
| 242 }; | 243 }; |
| 243 expect(fileEdit.toJson(), expectedJson); | 244 expect(fileEdit.toJson(), expectedJson); |
| 244 } | 245 } |
| 245 } | 246 } |
| 246 | 247 |
| 247 | 248 |
| 248 @ReflectiveTestCase() | 249 @ReflectiveTestCase() |
| 249 class LinkedEditGroupTest { | 250 class LinkedEditGroupTest { |
| 250 void test_new() { | 251 void test_new() { |
| 251 LinkedEditGroup group = new LinkedEditGroup(); | 252 LinkedEditGroup group = new LinkedEditGroup(); |
| 252 group.addPosition(new Position('/a.dart', 1), 2); | 253 group.addPosition(new Position('/a.dart', 1), 2); |
| 253 group.addPosition(new Position('/b.dart', 10), 2); | 254 group.addPosition(new Position('/b.dart', 10), 2); |
| 254 expect( | 255 expect( |
| 255 group.toString(), | 256 group.toString(), |
| 256 'LinkedEditGroup(length=2, positions=[' | 257 'LinkedEditGroup(length=2, positions=[' |
| 257 'Position(file=/a.dart, offset=1), ' | 258 '{"file":"/a.dart","offset":1}, ' |
| 258 'Position(file=/b.dart, offset=10)], suggestions=[])'); | 259 '{"file":"/b.dart","offset":10}], suggestions=[])'); |
| 259 } | 260 } |
| 260 | 261 |
| 261 void test_toJson() { | 262 void test_toJson() { |
| 262 LinkedEditGroup group = new LinkedEditGroup(); | 263 LinkedEditGroup group = new LinkedEditGroup(); |
| 263 group.addPosition(new Position('/a.dart', 1), 2); | 264 group.addPosition(new Position('/a.dart', 1), 2); |
| 264 group.addPosition(new Position('/b.dart', 10), 2); | 265 group.addPosition(new Position('/b.dart', 10), 2); |
| 265 group.addSuggestion( | 266 group.addSuggestion( |
| 266 new LinkedEditSuggestion(LinkedEditSuggestionKind.TYPE, 'AA')); | 267 new LinkedEditSuggestion(LinkedEditSuggestionKind.TYPE, 'AA')); |
| 267 group.addSuggestion( | 268 group.addSuggestion( |
| 268 new LinkedEditSuggestion(LinkedEditSuggestionKind.TYPE, 'BB')); | 269 new LinkedEditSuggestion(LinkedEditSuggestionKind.TYPE, 'BB')); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 317 | 318 |
| 318 void test_hashCode() { | 319 void test_hashCode() { |
| 319 Position position = new Position('/test.dart', 1); | 320 Position position = new Position('/test.dart', 1); |
| 320 position.hashCode; | 321 position.hashCode; |
| 321 } | 322 } |
| 322 | 323 |
| 323 void test_new() { | 324 void test_new() { |
| 324 Position position = new Position('/test.dart', 1); | 325 Position position = new Position('/test.dart', 1); |
| 325 expect(position.file, '/test.dart'); | 326 expect(position.file, '/test.dart'); |
| 326 expect(position.offset, 1); | 327 expect(position.offset, 1); |
| 327 expect(position.toString(), 'Position(file=/test.dart, offset=1)'); | 328 expect(position.toString(), '{"file":"/test.dart","offset":1}'); |
| 328 } | 329 } |
| 329 | 330 |
| 330 void test_toJson() { | 331 void test_toJson() { |
| 331 Position position = new Position('/test.dart', 1); | 332 Position position = new Position('/test.dart', 1); |
| 332 var expectedJson = { | 333 var expectedJson = { |
| 333 FILE: '/test.dart', | 334 FILE: '/test.dart', |
| 334 OFFSET: 1 | 335 OFFSET: 1 |
| 335 }; | 336 }; |
| 336 expect(position.toJson(), expectedJson); | 337 expect(position.toJson(), expectedJson); |
| 337 } | 338 } |
| 338 } | 339 } |
| OLD | NEW |