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

Unified Diff: pkg/json_rpc_2/test/client/stream_test.dart

Issue 691053006: Add a Client class to json_rpc_2. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Code review changes Created 6 years, 1 month 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/json_rpc_2/test/client/client_test.dart ('k') | pkg/json_rpc_2/test/client/utils.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/json_rpc_2/test/client/stream_test.dart
diff --git a/pkg/json_rpc_2/test/server/stream_test.dart b/pkg/json_rpc_2/test/client/stream_test.dart
similarity index 50%
copy from pkg/json_rpc_2/test/server/stream_test.dart
copy to pkg/json_rpc_2/test/client/stream_test.dart
index 5459e3e6a5a87096b224963006431fa2dd923928..6942ff7682b2779599d87318fe205f939cc68eb9 100644
--- a/pkg/json_rpc_2/test/server/stream_test.dart
+++ b/pkg/json_rpc_2/test/client/stream_test.dart
@@ -2,7 +2,7 @@
// 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 json_rpc_2.test.server.stream_test;
+library json_rpc_2.test.client.stream_test;
import 'dart:async';
@@ -13,86 +13,84 @@ import 'utils.dart';
void main() {
test(".withoutJson supports decoded stream and sink", () {
- var requestController = new StreamController();
var responseController = new StreamController();
- var server = new json_rpc.Server.withoutJson(
- requestController.stream, responseController.sink);
- server.listen();
-
- server.registerMethod('foo', (params) {
- return {'params': params.value};
- });
-
- requestController.add({
- 'jsonrpc': '2.0',
- 'method': 'foo',
- 'params': {'param': 'value'},
- 'id': 1234
- });
-
- expect(responseController.stream.first, completion(equals({
- 'jsonrpc': '2.0',
- 'result': {'params': {'param': 'value'}},
- 'id': 1234
- })));
+ var requestController = new StreamController();
+ var client = new json_rpc.Client.withoutJson(
+ responseController.stream, requestController.sink);
+ client.listen();
+
+ expect(requestController.stream.first.then((request) {
+ expect(request, allOf([
+ containsPair('jsonrpc', '2.0'),
+ containsPair('method', 'foo')
+ ]));
+
+ responseController.add({
+ 'jsonrpc': '2.0',
+ 'result': 'bar',
+ 'id': request['id']
+ });
+ }), completes);
+
+ client.sendRequest('foo');
});
test(".listen returns when the controller is closed", () {
- var requestController = new StreamController();
var responseController = new StreamController();
- var server = new json_rpc.Server(
- requestController.stream, responseController.sink);
+ var requestController = new StreamController();
+ var client = new json_rpc.Client.withoutJson(
+ responseController.stream, requestController.sink);
var hasListenCompeted = false;
- expect(server.listen().then((_) => hasListenCompeted = true), completes);
+ expect(client.listen().then((_) => hasListenCompeted = true), completes);
return pumpEventQueue().then((_) {
expect(hasListenCompeted, isFalse);
// This should cause listen to complete.
- return requestController.close();
+ return responseController.close();
});
});
test(".listen returns a stream error", () {
- var requestController = new StreamController();
var responseController = new StreamController();
- var server = new json_rpc.Server(
- requestController.stream, responseController.sink);
+ var requestController = new StreamController();
+ var client = new json_rpc.Client(
+ responseController.stream, requestController.sink);
- expect(server.listen(), throwsA('oh no'));
- requestController.addError('oh no');
+ expect(client.listen(), throwsA('oh no'));
+ responseController.addError('oh no');
});
test(".listen can't be called twice", () {
- var requestController = new StreamController();
var responseController = new StreamController();
- var server = new json_rpc.Server(
- requestController.stream, responseController.sink);
- server.listen();
+ var requestController = new StreamController();
+ var client = new json_rpc.Client(
+ responseController.stream, requestController.sink);
+ client.listen();
- expect(() => server.listen(), throwsStateError);
+ expect(() => client.listen(), throwsStateError);
});
test(".close cancels the stream subscription and closes the sink", () {
- var requestController = new StreamController();
var responseController = new StreamController();
- var server = new json_rpc.Server(
- requestController.stream, responseController.sink);
+ var requestController = new StreamController();
+ var client = new json_rpc.Client(
+ responseController.stream, requestController.sink);
- expect(server.listen(), completes);
- expect(server.close(), completes);
+ expect(client.listen(), completes);
+ expect(client.close(), completes);
- expect(() => requestController.stream.listen((_) {}), throwsStateError);
- expect(responseController.isClosed, isTrue);
+ expect(() => responseController.stream.listen((_) {}), throwsStateError);
+ expect(requestController.isClosed, isTrue);
});
test(".close can't be called before .listen", () {
- var requestController = new StreamController();
var responseController = new StreamController();
- var server = new json_rpc.Server(
- requestController.stream, responseController.sink);
+ var requestController = new StreamController();
+ var client = new json_rpc.Client(
+ responseController.stream, requestController.sink);
- expect(() => server.close(), throwsStateError);
+ expect(() => client.close(), throwsStateError);
});
}
« no previous file with comments | « pkg/json_rpc_2/test/client/client_test.dart ('k') | pkg/json_rpc_2/test/client/utils.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698