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

Side by Side Diff: pkg/analysis_server/test/analysis_server_test.dart

Issue 308003009: Add ServerOperation and queue. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Remove some priorities Created 6 years, 6 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.analysis_server; 5 library test.analysis_server;
6 6
7 import 'dart:async';
8
9 import 'package:analyzer/src/generated/engine.dart'; 7 import 'package:analyzer/src/generated/engine.dart';
10 import 'package:analyzer/src/generated/error.dart'; 8 import 'package:analyzer/src/generated/error.dart';
11 import 'package:analysis_server/src/analysis_server.dart'; 9 import 'package:analysis_server/src/analysis_server.dart';
12 import 'package:analysis_server/src/constants.dart'; 10 import 'package:analysis_server/src/constants.dart';
13 import 'package:analysis_server/src/domain_server.dart'; 11 import 'package:analysis_server/src/domain_server.dart';
14 import 'package:analysis_server/src/protocol.dart'; 12 import 'package:analysis_server/src/protocol.dart';
15 import 'package:analysis_server/src/resource.dart'; 13 import 'package:analysis_server/src/resource.dart';
16 import 'package:mock/mock.dart'; 14 import 'package:mock/mock.dart';
17 import 'package:unittest/unittest.dart'; 15 import 'package:unittest/unittest.dart';
18 16
19 import 'mocks.dart'; 17 import 'mocks.dart';
20 18
21 class AnalysisServerTestHelper { 19 class AnalysisServerTestHelper {
22 MockServerChannel channel; 20 MockServerChannel channel;
23 AnalysisServer server; 21 AnalysisServer server;
24 MockAnalysisLogger logger; 22 MockAnalysisLogger logger;
25 23
26 AnalysisServerTestHelper() { 24 AnalysisServerTestHelper() {
27 channel = new MockServerChannel(); 25 channel = new MockServerChannel();
28 server = new AnalysisServer(channel, PhysicalResourceProvider.INSTANCE); 26 server = new AnalysisServer(channel, PhysicalResourceProvider.INSTANCE);
29 logger = new MockAnalysisLogger(); 27 logger = new MockAnalysisLogger();
30 AnalysisEngine.instance.logger = logger; 28 AnalysisEngine.instance.logger = logger;
31 } 29 }
32 } 30 }
33 31
34 main() { 32 main() {
35 group('AnalysisServer', () { 33 group('AnalysisServer', () {
36 test('addContextToWorkQueue_whenNotRunning', () {
37 AnalysisServerTestHelper helper = new AnalysisServerTestHelper();
38 helper.server.running = false;
39 MockAnalysisContext context = new MockAnalysisContext();
40 helper.server.addContextToWorkQueue(context);
41 // Pump the event queue to make sure the server doesn't try to do any
42 // analysis.
43 return pumpEventQueue();
44 });
45
46 test('echo', () { 34 test('echo', () {
47 AnalysisServerTestHelper helper = new AnalysisServerTestHelper(); 35 AnalysisServerTestHelper helper = new AnalysisServerTestHelper();
48 helper.server.handlers = [new EchoHandler()]; 36 helper.server.handlers = [new EchoHandler()];
49 var request = new Request('my22', 'echo'); 37 var request = new Request('my22', 'echo');
50 return helper.channel.sendRequest(request) 38 return helper.channel.sendRequest(request)
51 .then((Response response) { 39 .then((Response response) {
52 expect(response.id, equals('my22')); 40 expect(response.id, equals('my22'));
53 expect(response.error, isNull); 41 expect(response.error, isNull);
54 }); 42 });
55 }); 43 });
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 // %s formatting in its correction string. But no such errors or hints 78 // %s formatting in its correction string. But no such errors or hints
91 // currently exist! 79 // currently exist!
92 HintCode errorCode = HintCode.MISSING_RETURN; 80 HintCode errorCode = HintCode.MISSING_RETURN;
93 81
94 AnalysisError analysisError = 82 AnalysisError analysisError =
95 new AnalysisError.con2(source, 10, 5, errorCode, ['int']); 83 new AnalysisError.con2(source, 10, 5, errorCode, ['int']);
96 Map<String, Object> json = AnalysisServer.errorToJson(analysisError); 84 Map<String, Object> json = AnalysisServer.errorToJson(analysisError);
97 expect(json['correction'], equals(errorCode.correction)); 85 expect(json['correction'], equals(errorCode.correction));
98 }); 86 });
99 87
100 test('performTask_whenNotRunning', () {
101 AnalysisServerTestHelper helper = new AnalysisServerTestHelper();
102 // If the server is shut down while there is analysis still pending,
103 // performTask() should notice that the server is no longer running and
104 // do no analysis.
105 MockAnalysisContext context = new MockAnalysisContext();
106 helper.server.addContextToWorkQueue(context);
107 helper.server.running = false;
108 // Pump the event queue to make sure the server doesn't try to do any
109 // analysis.
110 return pumpEventQueue();
111 });
112
113 test('shutdown', () { 88 test('shutdown', () {
114 AnalysisServerTestHelper helper = new AnalysisServerTestHelper(); 89 AnalysisServerTestHelper helper = new AnalysisServerTestHelper();
115 helper.server.handlers = [new ServerDomainHandler(helper.server)]; 90 helper.server.handlers = [new ServerDomainHandler(helper.server)];
116 var request = new Request('my28', METHOD_SHUTDOWN); 91 var request = new Request('my28', METHOD_SHUTDOWN);
117 return helper.channel.sendRequest(request) 92 return helper.channel.sendRequest(request)
118 .then((Response response) { 93 .then((Response response) {
119 expect(response.id, equals('my28')); 94 expect(response.id, equals('my28'));
120 expect(response.error, isNull); 95 expect(response.error, isNull);
121 }); 96 });
122 }); 97 });
(...skipping 15 matching lines...) Expand all
138 @override 113 @override
139 Response handleRequest(Request request) { 114 Response handleRequest(Request request) {
140 if (request.method == 'echo') { 115 if (request.method == 'echo') {
141 var response = new Response(request.id); 116 var response = new Response(request.id);
142 response.setResult('echo', true); 117 response.setResult('echo', true);
143 return response; 118 return response;
144 } 119 }
145 return null; 120 return null;
146 } 121 }
147 } 122 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698