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); |
}); |
} |