| OLD | NEW |
| 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 Loading... |
| 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 } |
| OLD | NEW |