package ca.ualberta.cs.cmput301f14t14.questionapp.test.data; import java.io.IOException; import java.util.List; import android.test.ActivityInstrumentationTestCase2; import ca.ualberta.cs.cmput301f14t14.questionapp.MainActivity; import ca.ualberta.cs.cmput301f14t14.questionapp.data.DataManager; import ca.ualberta.cs.cmput301f14t14.questionapp.data.LocalDataStore; import ca.ualberta.cs.cmput301f14t14.questionapp.data.RemoteDataStore; import ca.ualberta.cs.cmput301f14t14.questionapp.model.Answer; import ca.ualberta.cs.cmput301f14t14.questionapp.model.Comment; import ca.ualberta.cs.cmput301f14t14.questionapp.model.Question; import ca.ualberta.cs.cmput301f14t14.questionapp.test.mock.MockData; public class RemoteDataStoreTest extends ActivityInstrumentationTestCase2<MainActivity> { private LocalDataStore localStore; private RemoteDataStore remoteStore; public RemoteDataStoreTest() { super(MainActivity.class); } protected void setUp() throws Exception { super.setUp(); DataManager dm = DataManager.getInstance(getInstrumentation().getTargetContext().getApplicationContext()); localStore = (LocalDataStore) dm.getLocalDataStore(); remoteStore = (RemoteDataStore) dm.getRemoteDataStore(); MockData.initMockData(); } /** * Verify that a question object can be sent to ElasticSearch */ public void testPutQuestion() { Question q = MockData.questions.get(0); localStore.putQuestion(q); try { remoteStore.putQuestion(q); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Question retrievedQuestion = null; try { retrievedQuestion = remoteStore.getQuestion(q.getId()); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } assertEquals(q, retrievedQuestion); } /** * Verify that a question list can be fetched from ElasticSearch */ public void testGetQuestionList() { List<Question> ql = null; Question q = MockData.questions.get(1); localStore.putQuestion(q); try { remoteStore.putQuestion(q); } catch (IOException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { ql = remoteStore.getQuestionList(); } catch (IOException e) { fail(); } assertTrue(ql.size() != 0); assertTrue(ql.contains(q)); } /** * Verify that an answer object can be sent to ElasticSearch */ public void testPutAnswer() { Answer a = MockData.answers.get(0); try { localStore.putAnswer(a); remoteStore.putAnswer(a); } catch (IOException e) { } Answer retrievedAnswer = remoteStore.getAnswer(a.getId()); assertEquals(a, retrievedAnswer); } /** * Verify that an answer comment object can be sent to ElasticSearch */ public void testPutAnswerComment() { Comment<Answer> c = MockData.acomments.get(0); remoteStore.putAComment(c); Comment<Answer> retrievedComment = remoteStore.getAComment(c.getId()); assertEquals(c, retrievedComment); } /** * Verify that a question comment object can be sent to ElasticSearch */ public void testPutQuestionComment() { Comment<Question> c = MockData.qcomments.get(0); try { remoteStore.putQComment(c); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } Comment<Question> retrievedComment = remoteStore.getQComment(c.getId()); assertEquals(c, retrievedComment); } }