public static void loadAndAssertStatusForRow(
      long downloadRowId, DownloadStatus status, boolean mockNetworkError) {
    FileDownloader loader = FileDownloader.newForDownloadRow(downloadRowId);
    if (mockNetworkError) {
      loader.connectionMock =
          new ConnectionTwitterGnuSocialMock(new ConnectionException("Mocked IO exception"));
    }
    CommandData commandData = CommandData.newCommand(CommandEnum.FETCH_AVATAR);
    loader.load(commandData);

    DownloadData data = DownloadData.fromId(downloadRowId);
    if (DownloadStatus.LOADED.equals(status)) {
      assertFalse("Loaded " + data.getUri() + "; " + data, commandData.getResult().hasError());
      assertEquals("Loaded " + data.getUri(), status, loader.getStatus());
    } else {
      assertTrue("Error loading " + data.getUri(), commandData.getResult().hasError());
    }

    if (DownloadStatus.LOADED.equals(status)) {
      assertTrue("File exists " + data.getUri(), data.getFile().exists());
    } else {
      assertFalse("File doesn't exist " + data.getUri(), data.getFile().exists());
    }

    assertEquals("Loaded " + data.getUri(), status, loader.getStatus());
  }
Esempio n. 2
0
 /**
  * Starts MyService asynchronously if it is not already started and send command to it.
  *
  * @param commandData to the service or null
  */
 public static void sendCommand(CommandData commandData) {
   if (!isServiceAvailable()) {
     // Imitate a soft service error
     commandData.getResult().incrementNumIoExceptions();
     commandData.getResult().setMessage("Service is not available");
     MyServiceEventsBroadcaster.newInstance(MyContextHolder.get(), MyServiceState.STOPPED)
         .setCommandData(commandData)
         .setEvent(MyServiceEvent.AFTER_EXECUTING_COMMAND)
         .broadcast();
     return;
   }
   sendCommandEvenForUnavailable(commandData);
 }