blob: 1356816d3b9b9e03c234a3dad3017c52a291d105 [file] [log] [blame]
// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
library test.domain.server;
import 'package:analysis_server/src/analysis_server.dart';
import 'package:analysis_server/src/domain_server.dart';
import 'package:analysis_server/src/protocol.dart';
import 'package:unittest/unittest.dart';
import 'mocks.dart';
main() {
AnalysisServer server;
ServerDomainHandler handler;
setUp(() {
var serverChannel = new MockServerChannel();
server = new AnalysisServer(serverChannel);
handler = new ServerDomainHandler(server);
});
group('ServerDomainHandler', () {
test('getVersion', () {
var request = new Request('0', ServerDomainHandler.GET_VERSION_METHOD);
var response = handler.handleRequest(request);
expect(response.toJson(), equals({
Response.ID: '0',
Response.RESULT: {
ServerDomainHandler.VERSION_RESULT: '0.0.1'
}
}));
});
group('setSubscriptions', () {
Request request;
setUp(() {
request = new Request('0', ServerDomainHandler.SET_SUBSCRIPTIONS_METHOD);
});
test('invalid service name', () {
request.setParameter(
ServerDomainHandler.SUBSCRIPTIONS_PARAMETER,
['noSuchService']);
var response = handler.handleRequest(request);
// TODO(scheglov) extract isResponseError(id) matcher
expect(response.id, equals('0'));
expect(response.error, isNotNull);
});
test('success', () {
expect(server.serverServices, isEmpty);
// send request
request.setParameter(
ServerDomainHandler.SUBSCRIPTIONS_PARAMETER,
[ServerService.STATUS.name]);
var response = handler.handleRequest(request);
// TODO(scheglov) extract isResponseSuccess(id) matcher
expect(response.id, equals('0'));
expect(response.error, isNull);
// set of services has been changed
expect(server.serverServices, contains(ServerService.STATUS));
});
});
test('shutdown', () {
expect(server.running, isTrue);
// send request
var request = new Request('0', ServerDomainHandler.SHUTDOWN_METHOD);
var response = handler.handleRequest(request);
// TODO(scheglov) extract isResponseSuccess(id) matcher
expect(response.toJson(), equals({
Response.ID: '0'
}));
// server is down
expect(server.running, isFalse);
});
});
}