fetch method

  1. @override
Future<ResponseBody> fetch(
  1. RequestOptions requestOptions,
  2. Stream<Uint8List>? requestStream,
  3. Future? cancelFuture
)

DioAdapter`s fetch configuration intended to work with mock data. Returns a Future<ResponseBody> from history based on RequestOptions.

Implementation

@override
Future<ResponseBody> fetch(
  RequestOptions requestOptions,
  Stream<Uint8List>? requestStream,
  Future? cancelFuture,
) async {
  if (_isClosed) {
    logger.e('Cannot establish connection after [$runtimeType] got closed!');
    throw ClosedException(
      'Cannot establish connection after [$runtimeType] got closed!',
    );
  }

  await setDefaultRequestHeaders(dio, requestOptions);
  final response = await mockResponse(requestOptions) as MockResponse;

  // Waits for defined duration.
  if (response.delay != null) await Future.delayed(response.delay!);

  // Throws DioException if response type is MockDioException.
  if (isMockDioException(response)) throw response as DioException;

  return response as MockResponseBody;
}