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

Side by Side Diff: pkg/analysis_server/test/services/correction/change_test.dart

Issue 492563002: Make more use of generated classes in analysis server. (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
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/services/correction/change.dart'; 9 import 'package:analysis_server/src/services/correction/change.dart';
9 import 'package:analysis_testing/reflective_tests.dart'; 10 import 'package:analysis_testing/reflective_tests.dart';
10 import 'package:analyzer/src/generated/source.dart'; 11 import 'package:analyzer/src/generated/source.dart';
11 import 'package:unittest/unittest.dart'; 12 import 'package:unittest/unittest.dart';
12 13
13 14
14 main() { 15 main() {
15 groupSep = ' | '; 16 groupSep = ' | ';
16 runReflectiveTests(ChangeTest); 17 runReflectiveTests(ChangeTest);
17 runReflectiveTests(EditTest); 18 runReflectiveTests(EditTest);
18 runReflectiveTests(FileEditTest); 19 runReflectiveTests(FileEditTest);
19 runReflectiveTests(LinkedEditGroupTest); 20 runReflectiveTests(LinkedEditGroupTest);
20 runReflectiveTests(LinkedEditSuggestionTest); 21 runReflectiveTests(LinkedEditSuggestionTest);
21 runReflectiveTests(PositionTest); 22 runReflectiveTests(PositionTest);
22 } 23 }
23 24
24 25
25 @ReflectiveTestCase() 26 @ReflectiveTestCase()
26 class ChangeTest { 27 class ChangeTest {
27 void test_addEdit() { 28 void test_addEdit() {
28 Change change = new Change('msg'); 29 Change change = new Change('msg');
29 Edit edit1 = new Edit(1, 2, 'a'); 30 SourceEdit edit1 = new SourceEdit(1, 2, 'a');
30 Edit edit2 = new Edit(1, 2, 'b'); 31 SourceEdit edit2 = new SourceEdit(1, 2, 'b');
31 expect(change.fileEdits, hasLength(0)); 32 expect(change.fileEdits, hasLength(0));
32 change.addEdit('/a.dart', edit1); 33 change.addEdit('/a.dart', edit1);
33 expect(change.fileEdits, hasLength(1)); 34 expect(change.fileEdits, hasLength(1));
34 change.addEdit('/a.dart', edit2); 35 change.addEdit('/a.dart', edit2);
35 expect(change.fileEdits, hasLength(1)); 36 expect(change.fileEdits, hasLength(1));
36 { 37 {
37 FileEdit fileEdit = change.getFileEdit('/a.dart'); 38 FileEdit fileEdit = change.getFileEdit('/a.dart');
38 expect(fileEdit, isNotNull); 39 expect(fileEdit, isNotNull);
39 expect(fileEdit.edits, unorderedEquals([edit1, edit2])); 40 expect(fileEdit.edits, unorderedEquals([edit1, edit2]));
40 } 41 }
41 } 42 }
42 43
43 void test_getFileEdit() { 44 void test_getFileEdit() {
44 Change change = new Change('msg'); 45 Change change = new Change('msg');
45 FileEdit fileEdit = new FileEdit('/a.dart'); 46 FileEdit fileEdit = new FileEdit('/a.dart');
46 change.addFileEdit(fileEdit); 47 change.addFileEdit(fileEdit);
47 expect(change.getFileEdit('/a.dart'), fileEdit); 48 expect(change.getFileEdit('/a.dart'), fileEdit);
48 } 49 }
49 50
50 void test_getFileEdit_empty() { 51 void test_getFileEdit_empty() {
51 Change change = new Change('msg'); 52 Change change = new Change('msg');
52 expect(change.getFileEdit('/some.dart'), isNull); 53 expect(change.getFileEdit('/some.dart'), isNull);
53 } 54 }
54 55
55 void test_toJson() { 56 void test_toJson() {
56 Change change = new Change('msg'); 57 Change change = new Change('msg');
57 change.addFileEdit(new FileEdit('/a.dart') 58 change.addFileEdit(new FileEdit('/a.dart')
58 ..add(new Edit(1, 2, 'aaa')) 59 ..add(new SourceEdit(1, 2, 'aaa'))
59 ..add(new Edit(10, 20, 'bbb'))); 60 ..add(new SourceEdit(10, 20, 'bbb')));
60 change.addFileEdit(new FileEdit('/b.dart') 61 change.addFileEdit(new FileEdit('/b.dart')
61 ..add(new Edit(21, 22, 'xxx')) 62 ..add(new SourceEdit(21, 22, 'xxx'))
62 ..add(new Edit(210, 220, 'yyy'))); 63 ..add(new SourceEdit(210, 220, 'yyy')));
63 { 64 {
64 var group = new LinkedEditGroup('id-a'); 65 var group = new LinkedEditGroup('id-a');
65 change.addLinkedEditGroup(group 66 change.addLinkedEditGroup(group
66 ..addPosition(new Position('/ga.dart', 1), 2) 67 ..addPosition(new Position('/ga.dart', 1), 2)
67 ..addPosition(new Position('/ga.dart', 10), 2)); 68 ..addPosition(new Position('/ga.dart', 10), 2));
68 group.addSuggestion( 69 group.addSuggestion(
69 new LinkedEditSuggestion(LinkedEditSuggestionKind.TYPE, 'AA')); 70 new LinkedEditSuggestion(LinkedEditSuggestionKind.TYPE, 'AA'));
70 group.addSuggestion( 71 group.addSuggestion(
71 new LinkedEditSuggestion(LinkedEditSuggestionKind.TYPE, 'BB')); 72 new LinkedEditSuggestion(LinkedEditSuggestionKind.TYPE, 'BB'));
72 } 73 }
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
136 expect(change.toJson(), expectedJson); 137 expect(change.toJson(), expectedJson);
137 // some toString() 138 // some toString()
138 change.toString(); 139 change.toString();
139 } 140 }
140 } 141 }
141 142
142 143
143 @ReflectiveTestCase() 144 @ReflectiveTestCase()
144 class EditTest { 145 class EditTest {
145 void test_applySequence() { 146 void test_applySequence() {
146 Edit edit1 = new Edit(5, 2, 'abc'); 147 SourceEdit edit1 = new SourceEdit(5, 2, 'abc');
147 Edit edit2 = new Edit(1, 0, '!'); 148 SourceEdit edit2 = new SourceEdit(1, 0, '!');
148 expect(Edit.applySequence('0123456789', [edit1, edit2]), '0!1234abc789'); 149 expect(applySequence('0123456789', [edit1, edit2]), '0!1234abc789');
149 }
150
151 void test_end() {
152 Edit edit = new Edit(1, 2, 'foo');
153 expect(edit.end, 3);
154 } 150 }
155 151
156 void test_eqEq() { 152 void test_eqEq() {
157 Edit a = new Edit(1, 2, 'aaa'); 153 SourceEdit a = new SourceEdit(1, 2, 'aaa');
158 Edit a2 = new Edit(1, 2, 'aaa'); 154 SourceEdit a2 = new SourceEdit(1, 2, 'aaa');
159 Edit b = new Edit(1, 2, 'aaa'); 155 SourceEdit b = new SourceEdit(1, 2, 'aaa');
160 expect(a == a, isTrue); 156 expect(a == a, isTrue);
161 expect(a == new Edit(1, 2, 'aaa'), isTrue); 157 expect(a == new SourceEdit(1, 2, 'aaa'), isTrue);
162 expect(a == this, isFalse); 158 expect(a == this, isFalse);
163 expect(a == new Edit(1, 2, 'bbb'), isFalse); 159 expect(a == new SourceEdit(1, 2, 'bbb'), isFalse);
164 expect(a == new Edit(10, 2, 'aaa'), isFalse); 160 expect(a == new SourceEdit(10, 2, 'aaa'), isFalse);
165 } 161 }
166 162
167 void test_new() { 163 void test_new() {
168 Edit edit = new Edit(1, 2, 'foo'); 164 SourceEdit edit = new SourceEdit(1, 2, 'foo', id: 'my-id');
169 edit.id = 'my-id';
170 expect(edit.offset, 1); 165 expect(edit.offset, 1);
171 expect(edit.length, 2); 166 expect(edit.length, 2);
172 expect(edit.replacement, 'foo'); 167 expect(edit.replacement, 'foo');
173 expect( 168 expect(
174 edit.toString(), 169 edit.toJson(),
175 'Edit(offset=1, length=2, replacement=:>foo<:, id=my-id)'); 170 {'offset': 1, 'length': 2, 'replacement': 'foo', 'id': 'my-id'});
176 } 171 }
177 172
178 void test_new_range() { 173 void test_editFromRange() {
179 SourceRange range = new SourceRange(1, 2); 174 SourceRange range = new SourceRange(1, 2);
180 Edit edit = new Edit.range(range, 'foo'); 175 SourceEdit edit = editFromRange(range, 'foo');
181 expect(edit.offset, 1); 176 expect(edit.offset, 1);
182 expect(edit.length, 2); 177 expect(edit.length, 2);
183 expect(edit.replacement, 'foo'); 178 expect(edit.replacement, 'foo');
184 } 179 }
185 void test_toJson() { 180 void test_toJson() {
186 Edit edit = new Edit(1, 2, 'foo'); 181 SourceEdit edit = new SourceEdit(1, 2, 'foo');
187 var expectedJson = { 182 var expectedJson = {
188 OFFSET: 1, 183 OFFSET: 1,
189 LENGTH: 2, 184 LENGTH: 2,
190 REPLACEMENT: 'foo' 185 REPLACEMENT: 'foo'
191 }; 186 };
192 expect(edit.toJson(), expectedJson); 187 expect(edit.toJson(), expectedJson);
193 } 188 }
194 189
195 } 190 }
196 191
197 192
198 @ReflectiveTestCase() 193 @ReflectiveTestCase()
199 class FileEditTest { 194 class FileEditTest {
200 void test_addAll() { 195 void test_addAll() {
201 Edit edit1a = new Edit(1, 0, 'a1'); 196 SourceEdit edit1a = new SourceEdit(1, 0, 'a1');
202 Edit edit1b = new Edit(1, 0, 'a2'); 197 SourceEdit edit1b = new SourceEdit(1, 0, 'a2');
203 Edit edit10 = new Edit(10, 1, 'b'); 198 SourceEdit edit10 = new SourceEdit(10, 1, 'b');
204 Edit edit100 = new Edit(100, 2, 'c'); 199 SourceEdit edit100 = new SourceEdit(100, 2, 'c');
205 FileEdit fileEdit = new FileEdit('/test.dart'); 200 FileEdit fileEdit = new FileEdit('/test.dart');
206 fileEdit.addAll([edit100, edit1a, edit10, edit1b]); 201 fileEdit.addAll([edit100, edit1a, edit10, edit1b]);
207 expect(fileEdit.edits, [edit100, edit10, edit1b, edit1a]); 202 expect(fileEdit.edits, [edit100, edit10, edit1b, edit1a]);
208 } 203 }
209 204
210 void test_add_sorts() { 205 void test_add_sorts() {
211 Edit edit1a = new Edit(1, 0, 'a1'); 206 SourceEdit edit1a = new SourceEdit(1, 0, 'a1');
212 Edit edit1b = new Edit(1, 0, 'a2'); 207 SourceEdit edit1b = new SourceEdit(1, 0, 'a2');
213 Edit edit10 = new Edit(10, 1, 'b'); 208 SourceEdit edit10 = new SourceEdit(10, 1, 'b');
214 Edit edit100 = new Edit(100, 2, 'c'); 209 SourceEdit edit100 = new SourceEdit(100, 2, 'c');
215 FileEdit fileEdit = new FileEdit('/test.dart'); 210 FileEdit fileEdit = new FileEdit('/test.dart');
216 fileEdit.add(edit100); 211 fileEdit.add(edit100);
217 fileEdit.add(edit1a); 212 fileEdit.add(edit1a);
218 fileEdit.add(edit1b); 213 fileEdit.add(edit1b);
219 fileEdit.add(edit10); 214 fileEdit.add(edit10);
220 expect(fileEdit.edits, [edit100, edit10, edit1b, edit1a]); 215 expect(fileEdit.edits, [edit100, edit10, edit1b, edit1a]);
221 } 216 }
222 217
223 void test_new() { 218 void test_new() {
224 FileEdit fileEdit = new FileEdit('/test.dart'); 219 FileEdit fileEdit = new FileEdit('/test.dart');
225 fileEdit.add(new Edit(1, 2, 'aaa')); 220 fileEdit.add(new SourceEdit(1, 2, 'aaa'));
226 fileEdit.add(new Edit(10, 20, 'bbb')); 221 fileEdit.add(new SourceEdit(10, 20, 'bbb'));
227 expect( 222 expect(
228 fileEdit.toString(), 223 fileEdit.toString(),
229 'FileEdit(file=/test.dart, edits=[' 224 'FileEdit(file=/test.dart, edits=['
230 'Edit(offset=10, length=20, replacement=:>bbb<:), ' 225 '{"offset":10,"length":20,"replacement":"bbb"}, '
231 'Edit(offset=1, length=2, replacement=:>aaa<:)])'); 226 '{"offset":1,"length":2,"replacement":"aaa"}])');
232 } 227 }
233 228
234 void test_toJson() { 229 void test_toJson() {
235 FileEdit fileEdit = new FileEdit('/test.dart'); 230 FileEdit fileEdit = new FileEdit('/test.dart');
236 fileEdit.add(new Edit(1, 2, 'aaa')); 231 fileEdit.add(new SourceEdit(1, 2, 'aaa'));
237 fileEdit.add(new Edit(10, 20, 'bbb')); 232 fileEdit.add(new SourceEdit(10, 20, 'bbb'));
238 var expectedJson = { 233 var expectedJson = {
239 FILE: '/test.dart', 234 FILE: '/test.dart',
240 EDITS: [{ 235 EDITS: [{
241 OFFSET: 10, 236 OFFSET: 10,
242 LENGTH: 20, 237 LENGTH: 20,
243 REPLACEMENT: 'bbb' 238 REPLACEMENT: 'bbb'
244 }, { 239 }, {
245 OFFSET: 1, 240 OFFSET: 1,
246 LENGTH: 2, 241 LENGTH: 2,
247 REPLACEMENT: 'aaa' 242 REPLACEMENT: 'aaa'
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
337 332
338 void test_toJson() { 333 void test_toJson() {
339 Position position = new Position('/test.dart', 1); 334 Position position = new Position('/test.dart', 1);
340 var expectedJson = { 335 var expectedJson = {
341 FILE: '/test.dart', 336 FILE: '/test.dart',
342 OFFSET: 1 337 OFFSET: 1
343 }; 338 };
344 expect(position.toJson(), expectedJson); 339 expect(position.toJson(), expectedJson);
345 } 340 }
346 } 341 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698