runTestProcess method

  1. @override
Future<AsserestResult> runTestProcess()

The process for asserting and return AsserestResult to determine accessibility of AsserestProperty.url.

Implementation

@override
Future<AsserestResult> runTestProcess() async {
  FTPConnect? ftpConn = null;

  try {
    if (property.accessible) {
      // Accessible case
      for (int count = 0; count < property.tryCount!; count++) {
        ftpConn = await _ftpConn();
        if (ftpConn != null) {
          break;
        }
      }

      if (ftpConn == null) {
        return AsserestResult.failure;
      } else if (property.fileAccess == null) {
        return AsserestResult.success;
      }

      return _fileAccessTester(ftpConn);
    } else {
      // Inaccessible case
      ftpConn = await _ftpConn();

      return ftpConn == null
          ? AsserestResult.success
          : AsserestResult.failure;
    }
  } on FTPConnectException {
    // Assume failed if FtpConnect throw exceptions
    return AsserestResult.failure;
  } catch (_) {
    // Other error exception which likely not related with FtpConnect
    return AsserestResult.error;
  } finally {
    // Ensure disconnected
    try {
      await ftpConn!.disconnect();
    } catch (__) {}
  }
}