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

Side by Side Diff: pkg/analysis_server/test/edit/assists_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.edit.assists; 5 library test.edit.assists;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/constants.dart';
10 import 'package:analysis_server/src/edit/edit_domain.dart'; 9 import 'package:analysis_server/src/edit/edit_domain.dart';
11 import 'package:analysis_server/src/protocol.dart'; 10 import 'package:analysis_server/src/protocol.dart';
12 import 'package:analysis_server/src/protocol2.dart'; 11 import 'package:analysis_server/src/protocol2.dart';
13 import 'package:analysis_server/src/services/correction/change.dart'; 12 import 'package:analysis_server/src/services/correction/change.dart';
14 import 'package:analysis_testing/reflective_tests.dart'; 13 import 'package:analysis_testing/reflective_tests.dart';
15 import 'package:unittest/unittest.dart' hide ERROR; 14 import 'package:unittest/unittest.dart' hide ERROR;
16 15
17 import '../analysis_abstract.dart'; 16 import '../analysis_abstract.dart';
18 17
19 18
20 main() { 19 main() {
21 groupSep = ' | '; 20 groupSep = ' | ';
22 runReflectiveTests(AssistsTest); 21 runReflectiveTests(AssistsTest);
23 } 22 }
24 23
25 24
26 @ReflectiveTestCase() 25 @ReflectiveTestCase()
27 class AssistsTest extends AbstractAnalysisTest { 26 class AssistsTest extends AbstractAnalysisTest {
28 List<Change> changes; 27 List<Change> changes;
29 28
30 void prepareAssists(String search, [int length = 0]) { 29 void prepareAssists(String search, [int length = 0]) {
31 int offset = findOffset(search); 30 int offset = findOffset(search);
32 prepareAssistsAt(offset, length); 31 prepareAssistsAt(offset, length);
33 } 32 }
34 33
35 void prepareAssistsAt(int offset, int length) { 34 void prepareAssistsAt(int offset, int length) {
36 Request request = new EditGetAssistsParams(testFile, offset, 35 Request request = new EditGetAssistsParams(testFile, offset,
37 length).toRequest('0'); 36 length).toRequest('0');
38 Response response = handleSuccessfulRequest(request); 37 Response response = handleSuccessfulRequest(request);
39 List<Map<String, dynamic>> changeJsonList = response.getResult(ASSISTS); 38 var result = new EditGetAssistsResult.fromResponse(response);
39 List<SourceChange> sourceChangeList = result.assists;
40 // TODO(scheglov) consider using generated classes and decoders 40 // TODO(scheglov) consider using generated classes and decoders
41 changes = changeJsonList.map((Map<String, dynamic> changeJson) { 41 changes = sourceChangeList.map((SourceChange sourceChange) {
42 Change change = new Change(changeJson[MESSAGE]); 42 Change change = new Change(sourceChange.message);
43 changeJson[EDITS].forEach((Map<String, dynamic> fileEditJson) { 43 sourceChange.edits.forEach((SourceFileEdit sourceFileEdit) {
44 FileEdit fileEdit = new FileEdit(fileEditJson[FILE]); 44 FileEdit fileEdit = new FileEdit(sourceFileEdit.file);
45 change.fileEdits.add(fileEdit); 45 change.fileEdits.add(fileEdit);
46 fileEditJson[EDITS].forEach((Map<String, dynamic> json) { 46 fileEdit.edits.addAll(sourceFileEdit.edits);
47 Edit edit = new Edit(json[OFFSET], json[LENGTH], json[REPLACEMENT]);
48 fileEdit.edits.add(edit);
49 });
50 }); 47 });
51 return change; 48 return change;
52 }).toList(); 49 }).toList();
53 } 50 }
54 51
55 @override 52 @override
56 void setUp() { 53 void setUp() {
57 super.setUp(); 54 super.setUp();
58 createProject(); 55 createProject();
59 handler = new EditDomainHandler(server); 56 handler = new EditDomainHandler(server);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 } 108 }
112 } 109 }
113 '''); 110 ''');
114 }); 111 });
115 } 112 }
116 113
117 void _assertHasChange(String message, String expectedCode) { 114 void _assertHasChange(String message, String expectedCode) {
118 for (Change change in changes) { 115 for (Change change in changes) {
119 if (change.message == message) { 116 if (change.message == message) {
120 String resultCode = 117 String resultCode =
121 Edit.applySequence(testCode, change.fileEdits[0].edits); 118 applySequence(testCode, change.fileEdits[0].edits);
122 expect(resultCode, expectedCode); 119 expect(resultCode, expectedCode);
123 return; 120 return;
124 } 121 }
125 } 122 }
126 fail("Expected to find |$message| in\n" + changes.join('\n')); 123 fail("Expected to find |$message| in\n" + changes.join('\n'));
127 } 124 }
128 } 125 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698