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

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

Issue 302323002: Add a boolean which causes AnalysisServer to rethrow exceptions. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: 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
« no previous file with comments | « pkg/analysis_server/lib/src/socket_server.dart ('k') | pkg/analysis_server/test/mocks.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 7
8 import 'package:analyzer/src/generated/java_engine.dart';
9 import 'package:analyzer/src/generated/engine.dart'; 9 import 'package:analyzer/src/generated/engine.dart';
10 import 'package:analyzer/src/generated/error.dart'; 10 import 'package:analyzer/src/generated/error.dart';
11 import 'package:analyzer/src/generated/source.dart'; 11 import 'package:analyzer/src/generated/source.dart';
12 import 'package:analysis_server/src/analysis_server.dart'; 12 import 'package:analysis_server/src/analysis_server.dart';
13 import 'package:analysis_server/src/constants.dart'; 13 import 'package:analysis_server/src/constants.dart';
14 import 'package:analysis_server/src/domain_server.dart'; 14 import 'package:analysis_server/src/domain_server.dart';
15 import 'package:analysis_server/src/protocol.dart'; 15 import 'package:analysis_server/src/protocol.dart';
16 import 'package:analysis_server/src/resource.dart'; 16 import 'package:analysis_server/src/resource.dart';
17 import 'package:mock/mock.dart'; 17 import 'package:mock/mock.dart';
18 import 'package:unittest/unittest.dart'; 18 import 'package:unittest/unittest.dart';
19 19
20 import 'mocks.dart'; 20 import 'mocks.dart';
21 21
22 class AnalysisServerTestHelper { 22 class AnalysisServerTestHelper {
23 MockServerChannel channel; 23 MockServerChannel channel;
24 AnalysisServer server; 24 AnalysisServer server;
25 MockAnalysisLogger logger;
26 25
27 AnalysisServerTestHelper() { 26 AnalysisServerTestHelper({bool rethrowExceptions: true}) {
28 channel = new MockServerChannel(); 27 channel = new MockServerChannel();
29 server = new AnalysisServer(channel, PhysicalResourceProvider.INSTANCE); 28 server = new AnalysisServer(channel, PhysicalResourceProvider.INSTANCE,
30 logger = new MockAnalysisLogger(); 29 rethrowExceptions: rethrowExceptions);
31 AnalysisEngine.instance.logger = logger;
32 } 30 }
33 } 31 }
34 32
35 main() { 33 main() {
36 group('AnalysisServer', () { 34 group('AnalysisServer', () {
37 test('addContextToWorkQueue_whenNotRunning', () { 35 test('addContextToWorkQueue_whenNotRunning', () {
38 AnalysisServerTestHelper helper = new AnalysisServerTestHelper(); 36 AnalysisServerTestHelper helper = new AnalysisServerTestHelper();
39 helper.server.running = false; 37 helper.server.running = false;
40 MockAnalysisContext context = new MockAnalysisContext(); 38 MockAnalysisContext context = new MockAnalysisContext();
41 helper.server.addContextToWorkQueue(context); 39 helper.server.addContextToWorkQueue(context);
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 test('unknownRequest', () { 148 test('unknownRequest', () {
151 AnalysisServerTestHelper helper = new AnalysisServerTestHelper(); 149 AnalysisServerTestHelper helper = new AnalysisServerTestHelper();
152 helper.server.handlers = [new EchoHandler()]; 150 helper.server.handlers = [new EchoHandler()];
153 var request = new Request('my22', 'randomRequest'); 151 var request = new Request('my22', 'randomRequest');
154 return helper.channel.sendRequest(request) 152 return helper.channel.sendRequest(request)
155 .then((Response response) { 153 .then((Response response) {
156 expect(response.id, equals('my22')); 154 expect(response.id, equals('my22'));
157 expect(response.error, isNotNull); 155 expect(response.error, isNotNull);
158 }); 156 });
159 }); 157 });
158
159 test('rethrow exceptions', () {
160 AnalysisServerTestHelper helper = new AnalysisServerTestHelper();
161 MockAnalysisContext context = new MockAnalysisContext();
162 Exception exceptionToThrow = new Exception('test exception');
163 context.when(callsTo('performAnalysisTask')).alwaysThrow(exceptionToThrow) ;
164 helper.server.addContextToWorkQueue(context);
165 try {
166 helper.server.performTask();
167 fail('exception not rethrown');
168 } on AnalysisException catch (exception) {
169 expect(exception.cause.exception, equals(exceptionToThrow));
170 }
171 });
160 }); 172 });
161 } 173 }
162 174
163 class EchoHandler implements RequestHandler { 175 class EchoHandler implements RequestHandler {
164 @override 176 @override
165 Response handleRequest(Request request) { 177 Response handleRequest(Request request) {
166 if (request.method == 'echo') { 178 if (request.method == 'echo') {
167 var response = new Response(request.id); 179 var response = new Response(request.id);
168 response.setResult('echo', true); 180 response.setResult('echo', true);
169 return response; 181 return response;
170 } 182 }
171 return null; 183 return null;
172 } 184 }
173 } 185 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/socket_server.dart ('k') | pkg/analysis_server/test/mocks.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698