MockDeviceVendorInfoLoader.simulateDelay constructor

MockDeviceVendorInfoLoader.simulateDelay(
  1. BiosInfo biosInfo,
  2. BoardInfo boardInfo,
  3. SystemInfo systemInfo, {
  4. int minimumDelay = 10,
  5. int maximumDelay = 250,
  6. int? seed,
})

Simulate a loader with delay to mock duration of fetching data from system.

Implementation

factory MockDeviceVendorInfoLoader.simulateDelay(
    BiosInfo biosInfo, BoardInfo boardInfo, SystemInfo systemInfo,
    {int minimumDelay = 10, int maximumDelay = 250, int? seed}) {
  late Random r;

  if (seed != null) {
    r = Random(seed);
  } else {
    try {
      r = Random.secure();
    } on UnsupportedError {
      r = Random();
    }
  }

  Duration getSimDelay() {
    return Duration(
        milliseconds: r.nextInt(maximumDelay - minimumDelay) + minimumDelay);
  }

  return MockDeviceVendorInfoLoader._(
      Future.delayed(getSimDelay(), () => biosInfo),
      Future.delayed(getSimDelay(), () => boardInfo),
      Future.delayed(getSimDelay(), () => systemInfo));
}