createMockImageHttpClient function
Returns a MockHttpClient that responds with demo image to all requests.
Implementation
MockHttpClient createMockImageHttpClient() {
final client = MockHttpClient();
final request = MockHttpClientRequest();
final response = MockHttpClientResponse();
final headers = MockHttpHeaders();
when(client.getUrl(any))
.thenAnswer((_) => Future<HttpClientRequest>.value(request));
when(request.headers).thenReturn(headers);
when(request.close())
.thenAnswer((_) => Future<HttpClientResponse>.value(response));
when(response.compressionState)
.thenReturn(HttpClientResponseCompressionState.notCompressed);
when(response.contentLength).thenReturn(image.length);
when(response.statusCode).thenReturn(HttpStatus.ok);
when(response.listen(
any,
onError: anyNamed("onError"),
onDone: anyNamed("onDone"),
cancelOnError: anyNamed("cancelOnError"),
)).thenAnswer((invocation) {
final onData =
invocation.positionalArguments[0] as void Function(List<int>);
final onDone = invocation.namedArguments[#onDone] as void Function()?;
final onError = invocation.namedArguments[#onError] as Function?;
final cancelOnError = invocation.namedArguments[#cancelOnError] as bool?;
return Stream<List<int>>.fromIterable(<List<int>>[image]).listen(onData,
onDone: onDone, onError: onError, cancelOnError: cancelOnError);
});
return client;
}