package org.openlmis.core.network;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.openlmis.core.LMISTestApp;
import org.openlmis.core.LMISTestRunner;
import org.openlmis.core.R;
import static org.junit.Assert.*;
@RunWith(LMISTestRunner.class)
public class SyncErrorsMapTest {
@Test
public void shouldReturnAppErrorWhenServerReturnsDuplicateError() {
String appDisplayError = SyncErrorsMap.getDisplayErrorMessageBySyncErrorMessage("RnR for this period has been submitted");
assertEquals(LMISTestApp.getContext().getString(R.string.duplicate_rnr_error), appDisplayError);
}
@Test
public void shouldReturnAppErrorWhenServerReturnsProgramConfigError() {
String appDisplayError = SyncErrorsMap.getDisplayErrorMessageBySyncErrorMessage("Program configuration missing");
assertEquals(LMISTestApp.getContext().getString(R.string.period_configuration_missing), appDisplayError);
}
@Test
public void shouldReturnAppErrorWhenServerReturnsInvalidProductError() {
String appDisplayError = SyncErrorsMap.getDisplayErrorMessageBySyncErrorMessage("Invalid product codes [01A01]");
assertEquals("Sync failed due attempted submission of invalid product in form [01A01]. Please contact system administrator.", appDisplayError);
}
@Test
public void shouldReturnAppErrorWhenServerReturnsPreviousNotFilledError() {
String appDisplayError = SyncErrorsMap.getDisplayErrorMessageBySyncErrorMessage("Please finish all R&R of previous period(s)");
assertEquals(LMISTestApp.getContext().getString(R.string.rnr_previous_not_filled), appDisplayError);
}
@Test
public void shouldReturnAppErrorWhenServerReturnsUserUnAuthorizedError() {
String appDisplayError = SyncErrorsMap.getDisplayErrorMessageBySyncErrorMessage("User does not have permission");
assertEquals(LMISTestApp.getContext().getString(R.string.unauthorized_operation), appDisplayError);
}
@Test
public void shouldReturnAppErrorWhenServerReturnsInternalError() {
String appDisplayError = SyncErrorsMap.getDisplayErrorMessageBySyncErrorMessage("Sync failed due to technical problem on the server. Please contact system administrator.");
assertEquals(LMISTestApp.getContext().getString(R.string.sync_server_error), appDisplayError);
}
@Test
public void shouldReturnAppDataErrorWhenServerReturnsOtherError() {
String appDisplayError = SyncErrorsMap.getDisplayErrorMessageBySyncErrorMessage("Something else");
assertEquals(LMISTestApp.getContext().getString(R.string.default_sync_data_error), appDisplayError);
}
@Test
public void shouldReturnAppPeriodErrorWhenServerReturnsPeriodError() {
String appDisplayError = SyncErrorsMap.getDisplayErrorMessageBySyncErrorMessage("Submitted period is not next period in schedule.");
assertEquals(LMISTestApp.getContext().getString(R.string.period_mismatch_error), appDisplayError);
}
}