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

Side by Side Diff: pkg/analyzer_plugin/test/src/utilities/change_builder/change_builder_core_test.dart

Issue 2962223002: Remove timeStamp from the ChangeBuilder API (Closed)
Patch Set: Created 3 years, 5 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
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, 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 import 'package:analyzer/src/generated/source.dart'; 5 import 'package:analyzer/src/generated/source.dart';
6 import 'package:analyzer_plugin/protocol/protocol_common.dart'; 6 import 'package:analyzer_plugin/protocol/protocol_common.dart';
7 import 'package:analyzer_plugin/src/utilities/change_builder/change_builder_core .dart'; 7 import 'package:analyzer_plugin/src/utilities/change_builder/change_builder_core .dart';
8 import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dar t'; 8 import 'package:analyzer_plugin/utilities/change_builder/change_builder_core.dar t';
9 import 'package:test/test.dart'; 9 import 'package:test/test.dart';
10 import 'package:test_reflective_loader/test_reflective_loader.dart'; 10 import 'package:test_reflective_loader/test_reflective_loader.dart';
11 11
12 main() { 12 main() {
13 defineReflectiveSuite(() { 13 defineReflectiveSuite(() {
14 defineReflectiveTests(ChangeBuilderImplTest); 14 defineReflectiveTests(ChangeBuilderImplTest);
15 defineReflectiveTests(EditBuilderImplTest); 15 defineReflectiveTests(EditBuilderImplTest);
16 defineReflectiveTests(FileEditBuilderImplTest); 16 defineReflectiveTests(FileEditBuilderImplTest);
17 defineReflectiveTests(LinkedEditBuilderImplTest); 17 defineReflectiveTests(LinkedEditBuilderImplTest);
18 }); 18 });
19 } 19 }
20 20
21 @reflectiveTest 21 @reflectiveTest
22 class ChangeBuilderImplTest { 22 class ChangeBuilderImplTest {
23 test_createFileEditBuilder() async { 23 test_createFileEditBuilder() async {
24 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 24 ChangeBuilderImpl builder = new ChangeBuilderImpl();
25 String path = '/test.dart'; 25 String path = '/test.dart';
26 int timeStamp = 54;
27 FileEditBuilderImpl fileEditBuilder = 26 FileEditBuilderImpl fileEditBuilder =
28 await builder.createFileEditBuilder(path, timeStamp); 27 await builder.createFileEditBuilder(path);
29 expect(fileEditBuilder, new isInstanceOf<FileEditBuilder>()); 28 expect(fileEditBuilder, new isInstanceOf<FileEditBuilder>());
30 SourceFileEdit fileEdit = fileEditBuilder.fileEdit; 29 SourceFileEdit fileEdit = fileEditBuilder.fileEdit;
31 expect(fileEdit.file, path); 30 expect(fileEdit.file, path);
32 expect(fileEdit.fileStamp, timeStamp);
33 } 31 }
34 32
35 void test_getLinkedEditGroup() { 33 void test_getLinkedEditGroup() {
36 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 34 ChangeBuilderImpl builder = new ChangeBuilderImpl();
37 LinkedEditGroup group = builder.getLinkedEditGroup('a'); 35 LinkedEditGroup group = builder.getLinkedEditGroup('a');
38 expect(identical(builder.getLinkedEditGroup('b'), group), isFalse); 36 expect(identical(builder.getLinkedEditGroup('b'), group), isFalse);
39 expect(identical(builder.getLinkedEditGroup('a'), group), isTrue); 37 expect(identical(builder.getLinkedEditGroup('a'), group), isTrue);
40 } 38 }
41 39
42 void test_setSelection() { 40 void test_setSelection() {
43 Position position = new Position('test.dart', 3); 41 Position position = new Position('test.dart', 3);
44 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 42 ChangeBuilderImpl builder = new ChangeBuilderImpl();
45 builder.setSelection(position); 43 builder.setSelection(position);
46 expect(builder.sourceChange.selection, position); 44 expect(builder.sourceChange.selection, position);
47 } 45 }
48 46
49 void test_sourceChange_noChanges() { 47 void test_sourceChange_noChanges() {
50 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 48 ChangeBuilderImpl builder = new ChangeBuilderImpl();
51 SourceChange sourceChange = builder.sourceChange; 49 SourceChange sourceChange = builder.sourceChange;
52 expect(sourceChange, isNotNull); 50 expect(sourceChange, isNotNull);
53 expect(sourceChange.edits, isEmpty); 51 expect(sourceChange.edits, isEmpty);
54 expect(sourceChange.linkedEditGroups, isEmpty); 52 expect(sourceChange.linkedEditGroups, isEmpty);
55 expect(sourceChange.message, isEmpty); 53 expect(sourceChange.message, isEmpty);
56 expect(sourceChange.selection, isNull); 54 expect(sourceChange.selection, isNull);
57 } 55 }
58 56
59 test_sourceChange_oneChange() async { 57 test_sourceChange_oneChange() async {
60 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 58 ChangeBuilderImpl builder = new ChangeBuilderImpl();
61 String path = '/test.dart'; 59 String path = '/test.dart';
62 await builder.addFileEdit(path, 0, (FileEditBuilder builder) {}); 60 await builder.addFileEdit(path, (FileEditBuilder builder) {});
63 builder.getLinkedEditGroup('a'); 61 builder.getLinkedEditGroup('a');
64 SourceChange sourceChange = builder.sourceChange; 62 SourceChange sourceChange = builder.sourceChange;
65 expect(sourceChange, isNotNull); 63 expect(sourceChange, isNotNull);
66 expect(sourceChange.edits, hasLength(1)); 64 expect(sourceChange.edits, hasLength(1));
67 expect(sourceChange.linkedEditGroups, hasLength(1)); 65 expect(sourceChange.linkedEditGroups, hasLength(1));
68 expect(sourceChange.message, isEmpty); 66 expect(sourceChange.message, isEmpty);
69 expect(sourceChange.selection, isNull); 67 expect(sourceChange.selection, isNull);
70 } 68 }
71 } 69 }
72 70
73 @reflectiveTest 71 @reflectiveTest
74 class EditBuilderImplTest { 72 class EditBuilderImplTest {
75 String path = '/test.dart'; 73 String path = '/test.dart';
76 74
77 test_addLinkedEdit() async { 75 test_addLinkedEdit() async {
78 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 76 ChangeBuilderImpl builder = new ChangeBuilderImpl();
79 int offset = 10; 77 int offset = 10;
80 String text = 'content'; 78 String text = 'content';
81 await builder.addFileEdit(path, 0, (FileEditBuilder builder) { 79 await builder.addFileEdit(path, (FileEditBuilder builder) {
82 builder.addInsertion(10, (EditBuilder builder) { 80 builder.addInsertion(10, (EditBuilder builder) {
83 builder.addLinkedEdit('a', (LinkedEditBuilder builder) { 81 builder.addLinkedEdit('a', (LinkedEditBuilder builder) {
84 builder.write(text); 82 builder.write(text);
85 }); 83 });
86 SourceEdit sourceEdit = (builder as EditBuilderImpl).sourceEdit; 84 SourceEdit sourceEdit = (builder as EditBuilderImpl).sourceEdit;
87 expect(sourceEdit.replacement, text); 85 expect(sourceEdit.replacement, text);
88 }); 86 });
89 }); 87 });
90 SourceChange sourceChange = builder.sourceChange; 88 SourceChange sourceChange = builder.sourceChange;
91 expect(sourceChange, isNotNull); 89 expect(sourceChange, isNotNull);
92 List<LinkedEditGroup> groups = sourceChange.linkedEditGroups; 90 List<LinkedEditGroup> groups = sourceChange.linkedEditGroups;
93 expect(groups, hasLength(1)); 91 expect(groups, hasLength(1));
94 LinkedEditGroup group = groups[0]; 92 LinkedEditGroup group = groups[0];
95 expect(group, isNotNull); 93 expect(group, isNotNull);
96 expect(group.length, text.length); 94 expect(group.length, text.length);
97 List<Position> positions = group.positions; 95 List<Position> positions = group.positions;
98 expect(positions, hasLength(1)); 96 expect(positions, hasLength(1));
99 expect(positions[0].offset, offset); 97 expect(positions[0].offset, offset);
100 } 98 }
101 99
102 test_addSimpleLinkedEdit() async { 100 test_addSimpleLinkedEdit() async {
103 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 101 ChangeBuilderImpl builder = new ChangeBuilderImpl();
104 int offset = 10; 102 int offset = 10;
105 String text = 'content'; 103 String text = 'content';
106 await builder.addFileEdit(path, 0, (FileEditBuilder builder) { 104 await builder.addFileEdit(path, (FileEditBuilder builder) {
107 builder.addInsertion(10, (EditBuilder builder) { 105 builder.addInsertion(10, (EditBuilder builder) {
108 builder.addSimpleLinkedEdit('a', text); 106 builder.addSimpleLinkedEdit('a', text);
109 SourceEdit sourceEdit = (builder as EditBuilderImpl).sourceEdit; 107 SourceEdit sourceEdit = (builder as EditBuilderImpl).sourceEdit;
110 expect(sourceEdit.replacement, text); 108 expect(sourceEdit.replacement, text);
111 }); 109 });
112 }); 110 });
113 SourceChange sourceChange = builder.sourceChange; 111 SourceChange sourceChange = builder.sourceChange;
114 expect(sourceChange, isNotNull); 112 expect(sourceChange, isNotNull);
115 List<LinkedEditGroup> groups = sourceChange.linkedEditGroups; 113 List<LinkedEditGroup> groups = sourceChange.linkedEditGroups;
116 expect(groups, hasLength(1)); 114 expect(groups, hasLength(1));
117 LinkedEditGroup group = groups[0]; 115 LinkedEditGroup group = groups[0];
118 expect(group, isNotNull); 116 expect(group, isNotNull);
119 expect(group.length, text.length); 117 expect(group.length, text.length);
120 List<Position> positions = group.positions; 118 List<Position> positions = group.positions;
121 expect(positions, hasLength(1)); 119 expect(positions, hasLength(1));
122 expect(positions[0].offset, offset); 120 expect(positions[0].offset, offset);
123 } 121 }
124 122
125 test_createLinkedEditBuilder() async { 123 test_createLinkedEditBuilder() async {
126 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 124 ChangeBuilderImpl builder = new ChangeBuilderImpl();
127 await builder.addFileEdit(path, 0, (FileEditBuilder builder) { 125 await builder.addFileEdit(path, (FileEditBuilder builder) {
128 builder.addInsertion(10, (EditBuilder builder) { 126 builder.addInsertion(10, (EditBuilder builder) {
129 LinkedEditBuilderImpl linkBuilder = 127 LinkedEditBuilderImpl linkBuilder =
130 (builder as EditBuilderImpl).createLinkedEditBuilder(); 128 (builder as EditBuilderImpl).createLinkedEditBuilder();
131 expect(linkBuilder, new isInstanceOf<LinkedEditBuilder>()); 129 expect(linkBuilder, new isInstanceOf<LinkedEditBuilder>());
132 }); 130 });
133 }); 131 });
134 } 132 }
135 133
136 test_selectHere() async { 134 test_selectHere() async {
137 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 135 ChangeBuilderImpl builder = new ChangeBuilderImpl();
138 await builder.addFileEdit(path, 0, (FileEditBuilder builder) { 136 await builder.addFileEdit(path, (FileEditBuilder builder) {
139 builder.addInsertion(10, (EditBuilder builder) { 137 builder.addInsertion(10, (EditBuilder builder) {
140 builder.selectHere(); 138 builder.selectHere();
141 }); 139 });
142 }); 140 });
143 expect(builder.sourceChange.selection.offset, 10); 141 expect(builder.sourceChange.selection.offset, 10);
144 } 142 }
145 143
146 test_write() async { 144 test_write() async {
147 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 145 ChangeBuilderImpl builder = new ChangeBuilderImpl();
148 int timeStamp = 93;
149 int offset = 10; 146 int offset = 10;
150 String text = 'write'; 147 String text = 'write';
151 await builder.addFileEdit(path, timeStamp, (FileEditBuilder builder) { 148 await builder.addFileEdit(path, (FileEditBuilder builder) {
152 builder.addInsertion(offset, (EditBuilder builder) { 149 builder.addInsertion(offset, (EditBuilder builder) {
153 builder.write(text); 150 builder.write(text);
154 }); 151 });
155 }); 152 });
156 153
157 SourceChange sourceChange = builder.sourceChange; 154 SourceChange sourceChange = builder.sourceChange;
158 expect(sourceChange, isNotNull); 155 expect(sourceChange, isNotNull);
159 156
160 List<SourceFileEdit> fileEdits = sourceChange.edits; 157 List<SourceFileEdit> fileEdits = sourceChange.edits;
161 expect(fileEdits, hasLength(1)); 158 expect(fileEdits, hasLength(1));
162 SourceFileEdit fileEdit = fileEdits[0]; 159 SourceFileEdit fileEdit = fileEdits[0];
163 expect(fileEdit, isNotNull); 160 expect(fileEdit, isNotNull);
164 expect(fileEdit.file, path); 161 expect(fileEdit.file, path);
165 expect(fileEdit.fileStamp, timeStamp);
166 162
167 List<SourceEdit> edits = fileEdit.edits; 163 List<SourceEdit> edits = fileEdit.edits;
168 expect(edits, hasLength(1)); 164 expect(edits, hasLength(1));
169 SourceEdit edit = edits[0]; 165 SourceEdit edit = edits[0];
170 expect(edit, isNotNull); 166 expect(edit, isNotNull);
171 expect(edit.offset, offset); 167 expect(edit.offset, offset);
172 expect(edit.length, 0); 168 expect(edit.length, 0);
173 expect(edit.replacement, text); 169 expect(edit.replacement, text);
174 } 170 }
175 171
176 test_writeln_withoutText() async { 172 test_writeln_withoutText() async {
177 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 173 ChangeBuilderImpl builder = new ChangeBuilderImpl();
178 int timeStamp = 39;
179 int offset = 52; 174 int offset = 52;
180 int length = 12; 175 int length = 12;
181 await builder.addFileEdit(path, timeStamp, (FileEditBuilder builder) { 176 await builder.addFileEdit(path, (FileEditBuilder builder) {
182 builder.addReplacement(new SourceRange(offset, length), 177 builder.addReplacement(new SourceRange(offset, length),
183 (EditBuilder builder) { 178 (EditBuilder builder) {
184 builder.writeln(); 179 builder.writeln();
185 }); 180 });
186 }); 181 });
187 182
188 SourceChange sourceChange = builder.sourceChange; 183 SourceChange sourceChange = builder.sourceChange;
189 expect(sourceChange, isNotNull); 184 expect(sourceChange, isNotNull);
190 185
191 List<SourceFileEdit> fileEdits = sourceChange.edits; 186 List<SourceFileEdit> fileEdits = sourceChange.edits;
192 expect(fileEdits, hasLength(1)); 187 expect(fileEdits, hasLength(1));
193 SourceFileEdit fileEdit = fileEdits[0]; 188 SourceFileEdit fileEdit = fileEdits[0];
194 expect(fileEdit, isNotNull); 189 expect(fileEdit, isNotNull);
195 expect(fileEdit.file, path); 190 expect(fileEdit.file, path);
196 expect(fileEdit.fileStamp, timeStamp);
197 191
198 List<SourceEdit> edits = fileEdit.edits; 192 List<SourceEdit> edits = fileEdit.edits;
199 expect(edits, hasLength(1)); 193 expect(edits, hasLength(1));
200 SourceEdit edit = edits[0]; 194 SourceEdit edit = edits[0];
201 expect(edit, isNotNull); 195 expect(edit, isNotNull);
202 expect(edit.offset, offset); 196 expect(edit.offset, offset);
203 expect(edit.length, length); 197 expect(edit.length, length);
204 expect(edit.replacement == '\n' || edit.replacement == '\r\n', isTrue); 198 expect(edit.replacement == '\n' || edit.replacement == '\r\n', isTrue);
205 } 199 }
206 200
207 test_writeln_withText() async { 201 test_writeln_withText() async {
208 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 202 ChangeBuilderImpl builder = new ChangeBuilderImpl();
209 int timeStamp = 39;
210 int offset = 52; 203 int offset = 52;
211 int length = 12; 204 int length = 12;
212 String text = 'writeln'; 205 String text = 'writeln';
213 await builder.addFileEdit(path, timeStamp, (FileEditBuilder builder) { 206 await builder.addFileEdit(path, (FileEditBuilder builder) {
214 builder.addReplacement(new SourceRange(offset, length), 207 builder.addReplacement(new SourceRange(offset, length),
215 (EditBuilder builder) { 208 (EditBuilder builder) {
216 builder.writeln(text); 209 builder.writeln(text);
217 }); 210 });
218 }); 211 });
219 212
220 SourceChange sourceChange = builder.sourceChange; 213 SourceChange sourceChange = builder.sourceChange;
221 expect(sourceChange, isNotNull); 214 expect(sourceChange, isNotNull);
222 215
223 List<SourceFileEdit> fileEdits = sourceChange.edits; 216 List<SourceFileEdit> fileEdits = sourceChange.edits;
224 expect(fileEdits, hasLength(1)); 217 expect(fileEdits, hasLength(1));
225 SourceFileEdit fileEdit = fileEdits[0]; 218 SourceFileEdit fileEdit = fileEdits[0];
226 expect(fileEdit, isNotNull); 219 expect(fileEdit, isNotNull);
227 expect(fileEdit.file, path); 220 expect(fileEdit.file, path);
228 expect(fileEdit.fileStamp, timeStamp);
229 221
230 List<SourceEdit> edits = fileEdit.edits; 222 List<SourceEdit> edits = fileEdit.edits;
231 expect(edits, hasLength(1)); 223 expect(edits, hasLength(1));
232 SourceEdit edit = edits[0]; 224 SourceEdit edit = edits[0];
233 expect(edit, isNotNull); 225 expect(edit, isNotNull);
234 expect(edit.offset, offset); 226 expect(edit.offset, offset);
235 expect(edit.length, length); 227 expect(edit.length, length);
236 expect(edit.replacement == '$text\n' || edit.replacement == '$text\r\n', 228 expect(edit.replacement == '$text\n' || edit.replacement == '$text\r\n',
237 isTrue); 229 isTrue);
238 } 230 }
239 } 231 }
240 232
241 @reflectiveTest 233 @reflectiveTest
242 class FileEditBuilderImplTest { 234 class FileEditBuilderImplTest {
243 String path = '/test.dart'; 235 String path = '/test.dart';
244 236
245 test_addDeletion() async { 237 test_addDeletion() async {
246 int offset = 23; 238 int offset = 23;
247 int length = 7; 239 int length = 7;
248 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 240 ChangeBuilderImpl builder = new ChangeBuilderImpl();
249 await builder.addFileEdit(path, 0, (FileEditBuilder builder) { 241 await builder.addFileEdit(path, (FileEditBuilder builder) {
250 builder.addDeletion(new SourceRange(offset, length)); 242 builder.addDeletion(new SourceRange(offset, length));
251 }); 243 });
252 List<SourceEdit> edits = builder.sourceChange.edits[0].edits; 244 List<SourceEdit> edits = builder.sourceChange.edits[0].edits;
253 expect(edits, hasLength(1)); 245 expect(edits, hasLength(1));
254 expect(edits[0].offset, offset); 246 expect(edits[0].offset, offset);
255 expect(edits[0].length, length); 247 expect(edits[0].length, length);
256 expect(edits[0].replacement, isEmpty); 248 expect(edits[0].replacement, isEmpty);
257 } 249 }
258 250
259 test_addInsertion() async { 251 test_addInsertion() async {
260 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 252 ChangeBuilderImpl builder = new ChangeBuilderImpl();
261 await builder.addFileEdit(path, 0, (FileEditBuilder builder) { 253 await builder.addFileEdit(path, (FileEditBuilder builder) {
262 builder.addInsertion(10, (EditBuilder builder) { 254 builder.addInsertion(10, (EditBuilder builder) {
263 expect(builder, isNotNull); 255 expect(builder, isNotNull);
264 }); 256 });
265 }); 257 });
266 } 258 }
267 259
268 test_addLinkedPosition() async { 260 test_addLinkedPosition() async {
269 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 261 ChangeBuilderImpl builder = new ChangeBuilderImpl();
270 String groupName = 'a'; 262 String groupName = 'a';
271 await builder.addFileEdit(path, 0, (FileEditBuilder builder) { 263 await builder.addFileEdit(path, (FileEditBuilder builder) {
272 builder.addLinkedPosition(new SourceRange(3, 6), groupName); 264 builder.addLinkedPosition(new SourceRange(3, 6), groupName);
273 }); 265 });
274 266
275 LinkedEditGroup group = builder.getLinkedEditGroup(groupName); 267 LinkedEditGroup group = builder.getLinkedEditGroup(groupName);
276 List<Position> positions = group.positions; 268 List<Position> positions = group.positions;
277 expect(positions, hasLength(1)); 269 expect(positions, hasLength(1));
278 Position position = positions[0]; 270 Position position = positions[0];
279 expect(position.file, path); 271 expect(position.file, path);
280 expect(position.offset, 3); 272 expect(position.offset, 3);
281 expect(group.length, 6); 273 expect(group.length, 6);
282 } 274 }
283 275
284 test_addReplacement() async { 276 test_addReplacement() async {
285 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 277 ChangeBuilderImpl builder = new ChangeBuilderImpl();
286 await builder.addFileEdit(path, 0, (FileEditBuilder builder) { 278 await builder.addFileEdit(path, (FileEditBuilder builder) {
287 builder.addReplacement(new SourceRange(4, 5), (EditBuilder builder) { 279 builder.addReplacement(new SourceRange(4, 5), (EditBuilder builder) {
288 expect(builder, isNotNull); 280 expect(builder, isNotNull);
289 }); 281 });
290 }); 282 });
291 } 283 }
292 284
293 test_addSimpleInsertion() async { 285 test_addSimpleInsertion() async {
294 int offset = 23; 286 int offset = 23;
295 String text = 'xyz'; 287 String text = 'xyz';
296 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 288 ChangeBuilderImpl builder = new ChangeBuilderImpl();
297 await builder.addFileEdit(path, 0, (FileEditBuilder builder) { 289 await builder.addFileEdit(path, (FileEditBuilder builder) {
298 builder.addSimpleInsertion(offset, text); 290 builder.addSimpleInsertion(offset, text);
299 }); 291 });
300 List<SourceEdit> edits = builder.sourceChange.edits[0].edits; 292 List<SourceEdit> edits = builder.sourceChange.edits[0].edits;
301 expect(edits, hasLength(1)); 293 expect(edits, hasLength(1));
302 expect(edits[0].offset, offset); 294 expect(edits[0].offset, offset);
303 expect(edits[0].length, 0); 295 expect(edits[0].length, 0);
304 expect(edits[0].replacement, text); 296 expect(edits[0].replacement, text);
305 } 297 }
306 298
307 test_addSimpleReplacement() async { 299 test_addSimpleReplacement() async {
308 int offset = 23; 300 int offset = 23;
309 int length = 7; 301 int length = 7;
310 String text = 'xyz'; 302 String text = 'xyz';
311 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 303 ChangeBuilderImpl builder = new ChangeBuilderImpl();
312 await builder.addFileEdit(path, 0, (FileEditBuilder builder) { 304 await builder.addFileEdit(path, (FileEditBuilder builder) {
313 builder.addSimpleReplacement(new SourceRange(offset, length), text); 305 builder.addSimpleReplacement(new SourceRange(offset, length), text);
314 }); 306 });
315 List<SourceEdit> edits = builder.sourceChange.edits[0].edits; 307 List<SourceEdit> edits = builder.sourceChange.edits[0].edits;
316 expect(edits, hasLength(1)); 308 expect(edits, hasLength(1));
317 expect(edits[0].offset, offset); 309 expect(edits[0].offset, offset);
318 expect(edits[0].length, length); 310 expect(edits[0].length, length);
319 expect(edits[0].replacement, text); 311 expect(edits[0].replacement, text);
320 } 312 }
321 313
322 test_createEditBuilder() async { 314 test_createEditBuilder() async {
323 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 315 ChangeBuilderImpl builder = new ChangeBuilderImpl();
324 await builder.addFileEdit(path, 0, (FileEditBuilder builder) { 316 await builder.addFileEdit(path, (FileEditBuilder builder) {
325 int offset = 4; 317 int offset = 4;
326 int length = 5; 318 int length = 5;
327 EditBuilderImpl editBuilder = 319 EditBuilderImpl editBuilder =
328 (builder as FileEditBuilderImpl).createEditBuilder(offset, length); 320 (builder as FileEditBuilderImpl).createEditBuilder(offset, length);
329 expect(editBuilder, new isInstanceOf<EditBuilder>()); 321 expect(editBuilder, new isInstanceOf<EditBuilder>());
330 SourceEdit sourceEdit = editBuilder.sourceEdit; 322 SourceEdit sourceEdit = editBuilder.sourceEdit;
331 expect(sourceEdit.length, length); 323 expect(sourceEdit.length, length);
332 expect(sourceEdit.offset, offset); 324 expect(sourceEdit.offset, offset);
333 expect(sourceEdit.replacement, isEmpty); 325 expect(sourceEdit.replacement, isEmpty);
334 }); 326 });
335 } 327 }
336 } 328 }
337 329
338 @reflectiveTest 330 @reflectiveTest
339 class LinkedEditBuilderImplTest { 331 class LinkedEditBuilderImplTest {
340 String path = '/test.dart'; 332 String path = '/test.dart';
341 333
342 test_addSuggestion() async { 334 test_addSuggestion() async {
343 String groupName = 'a'; 335 String groupName = 'a';
344 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 336 ChangeBuilderImpl builder = new ChangeBuilderImpl();
345 await builder.addFileEdit(path, 0, (FileEditBuilder builder) { 337 await builder.addFileEdit(path, (FileEditBuilder builder) {
346 builder.addInsertion(10, (EditBuilder builder) { 338 builder.addInsertion(10, (EditBuilder builder) {
347 builder.addLinkedEdit(groupName, (LinkedEditBuilder builder) { 339 builder.addLinkedEdit(groupName, (LinkedEditBuilder builder) {
348 builder.addSuggestion(LinkedEditSuggestionKind.TYPE, 'A'); 340 builder.addSuggestion(LinkedEditSuggestionKind.TYPE, 'A');
349 }); 341 });
350 }); 342 });
351 }); 343 });
352 344
353 LinkedEditGroup group = builder.getLinkedEditGroup(groupName); 345 LinkedEditGroup group = builder.getLinkedEditGroup(groupName);
354 expect(group.suggestions, hasLength(1)); 346 expect(group.suggestions, hasLength(1));
355 } 347 }
356 348
357 test_addSuggestions() async { 349 test_addSuggestions() async {
358 String groupName = 'a'; 350 String groupName = 'a';
359 ChangeBuilderImpl builder = new ChangeBuilderImpl(); 351 ChangeBuilderImpl builder = new ChangeBuilderImpl();
360 await builder.addFileEdit(path, 0, (FileEditBuilder builder) { 352 await builder.addFileEdit(path, (FileEditBuilder builder) {
361 builder.addInsertion(10, (EditBuilder builder) { 353 builder.addInsertion(10, (EditBuilder builder) {
362 builder.addLinkedEdit(groupName, (LinkedEditBuilder builder) { 354 builder.addLinkedEdit(groupName, (LinkedEditBuilder builder) {
363 builder.addSuggestions(LinkedEditSuggestionKind.TYPE, ['A', 'B']); 355 builder.addSuggestions(LinkedEditSuggestionKind.TYPE, ['A', 'B']);
364 }); 356 });
365 }); 357 });
366 }); 358 });
367 359
368 LinkedEditGroup group = builder.getLinkedEditGroup(groupName); 360 LinkedEditGroup group = builder.getLinkedEditGroup(groupName);
369 expect(group.suggestions, hasLength(2)); 361 expect(group.suggestions, hasLength(2));
370 } 362 }
371 } 363 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698