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

Side by Side Diff: test/server/utils.dart

Issue 1652413002: Use StreamChannel. (Closed) Base URL: git@github.com:dart-lang/json_rpc_2.git@master
Patch Set: Code review changes Created 4 years, 10 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
« no previous file with comments | « test/server/stream_test.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 import 'dart:async'; 5 import 'dart:async';
6 import 'dart:convert'; 6 import 'dart:convert';
7 7
8 import 'package:stream_channel/stream_channel.dart';
9 import 'package:test/test.dart';
10
8 import 'package:json_rpc_2/json_rpc_2.dart' as json_rpc; 11 import 'package:json_rpc_2/json_rpc_2.dart' as json_rpc;
9 import 'package:json_rpc_2/error_code.dart' as error_code; 12 import 'package:json_rpc_2/error_code.dart' as error_code;
10 import 'package:test/test.dart';
11 13
12 /// A controller used to test a [json_rpc.Server]. 14 /// A controller used to test a [json_rpc.Server].
13 class ServerController { 15 class ServerController {
14 /// The controller for the server's request stream. 16 /// The controller for the server's request stream.
15 final _requestController = new StreamController<String>(); 17 final _requestController = new StreamController<String>();
16 18
17 /// The controller for the server's response sink. 19 /// The controller for the server's response sink.
18 final _responseController = new StreamController<String>(); 20 final _responseController = new StreamController<String>();
19 21
20 /// The server. 22 /// The server.
21 json_rpc.Server get server => _server; 23 json_rpc.Server get server => _server;
22 json_rpc.Server _server; 24 json_rpc.Server _server;
23 25
24 ServerController() { 26 ServerController() {
25 _server = new json_rpc.Server( 27 _server = new json_rpc.Server(
26 _requestController.stream, _responseController.sink); 28 new StreamChannel(_requestController.stream, _responseController.sink));
27 _server.listen(); 29 _server.listen();
28 } 30 }
29 31
30 /// Passes [request], a decoded request, to [server] and returns its decoded 32 /// Passes [request], a decoded request, to [server] and returns its decoded
31 /// response. 33 /// response.
32 Future handleRequest(request) => 34 Future handleRequest(request) =>
33 handleJsonRequest(JSON.encode(request)).then(JSON.decode); 35 handleJsonRequest(JSON.encode(request)).then(JSON.decode);
34 36
35 /// Passes [request], a JSON-encoded request, to [server] and returns its 37 /// Passes [request], a JSON-encoded request, to [server] and returns its
36 /// encoded response. 38 /// encoded response.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 /// times. By default, this should pump the event queue enough times to allow 90 /// times. By default, this should pump the event queue enough times to allow
89 /// any code to run, as long as it's not waiting on some external event. 91 /// any code to run, as long as it's not waiting on some external event.
90 Future pumpEventQueue([int times = 20]) { 92 Future pumpEventQueue([int times = 20]) {
91 if (times == 0) return new Future.value(); 93 if (times == 0) return new Future.value();
92 // We use a delayed future to allow microtask events to finish. The 94 // We use a delayed future to allow microtask events to finish. The
93 // Future.value or Future() constructors use scheduleMicrotask themselves and 95 // Future.value or Future() constructors use scheduleMicrotask themselves and
94 // would therefore not wait for microtask callbacks that are scheduled after 96 // would therefore not wait for microtask callbacks that are scheduled after
95 // invoking this method. 97 // invoking this method.
96 return new Future.delayed(Duration.ZERO, () => pumpEventQueue(times - 1)); 98 return new Future.delayed(Duration.ZERO, () => pumpEventQueue(times - 1));
97 } 99 }
OLDNEW
« no previous file with comments | « test/server/stream_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698