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

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

Issue 297153002: Implementation of 'Server Domain' in dart analysis server. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fixes for review comments Created 6 years, 7 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.domain.server; 5 library test.domain.server;
6 6
7 import 'package:analysis_server/src/analysis_server.dart'; 7 import 'package:analysis_server/src/analysis_server.dart';
8 import 'package:analysis_server/src/domain_server.dart'; 8 import 'package:analysis_server/src/domain_server.dart';
9 import 'package:analysis_server/src/protocol.dart'; 9 import 'package:analysis_server/src/protocol.dart';
10 import 'package:unittest/unittest.dart'; 10 import 'package:unittest/unittest.dart';
11 11
12 import 'mocks.dart'; 12 import 'mocks.dart';
13 13
14 main() { 14 main() {
15 AnalysisServer server;
16 ServerDomainHandler handler;
17
18 setUp(() {
19 var serverChannel = new MockServerChannel();
20 server = new AnalysisServer(serverChannel);
21 handler = new ServerDomainHandler(server);
22 });
23
15 group('ServerDomainHandler', () { 24 group('ServerDomainHandler', () {
16 test('createContext', ServerDomainHandlerTest.createContext); 25 test('getVersion', () {
17 test('deleteContext_alreadyDeleted', ServerDomainHandlerTest.deleteContext_a lreadyDeleted); 26 var request = new Request('0', ServerDomainHandler.GET_VERSION_METHOD);
18 test('deleteContext_doesNotExist', ServerDomainHandlerTest.deleteContext_doe sNotExist); 27 var response = handler.handleRequest(request);
19 test('deleteContext_existing', ServerDomainHandlerTest.deleteContext_existin g); 28 expect(response.toJson(), equals({
20 test('shutdown', ServerDomainHandlerTest.shutdown); 29 Response.ID: '0',
21 test('version', ServerDomainHandlerTest.version); 30 Response.RESULT: {
31 ServerDomainHandler.VERSION_RESULT: '0.0.1'
32 }
33 }));
34 });
35
36 group('setSubscriptions', () {
37 Request request;
38 setUp(() {
39 request = new Request('0', ServerDomainHandler.SET_SUBSCRIPTIONS_METHOD) ;
40 });
41
42 test('invalid service name', () {
43 request.setParameter(
44 ServerDomainHandler.SUBSCRIPTIONS_PARAMETER,
45 ['noSuchService']);
46 var response = handler.handleRequest(request);
47 // TODO(scheglov) extract isResponseError(id) matcher
48 expect(response.id, equals('0'));
49 expect(response.error, isNotNull);
50 });
51
52 test('success', () {
53 expect(server.serverServices, isEmpty);
54 // send request
55 request.setParameter(
56 ServerDomainHandler.SUBSCRIPTIONS_PARAMETER,
57 [ServerService.STATUS.name]);
58 var response = handler.handleRequest(request);
59 // TODO(scheglov) extract isResponseSuccess(id) matcher
60 expect(response.id, equals('0'));
61 expect(response.error, isNull);
62 // set of services has been changed
63 expect(server.serverServices, contains(ServerService.STATUS));
64 });
65 });
66
67 test('shutdown', () {
68 expect(server.running, isTrue);
69 // send request
70 var request = new Request('0', ServerDomainHandler.SHUTDOWN_METHOD);
71 var response = handler.handleRequest(request);
72 // TODO(scheglov) extract isResponseSuccess(id) matcher
73 expect(response.toJson(), equals({
74 Response.ID: '0'
75 }));
76 // server is down
77 expect(server.running, isFalse);
78 });
22 }); 79 });
23 } 80 }
24
25 class ServerDomainHandlerTest {
26 static void createContext() {
27 AnalysisServer server = new AnalysisServer(new MockServerChannel());
28 ServerDomainHandler handler = new ServerDomainHandler(server);
29
30 Request createRequest = new Request('0', ServerDomainHandler.CREATE_CONTEXT_ METHOD);
31 createRequest.setParameter(ServerDomainHandler.SDK_DIRECTORY_PARAM, sdkPath) ;
32 createRequest.setParameter(AnalysisServer.CONTEXT_ID_PARAM, 'ctx');
33 Response response = handler.handleRequest(createRequest);
34 expect(response.id, equals('0'));
35 expect(response.error, isNull);
36 expect(response.result, isEmpty);
37 }
38
39 static void createContext_alreadyExists() {
40 AnalysisServer server = new AnalysisServer(new MockServerChannel());
41 ServerDomainHandler handler = new ServerDomainHandler(server);
42
43 Request createRequest = new Request('0', ServerDomainHandler.CREATE_CONTEXT_ METHOD);
44 createRequest.setParameter(ServerDomainHandler.SDK_DIRECTORY_PARAM, sdkPath) ;
45 createRequest.setParameter(AnalysisServer.CONTEXT_ID_PARAM, 'ctx');
46 Response response = handler.handleRequest(createRequest);
47 expect(response.error, isNull);
48 response = handler.handleRequest(createRequest);
49 expect(response.error, isNotNull);
50 }
51
52 static void deleteContext_alreadyDeleted() {
53 AnalysisServer server = new AnalysisServer(new MockServerChannel());
54 ServerDomainHandler handler = new ServerDomainHandler(server);
55
56 String contextId = 'ctx';
57 Request createRequest = new Request('0', ServerDomainHandler.CREATE_CONTEXT_ METHOD);
58 createRequest.setParameter(ServerDomainHandler.SDK_DIRECTORY_PARAM, sdkPath) ;
59 createRequest.setParameter(AnalysisServer.CONTEXT_ID_PARAM, contextId);
60 handler.handleRequest(createRequest);
61
62 Request deleteRequest = new Request('0', ServerDomainHandler.DELETE_CONTEXT_ METHOD);
63 deleteRequest.setParameter(AnalysisServer.CONTEXT_ID_PARAM, contextId);
64 handler.handleRequest(deleteRequest);
65 Response response = handler.handleRequest(deleteRequest);
66 expect(response.id, equals('0'));
67 expect(response.error, isNotNull);
68 }
69
70 static void deleteContext_doesNotExist() {
71 AnalysisServer server = new AnalysisServer(new MockServerChannel());
72 ServerDomainHandler handler = new ServerDomainHandler(server);
73
74 Request deleteRequest = new Request('0', ServerDomainHandler.DELETE_CONTEXT_ METHOD);
75 deleteRequest.setParameter(AnalysisServer.CONTEXT_ID_PARAM, 'xyzzy');
76 Response response = handler.handleRequest(deleteRequest);
77 expect(response.id, equals('0'));
78 expect(response.error, isNotNull);
79 }
80
81 static void deleteContext_existing() {
82 AnalysisServer server = new AnalysisServer(new MockServerChannel());
83 ServerDomainHandler handler = new ServerDomainHandler(server);
84
85 String contextId = 'ctx';
86 Request createRequest = new Request('0', ServerDomainHandler.CREATE_CONTEXT_ METHOD);
87 createRequest.setParameter(ServerDomainHandler.SDK_DIRECTORY_PARAM, sdkPath) ;
88 createRequest.setParameter(AnalysisServer.CONTEXT_ID_PARAM, contextId);
89 handler.createContext(createRequest);
90
91 Request deleteRequest = new Request('0', ServerDomainHandler.DELETE_CONTEXT_ METHOD);
92 deleteRequest.setParameter(AnalysisServer.CONTEXT_ID_PARAM, contextId);
93 Response response = handler.handleRequest(deleteRequest);
94 expect(response.toJson(), equals({
95 Response.ID: '0'
96 }));
97 }
98
99 static void shutdown() {
100 AnalysisServer server = new AnalysisServer(new MockServerChannel());
101 ServerDomainHandler handler = new ServerDomainHandler(server);
102
103 expect(server.running, isTrue);
104 Request shutdownRequest = new Request('0', ServerDomainHandler.SHUTDOWN_METH OD);
105 Response response = handler.handleRequest(shutdownRequest);
106 expect(response.toJson(), equals({
107 Response.ID: '0'
108 }));
109 expect(server.running, isFalse);
110 }
111
112 static void version() {
113 AnalysisServer server = new AnalysisServer(new MockServerChannel());
114 ServerDomainHandler handler = new ServerDomainHandler(server);
115
116 Request versionRequest = new Request('0', ServerDomainHandler.VERSION_METHOD );
117 Response response = handler.handleRequest(versionRequest);
118 expect(response.toJson(), equals({
119 Response.ID: '0',
120 Response.RESULT: {
121 ServerDomainHandler.VERSION_RESULT: '0.0.1'
122 }
123 }));
124 }
125 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698