use of com.jakdor.labday.common.model.AppData in project LabDayApp by jakdor.
the class RetrofitBuilderTest method createServiceWithInterceptor.
/**
* test RetrofitBuilder in isolation from AuthenticationInterceptor
*/
@Test
public void createServiceWithInterceptor() throws Exception {
Request request = new Request.Builder().header("Authorization", dummyToken).get().url(dummyApiUrl).build();
ResponseBody dummyResponse = new ResponseBody() {
@Override
public MediaType contentType() {
return null;
}
@Override
public long contentLength() {
return 0;
}
@Override
public BufferedSource source() {
return null;
}
};
when(authenticationInterceptor.intercept(any())).thenReturn(new Response.Builder().request(request).protocol(Protocol.HTTP_2).code(200).body(dummyResponse).message(message).build());
LabService labService = retrofitBuilder.createService(dummyApiUrl, LabService.class, dummyToken);
TestObserver<AppData> testObserver = labService.getAppData().test();
testObserver.assertSubscribed();
testObserver.onComplete();
InOrder order = inOrder(authenticationInterceptor);
order.verify(authenticationInterceptor, calls(1)).setAuthToken(dummyToken);
order.verify(authenticationInterceptor, calls(1)).intercept(any());
}
use of com.jakdor.labday.common.model.AppData in project LabDayApp by jakdor.
the class MainFragmentTest method initMockData.
private void initMockData() {
AppData data = new AppData();
ArrayList<Path> paths = new ArrayList<>();
paths.add(new Path(1, "dummyNameWrong", "PathInfoWrong", false));
paths.add(new Path(2, "dummyName", "PathInfo", true));
data.setPaths(paths);
appData.setValue(RxResponse.success(data));
loadingStatus.setValue(false);
}
use of com.jakdor.labday.common.model.AppData in project LabDayApp by jakdor.
the class LocalDbIntegrationTests method integrationTestSaveAndLoad.
/**
* Save and load {@link com.jakdor.labday.common.model.AppData} to local db
*/
@Test
public void integrationTestSaveAndLoad() throws Exception {
Gson gson = new Gson();
AppData appData = gson.fromJson(readFile(appDataJsonPath), AppData.class);
localDbHandler.pushAppDataToDb(appData);
TestObserver<RxResponse<AppData>> testObserver = localDbHandler.getAppDataFromDb().test();
testObserver.assertSubscribed();
testObserver.awaitCount(1);
testObserver.assertNoErrors();
testObserver.assertValue(appDataRxResponse -> {
Assert.assertEquals(RxStatus.SUCCESS_DB, appDataRxResponse.status);
Assert.assertNotNull(appDataRxResponse.data);
Assert.assertNull(appDataRxResponse.error);
Assert.assertEquals(appData, appDataRxResponse.data);
Assert.assertEquals(appData.hashCode(), appDataRxResponse.data.hashCode());
Assert.assertNotNull(appDataRxResponse.data.getEvents());
Assert.assertNotNull(appDataRxResponse.data.getMapOthers());
Assert.assertNotNull(appDataRxResponse.data.getPaths());
Assert.assertNotNull(appDataRxResponse.data.getSpeakers());
Assert.assertNotNull(appDataRxResponse.data.getTimetables());
return true;
});
testObserver.onComplete();
}
use of com.jakdor.labday.common.model.AppData in project LabDayApp by jakdor.
the class ProjectRepositoryIntegrationTest method integrationUpdateTestScenario1.
/**
* {@link ProjectRepository} getUpdate() integration test scenario 1
* - local last update id doesn't match API id
* - get API last update id
* - get appData API response (successful)
* - check ProjectRepository after successful call
*/
@Test
public void integrationUpdateTestScenario1() throws Exception {
SharedPreferences sharedPreferences = targetContext.getSharedPreferences(targetContext.getString(R.string.pref_file_name), Context.MODE_PRIVATE);
sharedPreferences.edit().putString(targetContext.getString(R.string.pref_api_last_update_id), "0").commit();
Assert.assertEquals(projectRepository.getRepositoryState(), ProjectRepository.repositoryStates.INIT);
Assert.assertNull(projectRepository.getData());
projectRepository.setAccessToken(dummyToken);
Gson gson = new Gson();
AppData appData = gson.fromJson(readAssetFile(testContext, "api/app_data.json"), AppData.class);
TestObserver<RxResponse<AppData>> testObserver = projectRepository.getUpdate(dummyApiUrl, targetContext).subscribeOn(Schedulers.io()).doOnError(throwable -> Assert.fail()).test();
testObserver.assertSubscribed();
testObserver.awaitCount(1);
testObserver.assertNoErrors();
testObserver.assertValue(appDataRxResponse -> {
Assert.assertNotNull(appDataRxResponse);
Assert.assertNotNull(appDataRxResponse.data);
Assert.assertNull(appDataRxResponse.error);
Assert.assertEquals(RxStatus.SUCCESS, appDataRxResponse.status);
Assert.assertEquals(appData, appDataRxResponse.data);
Assert.assertEquals(appData.hashCode(), appDataRxResponse.data.hashCode());
Assert.assertEquals(projectRepository.getRepositoryState(), ProjectRepository.repositoryStates.READY);
Assert.assertNotNull(projectRepository.getData());
Assert.assertEquals(projectRepository.getData().data, appData);
LastUpdate expectedLastUpdate = gson.fromJson(readAssetFile(testContext, "api/last_update.json"), LastUpdate.class);
Assert.assertNotNull(expectedLastUpdate.getUpdatedAt());
Assert.assertEquals(new String(expectedLastUpdate.getUpdatedAt().toCharArray()), sharedPreferences.getString(targetContext.getString(R.string.pref_api_last_update_id), null));
return true;
});
testObserver.onComplete();
}
use of com.jakdor.labday.common.model.AppData in project LabDayApp by jakdor.
the class RetrofitAPICallsIntegrationTest method appDataTokenTest.
/**
* Tests response from AppData API call with token authorization
*/
@Test
public void appDataTokenTest() throws Exception {
Gson gson = new Gson();
AppData appData = gson.fromJson(readFile(appDataJsonPath), AppData.class);
LabService labService = retrofitBuilder.createService(dummyApiUrl, LabService.class, dummyToken);
TestObserver<AppData> testObserver = labService.getAppData().test();
testObserver.assertSubscribed();
testObserver.awaitCount(1);
testObserver.assertNoErrors();
testObserver.assertValue(appData1 -> {
assertEquals(appData, appData1);
assertEquals(appData.hashCode(), appData1.hashCode());
return true;
});
testObserver.onComplete();
}
Aggregations