Files
sdk/pkg/analysis_server/test/socket_server_test.dart
T
paulberry@google.com 3123e48d29 In the analysis server API, change RequestError.code to an enum.
Some of the error codes that were previously defined are no longer
used, so those have been removed.  The enum reflects the set of errors
that are currently in use.

R=brianwilkerson@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org//513853002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@39689 260f80e4-7a28-3924-810f-c04153c831b5
2014-08-29 07:30:43 +00:00

65 lines
2.5 KiB
Dart

// 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.socket.server;
import 'dart:async';
import 'mocks.dart';
import 'package:analysis_server/src/constants.dart';
import 'package:analysis_server/src/protocol.dart';
import 'package:analysis_server/src/socket_server.dart';
import 'package:analyzer/src/generated/sdk_io.dart';
import 'package:unittest/unittest.dart';
main() {
group('SocketServer', () {
test('createAnalysisServer_successful',
SocketServerTest.createAnalysisServer_successful);
test('createAnalysisServer_alreadyStarted',
SocketServerTest.createAnalysisServer_alreadyStarted);
});
}
class SocketServerTest {
static Future createAnalysisServer_successful() {
SocketServer server = new SocketServer(DirectoryBasedDartSdk.defaultSdk);
MockServerChannel channel = new MockServerChannel();
server.createAnalysisServer(channel);
channel.expectMsgCount(notificationCount: 1);
expect(channel.notificationsReceived[0].event, SERVER_CONNECTED);
return channel.sendRequest(
new ServerShutdownParams().toRequest('0')
).then((Response response) {
expect(response.id, equals('0'));
expect(response.error, isNull);
channel.expectMsgCount(responseCount: 1, notificationCount: 1);
});
}
static void createAnalysisServer_alreadyStarted() {
SocketServer server = new SocketServer(DirectoryBasedDartSdk.defaultSdk);
MockServerChannel channel1 = new MockServerChannel();
MockServerChannel channel2 = new MockServerChannel();
server.createAnalysisServer(channel1);
expect(channel1.notificationsReceived[0].event, SERVER_CONNECTED);
server.createAnalysisServer(channel2);
channel1.expectMsgCount(notificationCount: 1);
channel2.expectMsgCount(responseCount: 1);
expect(channel2.responsesReceived[0].id, equals(''));
expect(channel2.responsesReceived[0].error, isNotNull);
expect(channel2.responsesReceived[0].error.code, equals(
RequestErrorCode.SERVER_ALREADY_STARTED));
channel2.sendRequest(new ServerShutdownParams().toRequest('0')).then(
(Response response) {
expect(response.id, equals('0'));
expect(response.error, isNotNull);
expect(response.error.code, equals(
RequestErrorCode.SERVER_ALREADY_STARTED));
channel2.expectMsgCount(responseCount: 2);
});
}
}