fakeData method
Timer
fakeData({
- FakeDataType fakeDataType = FakeDataType.response,
- Response? fakeResponse,
- DioError? fakeError,
- Duration duration = const Duration(seconds: 1),
- Duration responseTime = const Duration(seconds: 1),
- int? numberOfRepetions,
Implementation
Timer fakeData({
FakeDataType fakeDataType = FakeDataType.response,
Response? fakeResponse,
DioError? fakeError,
Duration duration = const Duration(seconds: 1),
Duration responseTime = const Duration(seconds: 1),
int? numberOfRepetions,
}) {
var currentNumberOfRepetions = 0;
final timer = Timer.periodic(duration, (timer) {
if (numberOfRepetions != null) {
currentNumberOfRepetions += 1;
}
final requestOptions = RequestOptions(
path: 'fakePath/fakePath/$currentNumberOfRepetions',
method: 'POST',
baseUrl: 'fake.com/endpoint',
data: {'key': 'value'},
);
_onRequest(requestOptions);
Future.delayed(responseTime).then((value) {
switch (fakeDataType) {
case FakeDataType.response:
_onReponse(
fakeResponse ??
Response(
requestOptions: requestOptions,
statusCode: 200,
statusMessage: 'Success',
data: {'key': 'value'},
),
);
break;
case FakeDataType.error:
_onError(fakeError ??
DioError(
response: Response(
requestOptions: requestOptions,
statusCode: 400,
statusMessage: 'Bad Request',
data: {'key': 'value'},
),
requestOptions: requestOptions,
));
break;
case FakeDataType.randomResponse:
final isResponse = Random().nextBool();
if (isResponse) {
_onReponse(
fakeResponse ??
Response(
requestOptions: requestOptions,
statusCode: 200,
statusMessage: 'Success',
data: {'key': 'value'},
),
);
} else {
_onError(fakeError ??
DioError(
response: Response(
requestOptions: requestOptions,
statusCode: 400,
statusMessage: 'Bad Request',
data: {'key': 'value'},
),
requestOptions: requestOptions,
));
}
break;
case FakeDataType.onlyRequest:
break;
}
});
if (currentNumberOfRepetions == numberOfRepetions) {
timer.cancel();
}
});
return timer;
}