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.protocol; | 5 library test.protocol; |
6 | 6 |
7 import 'dart:convert'; | 7 import 'dart:convert'; |
8 | 8 |
9 import 'package:analysis_server/src/constants.dart'; | 9 import 'package:analysis_server/src/constants.dart'; |
10 import 'package:analysis_server/src/protocol.dart'; | 10 import 'package:analysis_server/src/protocol.dart'; |
11 import 'package:unittest/unittest.dart'; | 11 import 'package:unittest/unittest.dart'; |
12 | 12 |
13 import 'reflective_tests.dart'; | 13 import 'reflective_tests.dart'; |
14 | 14 |
15 | 15 |
16 Matcher _throwsRequestFailure = throwsA(new isInstanceOf<RequestFailure>()); | 16 Matcher _throwsRequestFailure = throwsA(new isInstanceOf<RequestFailure>()); |
17 | 17 |
18 | 18 |
19 main() { | 19 main() { |
20 groupSep = ' | '; | 20 groupSep = ' | '; |
21 runReflectiveTests(NotificationTest); | 21 runReflectiveTests(NotificationTest); |
22 runReflectiveTests(RequestTest); | 22 runReflectiveTests(RequestTest); |
23 runReflectiveTests(RequestErrorTest); | 23 runReflectiveTests(RequestErrorTest); |
24 runReflectiveTests(ResponseTest); | 24 runReflectiveTests(ResponseTest); |
25 } | 25 } |
26 | 26 |
27 | 27 |
28 @ReflectiveTestCase() | 28 @reflectiveTest |
29 class InvalidParameterResponseMatcher extends Matcher { | 29 class InvalidParameterResponseMatcher extends Matcher { |
30 static const String ERROR_CODE = 'INVALID_PARAMETER'; | 30 static const String ERROR_CODE = 'INVALID_PARAMETER'; |
31 | 31 |
32 @override | 32 @override |
33 Description describe(Description description) => | 33 Description describe(Description description) => |
34 description.add("an 'invalid parameter' response (code $ERROR_CODE)"); | 34 description.add("an 'invalid parameter' response (code $ERROR_CODE)"); |
35 | 35 |
36 @override | 36 @override |
37 bool matches(item, Map matchState) { | 37 bool matches(item, Map matchState) { |
38 if (item is! RequestFailure) { | 38 if (item is! RequestFailure) { |
39 return false; | 39 return false; |
40 } | 40 } |
41 var response = item.response; | 41 var response = item.response; |
42 if (response is! Response) { | 42 if (response is! Response) { |
43 return false; | 43 return false; |
44 } | 44 } |
45 if (response.error is! RequestError) { | 45 if (response.error is! RequestError) { |
46 return false; | 46 return false; |
47 } | 47 } |
48 RequestError requestError = response.error; | 48 RequestError requestError = response.error; |
49 if (requestError.code != ERROR_CODE) { | 49 if (requestError.code != ERROR_CODE) { |
50 return false; | 50 return false; |
51 } | 51 } |
52 return true; | 52 return true; |
53 } | 53 } |
54 } | 54 } |
55 | 55 |
56 | 56 |
57 @ReflectiveTestCase() | 57 @reflectiveTest |
58 class NotificationTest { | 58 class NotificationTest { |
59 void test_fromJson() { | 59 void test_fromJson() { |
60 Notification original = new Notification('foo'); | 60 Notification original = new Notification('foo'); |
61 Notification notification = new Notification.fromJson(original.toJson()); | 61 Notification notification = new Notification.fromJson(original.toJson()); |
62 expect(notification.event, equals('foo')); | 62 expect(notification.event, equals('foo')); |
63 expect(notification.toJson().keys, isNot(contains('params'))); | 63 expect(notification.toJson().keys, isNot(contains('params'))); |
64 } | 64 } |
65 | 65 |
66 void test_fromJson_withParams() { | 66 void test_fromJson_withParams() { |
67 Notification original = new Notification('foo', { | 67 Notification original = new Notification('foo', { |
(...skipping 26 matching lines...) Expand all Loading... |
94 expect(notification.toJson(), equals({ | 94 expect(notification.toJson(), equals({ |
95 'event': 'foo', | 95 'event': 'foo', |
96 'params': { | 96 'params': { |
97 'x': 'y' | 97 'x': 'y' |
98 } | 98 } |
99 })); | 99 })); |
100 } | 100 } |
101 } | 101 } |
102 | 102 |
103 | 103 |
104 @ReflectiveTestCase() | 104 @reflectiveTest |
105 class RequestErrorTest { | 105 class RequestErrorTest { |
106 void test_create() { | 106 void test_create() { |
107 RequestError error = | 107 RequestError error = |
108 new RequestError(RequestErrorCode.INVALID_REQUEST, 'msg'); | 108 new RequestError(RequestErrorCode.INVALID_REQUEST, 'msg'); |
109 expect(error.code, RequestErrorCode.INVALID_REQUEST); | 109 expect(error.code, RequestErrorCode.INVALID_REQUEST); |
110 expect(error.message, "msg"); | 110 expect(error.message, "msg"); |
111 expect(error.toJson(), equals({ | 111 expect(error.toJson(), equals({ |
112 CODE: 'INVALID_REQUEST', | 112 CODE: 'INVALID_REQUEST', |
113 MESSAGE: "msg" | 113 MESSAGE: "msg" |
114 })); | 114 })); |
(...skipping 19 matching lines...) Expand all Loading... |
134 new RequestError(RequestErrorCode.UNKNOWN_REQUEST, 'msg', stackTrace: tr
ace); | 134 new RequestError(RequestErrorCode.UNKNOWN_REQUEST, 'msg', stackTrace: tr
ace); |
135 expect(error.toJson(), { | 135 expect(error.toJson(), { |
136 CODE: 'UNKNOWN_REQUEST', | 136 CODE: 'UNKNOWN_REQUEST', |
137 MESSAGE: 'msg', | 137 MESSAGE: 'msg', |
138 STACK_TRACE: trace | 138 STACK_TRACE: trace |
139 }); | 139 }); |
140 } | 140 } |
141 } | 141 } |
142 | 142 |
143 | 143 |
144 @ReflectiveTestCase() | 144 @reflectiveTest |
145 class RequestTest { | 145 class RequestTest { |
146 void test_fromJson() { | 146 void test_fromJson() { |
147 Request original = new Request('one', 'aMethod'); | 147 Request original = new Request('one', 'aMethod'); |
148 String json = JSON.encode(original.toJson()); | 148 String json = JSON.encode(original.toJson()); |
149 Request request = new Request.fromString(json); | 149 Request request = new Request.fromString(json); |
150 expect(request.id, equals('one')); | 150 expect(request.id, equals('one')); |
151 expect(request.method, equals('aMethod')); | 151 expect(request.method, equals('aMethod')); |
152 } | 152 } |
153 | 153 |
154 void test_fromJson_invalidId() { | 154 void test_fromJson_invalidId() { |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 Request.ID: 'one', | 200 Request.ID: 'one', |
201 Request.METHOD: 'aMethod', | 201 Request.METHOD: 'aMethod', |
202 Request.PARAMS: { | 202 Request.PARAMS: { |
203 'foo': 'bar' | 203 'foo': 'bar' |
204 } | 204 } |
205 })); | 205 })); |
206 } | 206 } |
207 } | 207 } |
208 | 208 |
209 | 209 |
210 @ReflectiveTestCase() | 210 @reflectiveTest |
211 class ResponseTest { | 211 class ResponseTest { |
212 void test_create_invalidRequestFormat() { | 212 void test_create_invalidRequestFormat() { |
213 Response response = new Response.invalidRequestFormat(); | 213 Response response = new Response.invalidRequestFormat(); |
214 expect(response.id, equals('')); | 214 expect(response.id, equals('')); |
215 expect(response.error, isNotNull); | 215 expect(response.error, isNotNull); |
216 expect(response.toJson(), equals({ | 216 expect(response.toJson(), equals({ |
217 Response.ID: '', | 217 Response.ID: '', |
218 Response.ERROR: { | 218 Response.ERROR: { |
219 'code': 'INVALID_REQUEST', | 219 'code': 'INVALID_REQUEST', |
220 'message': 'Invalid request' | 220 'message': 'Invalid request' |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 Response original = new Response('myId', result: { | 269 Response original = new Response('myId', result: { |
270 'foo': 'bar' | 270 'foo': 'bar' |
271 }); | 271 }); |
272 Response response = new Response.fromJson(original.toJson()); | 272 Response response = new Response.fromJson(original.toJson()); |
273 expect(response.id, equals('myId')); | 273 expect(response.id, equals('myId')); |
274 Map<String, Object> result = response.toJson()['result']; | 274 Map<String, Object> result = response.toJson()['result']; |
275 expect(result.length, equals(1)); | 275 expect(result.length, equals(1)); |
276 expect(result['foo'], equals('bar')); | 276 expect(result['foo'], equals('bar')); |
277 } | 277 } |
278 } | 278 } |
OLD | NEW |