package it.angelic.soulissclient.test; import android.test.AndroidTestCase; import android.test.RenamingDelegatingContext; import android.util.Log; import java.util.List; import it.angelic.soulissclient.Constants; import it.angelic.soulissclient.helpers.SoulissPreferenceHelper; import it.angelic.soulissclient.model.SoulissNode; import it.angelic.soulissclient.model.SoulissTypical; import it.angelic.soulissclient.model.SoulissTypicalFactory; 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 SoulissTestPersistence 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(); super.tearDown(); } public void testGetAllNodes() { List<SoulissNode> testList = db.getAllNodes(); assertEquals(testList.size(), db.countNodes()); } public void testLogging() { SoulissTypical11DigitalOutput testTypical = (SoulissTypical11DigitalOutput) db.getTypical(fakeNodeId, fakeSlotId); testTypical.getTypicalDTO().setOutput(Constants.Typicals.Souliss_T1n_OnCoil); testTypical.getTypicalDTO().refresh(testTypical); assertTrue(db.getTypicalLogs(testTypical).size() > 0); } public void testGetSize() { assertTrue(db.getSize() > 0); } public void testGetNodeTypicals() { SoulissNode father = db.getSoulissNode(fakeNodeId); List<SoulissTypical> testTypical = db.getNodeTypicals(father); assertEquals(2, db.countTypicals());//siam sicuri che solo lui SoulissTypical51AnalogueSensor copy = (SoulissTypical51AnalogueSensor) SoulissTypicalFactory.getTypical(getContext(), Constants.Typicals.Souliss_T51, father, testTypical.get(1).getTypicalDTO(), new SoulissPreferenceHelper(getContext())); assertEquals(copy.getTypicalDTO(), testTypical.get(1).getTypicalDTO()); } public void testGetTypical() { SoulissTypical51AnalogueSensor testTypical = (SoulissTypical51AnalogueSensor) db.getTypical(fakeNodeId, (short) (fakeSlotId + 1)); SoulissNode father = db.getSoulissNode(fakeNodeId); SoulissTypical51AnalogueSensor copy = (SoulissTypical51AnalogueSensor) SoulissTypicalFactory.getTypical(getContext(), Constants.Typicals.Souliss_T51, father, testTypical.getTypicalDTO(), new SoulissPreferenceHelper(getContext())); assertEquals(true, testTypical.isSensor()); assertEquals(copy.getTypicalDTO(), testTypical.getTypicalDTO()); } }