package it.angelic.soulissclient.test; import android.os.Environment; import android.test.AndroidTestCase; import android.test.RenamingDelegatingContext; import android.util.Log; import java.io.File; import it.angelic.soulissclient.Constants; import it.angelic.soulissclient.helpers.ExportDatabaseCSVTask; import it.angelic.soulissclient.helpers.SoulissPreferenceHelper; import it.angelic.soulissclient.model.SoulissNode; import it.angelic.soulissclient.model.db.SoulissDB; import it.angelic.soulissclient.model.db.SoulissDBHelper; import it.angelic.soulissclient.model.typicals.SoulissTypical11DigitalOutput; import it.angelic.soulissclient.model.typicals.SoulissTypical51AnalogueSensor; /** * Created by shine@angelic.it on 02/09/2015. */ public class SoulissTestExport extends AndroidTestCase { private static final short fakeNodeId = 1; private static final short fakeSlotId = 1; private SoulissDBHelper db; private SoulissPreferenceHelper opzioni; protected void addFakeNode() { SoulissNode testNode = new SoulissNode(getContext(), fakeNodeId); // Here i have my new database wich is not connected to the standard database of the App db.createOrUpdateNode(testNode); assertEquals(1, db.countNodes()); // Here i have my new database wich is not connected to the standard database of the App } protected void addFakeLight() { SoulissTypical11DigitalOutput testTypical = new SoulissTypical11DigitalOutput(getContext(), opzioni); testTypical.getTypicalDTO().setTypical(Constants.Typicals.Souliss_T11); testTypical.getTypicalDTO().setNodeId(fakeNodeId); testTypical.getTypicalDTO().setSlot(fakeSlotId); SoulissNode father = db.getSoulissNode(fakeNodeId); testTypical.setParentNode(father); assertEquals(1, testTypical.getTypicalDTO().persist()); // Here i have my new database wich is not connected to the standard database of the App } protected void addFakeSensor() { SoulissTypical51AnalogueSensor testTypical = new SoulissTypical51AnalogueSensor(getContext(), opzioni); testTypical.getTypicalDTO().setTypical(Constants.Typicals.Souliss_T51); testTypical.getTypicalDTO().setNodeId(fakeNodeId); testTypical.getTypicalDTO().setSlot((short) (fakeSlotId + 1)); SoulissNode father = db.getSoulissNode(fakeNodeId); testTypical.setParentNode(father); testTypical.getTypicalDTO().persist(); //assertEquals(1, ); // Here i have my new database wich is not connected to the standard database of the App } @Override public void setUp() throws Exception { super.setUp(); RenamingDelegatingContext context = new RenamingDelegatingContext(getContext(), "test_"); db = new SoulissDBHelper(context); opzioni = new SoulissPreferenceHelper(context); SoulissDBHelper.open(); addFakeNode(); addFakeLight(); addFakeSensor(); } @Override public void tearDown() throws Exception { getContext().deleteDatabase(SoulissDB.DATABASE_NAME); Log.i(Constants.TAG, "tearDown test DB"); db.close(); File exportDir = new File(Environment.getExternalStorageDirectory(), Constants.EXTERNAL_EXP_FOLDER); exportDir.deleteOnExit(); super.tearDown(); } public void testExport() { ExportDatabaseCSVTask tas = new ExportDatabaseCSVTask(); tas.loadContext(getContext()); tas.execute(""); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } File exportDir = new File(Environment.getExternalStorageDirectory(), Constants.EXTERNAL_EXP_FOLDER); assertTrue(exportDir.exists()); assertTrue(exportDir.isDirectory()); assertTrue(exportDir.listFiles().length > 0); } }