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

Side by Side Diff: test/client/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/client/stream_test.dart ('k') | test/peer_test.dart » ('j') | 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.Client]. 14 /// A controller used to test a [json_rpc.Client].
13 class ClientController { 15 class ClientController {
14 /// The controller for the client's response stream. 16 /// The controller for the client's response stream.
15 final _responseController = new StreamController<String>(); 17 final _responseController = new StreamController<String>();
16 18
17 /// The controller for the client's request sink. 19 /// The controller for the client's request sink.
18 final _requestController = new StreamController<String>(); 20 final _requestController = new StreamController<String>();
19 21
20 /// The client. 22 /// The client.
21 json_rpc.Client get client => _client; 23 json_rpc.Client get client => _client;
22 json_rpc.Client _client; 24 json_rpc.Client _client;
23 25
24 ClientController() { 26 ClientController() {
25 _client = new json_rpc.Client( 27 _client = new json_rpc.Client(
26 _responseController.stream, _requestController.sink); 28 new StreamChannel(_responseController.stream, _requestController.sink));
27 _client.listen(); 29 _client.listen();
28 } 30 }
29 31
30 /// Expects that the client will send a request. 32 /// Expects that the client will send a request.
31 /// 33 ///
32 /// The request is passed to [callback], which can return a response. If it 34 /// The request is passed to [callback], which can return a response. If it
33 /// returns a String, that's sent as the response directly. If it returns 35 /// returns a String, that's sent as the response directly. If it returns
34 /// null, no response is sent. Otherwise, the return value is encoded and sent 36 /// null, no response is sent. Otherwise, the return value is encoded and sent
35 /// as the response. 37 /// as the response.
36 void expectRequest(callback(request)) { 38 void expectRequest(callback(request)) {
(...skipping 17 matching lines...) Expand all
54 /// times. By default, this should pump the event queue enough times to allow 56 /// times. By default, this should pump the event queue enough times to allow
55 /// any code to run, as long as it's not waiting on some external event. 57 /// any code to run, as long as it's not waiting on some external event.
56 Future pumpEventQueue([int times = 20]) { 58 Future pumpEventQueue([int times = 20]) {
57 if (times == 0) return new Future.value(); 59 if (times == 0) return new Future.value();
58 // We use a delayed future to allow microtask events to finish. The 60 // We use a delayed future to allow microtask events to finish. The
59 // Future.value or Future() constructors use scheduleMicrotask themselves and 61 // Future.value or Future() constructors use scheduleMicrotask themselves and
60 // would therefore not wait for microtask callbacks that are scheduled after 62 // would therefore not wait for microtask callbacks that are scheduled after
61 // invoking this method. 63 // invoking this method.
62 return new Future.delayed(Duration.ZERO, () => pumpEventQueue(times - 1)); 64 return new Future.delayed(Duration.ZERO, () => pumpEventQueue(times - 1));
63 } 65 }
OLDNEW
« no previous file with comments | « test/client/stream_test.dart ('k') | test/peer_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698