package com.ese2013.mensaunibe.model.mensa.test; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.json.JSONObject; import android.test.InstrumentationTestCase; import com.ese2013.mensaunibe.model.data.PreferenceRequest; import com.ese2013.mensaunibe.model.mensa.Mensa; import com.ese2013.mensaunibe.model.mensa.MensaBuilder; public class MensaBuilderTest extends InstrumentationTestCase{ private JSONObject mockJSON; private MensaBuilder mensaBuilder; private int mensaId = 1; private PreferenceRequest prefReq; private boolean favorite; @Override public void setUp() throws Exception { super.setUp(); //have to add this line for Mockito to work properly System.setProperty("dexmaker.dexcache", getInstrumentation().getTargetContext().getCacheDir().getPath()); mockJSON = mock(JSONObject.class); prefReq = new PreferenceRequest(); favorite = prefReq.readPreference(mensaId); if(!favorite) prefReq.writePreference(true, mensaId); when(mockJSON.getInt("id")).thenReturn(mensaId); when(mockJSON.getString("mensa")).thenReturn("Mensa Gesellschaftsstrasse"); when(mockJSON.getString("street")).thenReturn("Gesellschaftsstrasse 2"); when(mockJSON.getString("plz")).thenReturn("3012 Bern"); when(mockJSON.getDouble("lat")).thenReturn(46.9518); when(mockJSON.getDouble("lon")).thenReturn(7.438350); mensaBuilder = new MensaBuilder(mockJSON); } @Override public void tearDown() throws Exception{ prefReq.writePreference(favorite, mensaId); } public void testId(){ assertEquals("Id should be equal", mensaId, mensaBuilder.getId()); } public void testName(){ assertEquals("Name should be equal", "Mensa Gesellschaftsstrasse", mensaBuilder.getName()); } public void testStreetAndPLZ(){ assertEquals("Street is not the same", "Gesellschaftsstrasse 2", mensaBuilder.getStreet()); assertEquals("StPLZ is not the same", "3012 Bern", mensaBuilder.getPlz()); } public void testLatLong(){ assertEquals("Latitude is not matching", 46.9518, mensaBuilder.getLat()); assertEquals("Longitude is not matching", 7.438350, mensaBuilder.getLon()); } public void testFavorite(){ assertTrue(mensaBuilder.getFav()); prefReq.writePreference(false, mensaId); mensaBuilder = new MensaBuilder(mockJSON); assertTrue(!mensaBuilder.getFav()); } public void testCreate(){ Mensa mensa = mensaBuilder.create(); assertNotNull(mensa); } }