package ca.ualberta.cs.cmput301f14t14.questionapp.test.data; import android.test.ActivityInstrumentationTestCase2; import ca.ualberta.cs.cmput301f14t14.questionapp.MainActivity; import ca.ualberta.cs.cmput301f14t14.questionapp.data.LocalDataStore; 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 LocalDataStoreTest extends ActivityInstrumentationTestCase2<MainActivity> { private LocalDataStore localStore; private final Question new_q = new Question("Geometry troubles", "Why does my triangle have four sides?", "Jim", null); private final Answer new_a = new Answer(new_q.getId(), "You are looking at this from the wrong dimension.", "John", null); private final Comment<Question> new_cq = new Comment<Question>(new_q.getId(), "Are you sure you're looking at a triangle?", "Joe"); private final Comment<Answer> new_ca = new Comment<Answer>(new_a.getId(), "I don't think so...", "Jane"); public LocalDataStoreTest() { super(MainActivity.class); } protected void setUp() throws Exception { super.setUp(); MockData.initMockData(); localStore = new LocalDataStore(getInstrumentation().getTargetContext().getApplicationContext()); localStore.clear(); localStore.save(); for (Question q: MockData.questions) { localStore.putQuestion(q); } for (Answer a: MockData.answers) { localStore.putAnswer(a); } for (Comment<Question> c: MockData.qcomments) { localStore.putQComment(c); } for (Comment<Answer> c: MockData.acomments) { localStore.putAComment(c); } } protected void tearDown() throws Exception { super.tearDown(); } public void testPutQuestion() { assertNull(localStore.getQuestion(new_q.getId())); localStore.putQuestion(new_q); assertEquals(localStore.getQuestion(new_q.getId()), new_q); } public void testPutAnswer() { assertNull(localStore.getAnswer(new_a.getId())); localStore.putAnswer(new_a); assertEquals(new_a, localStore.getAnswer(new_a.getId())); } public void testPutComment() { assertNull(localStore.getAComment(new_ca.getId())); localStore.putAComment(new_ca); assertEquals(new_ca, localStore.getAComment(new_ca.getId())); assertNull(localStore.getQComment(new_cq.getId())); localStore.putQComment(new_cq); assertEquals(new_cq, localStore.getQComment(new_cq.getId())); } public void testSerialize() { localStore.putQuestion(new_q); localStore.save(); LocalDataStore localStoreClone = new LocalDataStore(getInstrumentation().getTargetContext().getApplicationContext()); assertEquals(localStore.getQuestionList().size(), localStoreClone.getQuestionList().size()); assertNotNull(localStoreClone.getQuestion(new_q.getId())); assertEquals(localStore.getQuestion(new_q.getId()), localStoreClone.getQuestion(new_q.getId())); assertEquals(localStore, localStoreClone); } }