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 |