use of org.eyeseetea.malariacare.domain.usecase.push.SurveysThresholds in project pictureapp by EyeSeeTea.
the class PushServiceStrategy method executePush.
protected void executePush() {
IPushController pushController;
try {
pushController = new WSPushController();
} catch (IllegalArgumentException e) {
e.printStackTrace();
showInDialog(PreferencesState.getInstance().getContext().getString(R.string.webservice_url_error_title), String.format(PreferencesState.getInstance().getContext().getString(R.string.webservice_url_error), e.getMessage()));
return;
}
IAsyncExecutor asyncExecutor = new AsyncExecutor();
IMainExecutor mainExecutor = new UIThreadExecutor();
ISurveyRepository surveyRepository = new SurveyLocalDataSource();
IOrganisationUnitRepository orgUnitRepository = new OrganisationUnitRepository();
SurveysThresholds surveysThresholds = new SurveysThresholds(BuildConfig.LimitSurveysCount, BuildConfig.LimitSurveysTimeHours);
PushUseCase pushUseCase = new PushUseCase(pushController, asyncExecutor, mainExecutor, surveysThresholds, surveyRepository, orgUnitRepository);
SurveyChecker.launchQuarantineChecker();
pushUseCase.execute(new PushUseCase.Callback() {
@Override
public void onComplete() {
Log.d(TAG, "PUSHUSECASE WITHOUT ERROR push complete");
mPushService.onPushFinished();
}
@Override
public void onPushInProgressError() {
Log.d(TAG, "PUSHUSECASE ERROR Push stopped, There is already a push in progress");
}
@Override
public void onPushError() {
onError("PUSHUSECASE ERROR Unexpected error has occurred in push process");
}
@Override
public void onSurveysNotFoundError() {
onError("PUSHUSECASE ERROR Pending surveys not found");
}
@Override
public void onConversionError() {
showInDialog(PreferencesState.getInstance().getContext().getString(R.string.error_conflict_title), PreferencesState.getInstance().getContext().getString(R.string.ws_conversion_error));
}
@Override
public void onNetworkError() {
onError("PUSHUSECASE ERROR Network not available");
}
@Override
public void onInformativeError(String message) {
showInDialog(PreferencesState.getInstance().getContext().getString(R.string.error_conflict_title), "PUSHUSECASE ERROR " + message + PreferencesState.getInstance().isPushInProgress());
}
@Override
public void onBannedOrgUnit() {
showInDialog("", PreferencesState.getInstance().getContext().getString(R.string.exception_org_unit_banned));
}
@Override
public void onReOpenOrgUnit() {
showInDialog("", String.format(PreferencesState.getInstance().getContext().getString(R.string.dialog_reopen_org_unit), PreferencesState.getInstance().getOrgUnit()));
}
@Override
public void onApiCallError() {
onError("API call error");
}
@Override
public void onApiCallError(ApiCallException e) {
onError("PUSHUSECASE ERROR " + e.getMessage());
e.printStackTrace();
}
@Override
public void onClosedUser() {
onError("PUSHUSECASE ERROR on closedUser " + PreferencesState.getInstance().isPushInProgress());
closeUserLogout();
}
});
}
use of org.eyeseetea.malariacare.domain.usecase.push.SurveysThresholds in project pictureapp by EyeSeeTea.
the class OverLimitSurveysDomainServiceTest method should_return_false_if_surveys_count_is_under_threshold_and_difference_time_is_over_threshold.
@Test
public void should_return_false_if_surveys_count_is_under_threshold_and_difference_time_is_over_threshold() {
List<Survey> surveys = givenThereAre30SurveysIn2Hours();
SurveysThresholds surveyThreshold = new SurveysThresholdBuilder().withCount(40).withTimeHour(1).build();
boolean isOverLimit = OverLimitSurveysDomainService.isSurveysOverLimit(surveys, surveyThreshold);
assertThat(isOverLimit, is(false));
}
use of org.eyeseetea.malariacare.domain.usecase.push.SurveysThresholds in project pictureapp by EyeSeeTea.
the class OverLimitSurveysDomainServiceTest method should_return_false_if_time_hours_threshold_is_equal_to_0.
@Test
public void should_return_false_if_time_hours_threshold_is_equal_to_0() {
List<Survey> surveys = givenThereAre30SurveysIn2Hours();
SurveysThresholds surveyThreshold = new SurveysThresholdBuilder().withCount(20).withTimeHour(0).build();
boolean isOverLimit = OverLimitSurveysDomainService.isSurveysOverLimit(surveys, surveyThreshold);
assertThat(isOverLimit, is(false));
}
use of org.eyeseetea.malariacare.domain.usecase.push.SurveysThresholds in project pictureapp by EyeSeeTea.
the class OverLimitSurveysDomainServiceTest method should_return_false_if_count_threshold_is_equal_to_0.
@Test
public void should_return_false_if_count_threshold_is_equal_to_0() {
List<Survey> surveys = givenThereAre30SurveysIn2Hours();
SurveysThresholds surveyThreshold = new SurveysThresholdBuilder().withCount(0).withTimeHour(1).build();
boolean isOverLimit = OverLimitSurveysDomainService.isSurveysOverLimit(surveys, surveyThreshold);
assertThat(isOverLimit, is(false));
}
use of org.eyeseetea.malariacare.domain.usecase.push.SurveysThresholds in project pictureapp by EyeSeeTea.
the class OverLimitSurveysDomainServiceTest method should_return_true_if_surveys_count_is_equal_to_threshold_and_difference_time_is_equal_to_threshold.
@Test
public void should_return_true_if_surveys_count_is_equal_to_threshold_and_difference_time_is_equal_to_threshold() {
List<Survey> surveys = givenThereAre30SurveysIn2Hours();
SurveysThresholds surveyThreshold = new SurveysThresholdBuilder().withCount(30).withTimeHour(2).build();
boolean isOverLimit = OverLimitSurveysDomainService.isSurveysOverLimit(surveys, surveyThreshold);
assertThat(isOverLimit, is(true));
}
Aggregations