Line data Source code
1 : import 'dart:async'; 2 : import 'dart:typed_data'; 3 : 4 : import 'package:dio/adapter.dart'; 5 : import 'package:dio/dio.dart'; 6 : 7 : class EchoAdapter extends HttpClientAdapter { 8 : static const mockHost = 'mockserver'; 9 : static const mockBase = 'http://$mockHost'; 10 : final _adapter = DefaultHttpClientAdapter(); 11 : 12 : @override 13 2 : Future<ResponseBody> fetch(RequestOptions options, 14 : Stream<Uint8List>? requestStream, Future? cancelFuture) async { 15 2 : final uri = options.uri; 16 : 17 4 : if (uri.host == mockHost) { 18 : if (requestStream != null) { 19 2 : return ResponseBody(requestStream, 200); 20 : } else { 21 4 : return ResponseBody.fromString(uri.path, 200); 22 : } 23 : } 24 : 25 0 : return _adapter.fetch(options, requestStream, cancelFuture); 26 : } 27 : 28 0 : @override 29 : void close({bool force = false}) { 30 0 : _adapter.close(force: force); 31 : } 32 : }