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()); }
/** * 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); }