package org.societies.android.platform.content; import org.societies.android.api.internal.cssmanager.AndroidCSSNode; import org.societies.android.api.internal.cssmanager.AndroidCSSRecord; import org.societies.api.internal.css.management.CSSManagerEnums; import android.test.AndroidTestCase; public class TestCSSRecordDAO extends AndroidTestCase { public static final String TEST_IDENTITY_1 = "node11"; public static final String TEST_IDENTITY_2 = "node22"; public static final String TEST_IDENTITY_3 = "node3"; public static final String TEST_IDENTITY = "CSSProfile1"; public static final String TEST_UPDATE_IDENTITY = "CSSProfilealt"; public static final String TEST_INACTIVE_DATE = "20121029"; public static final String TEST_REGISTERED_DATE = "20120229"; public static final int TEST_UPTIME = 7799; public static final String TEST_EMAIL = "somebody@tssg.org"; public static final String TEST_UPDATE_EMAIL = "altsomebody@tssg.org"; public static final String TEST_FORENAME = "4Name"; public static final String TEST_HOME_LOCATION = "The Hearth"; public static final String TEST_IDENTITY_NAME = "Id Name"; public static final String TEST_IM_ID = "somebody.tssg.org"; public static final String TEST_NAME = "The CSS"; public static final String TEST_PASSWORD = "P455W0RD"; public static final String TEST_SOCIAL_URI = "sombody@fb.com"; private AndroidCSSNode cssNode_1, cssNode_2, cssNode_3; private AndroidCSSNode cssNodes []; private AndroidCSSNode cssArchivedNodes []; private AndroidCSSNode cssUpdateNodes []; private AndroidCSSNode cssUpdateArchivedNodes []; private AndroidCSSRecord cssProfile; protected void setUp() throws Exception { super.setUp(); getContext().deleteDatabase(CssRecordDAO.SOCIETIES_DATABASE_NAME); cssNode_1 = new AndroidCSSNode(); cssNode_1.setIdentity(TEST_IDENTITY_1); cssNode_1.setStatus(CSSManagerEnums.nodeStatus.Available.ordinal()); cssNode_1.setType(CSSManagerEnums.nodeType.Rich.ordinal()); cssNode_2 = new AndroidCSSNode(); cssNode_2.setIdentity(TEST_IDENTITY_2); cssNode_2.setStatus(CSSManagerEnums.nodeStatus.Hibernating.ordinal()); cssNode_2.setType(CSSManagerEnums.nodeType.Android.ordinal()); cssNode_3 = new AndroidCSSNode(); cssNode_3.setIdentity(TEST_IDENTITY_3); cssNode_3.setStatus(CSSManagerEnums.nodeStatus.Unavailable.ordinal()); cssNode_3.setType(CSSManagerEnums.nodeType.Cloud.ordinal()); cssNodes = new AndroidCSSNode[2]; cssNodes[0] = cssNode_1; cssNodes[1] = cssNode_2; cssArchivedNodes = new AndroidCSSNode[2]; cssArchivedNodes[0] = cssNode_1; cssArchivedNodes[1] = cssNode_2; cssProfile = new AndroidCSSRecord(); cssProfile.setCSSNodes(cssNodes); cssProfile.setArchiveCSSNodes(cssArchivedNodes); cssProfile.setCssIdentity(TEST_IDENTITY); cssProfile.setCssInactivation(TEST_INACTIVE_DATE); cssProfile.setCssRegistration(TEST_REGISTERED_DATE); cssProfile.setStatus(CSSManagerEnums.cssStatus.Active.ordinal()); cssProfile.setCssUpTime(TEST_UPTIME); cssProfile.setEmailID(TEST_EMAIL); cssProfile.setEntity(CSSManagerEnums.entityType.Organisation.ordinal()); cssProfile.setForeName(TEST_FORENAME); cssProfile.setHomeLocation(TEST_HOME_LOCATION); cssProfile.setIdentityName(TEST_IDENTITY_NAME); cssProfile.setImID(TEST_IM_ID); cssProfile.setName(TEST_NAME); cssProfile.setPassword(TEST_PASSWORD); cssProfile.setPresence(CSSManagerEnums.presenceType.Available.ordinal()); cssProfile.setSex(CSSManagerEnums.genderType.Unspecified.ordinal()); cssProfile.setSocialURI(TEST_SOCIAL_URI); assertEquals(cssArchivedNodes.length, cssProfile.getArchivedCSSNodes().length); assertEquals(cssArchivedNodes[0].getIdentity(), cssProfile.getArchivedCSSNodes()[0].getIdentity()); assertEquals(TEST_IDENTITY, cssProfile.getCssIdentity()); assertEquals(TEST_INACTIVE_DATE, cssProfile.getCssInactivation()); assertEquals(cssNodes.length, cssProfile.getCSSNodes().length); assertEquals(cssNodes[0].getIdentity(), cssProfile.getCSSNodes()[0].getIdentity()); assertEquals(TEST_REGISTERED_DATE, cssProfile.getCssRegistration()); assertEquals(CSSManagerEnums.cssStatus.Active.ordinal(), cssProfile.getStatus()); assertEquals(TEST_UPTIME, cssProfile.getCssUpTime()); assertEquals(TEST_EMAIL, cssProfile.getEmailID()); assertEquals(CSSManagerEnums.entityType.Organisation.ordinal(), cssProfile.getEntity()); assertEquals(TEST_FORENAME, cssProfile.getForeName()); assertEquals(TEST_HOME_LOCATION, cssProfile.getHomeLocation()); assertEquals(TEST_IDENTITY_NAME, cssProfile.getIdentityName()); assertEquals(TEST_IM_ID, cssProfile.getImID()); assertEquals(TEST_NAME, cssProfile.getName()); assertEquals(TEST_PASSWORD, cssProfile.getPassword()); assertEquals(CSSManagerEnums.presenceType.Available.ordinal(), cssProfile.getPresence()); assertEquals(CSSManagerEnums.genderType.Unspecified.ordinal(), cssProfile.getSex()); assertEquals(TEST_SOCIAL_URI, cssProfile.getSocialURI()); } protected void tearDown() throws Exception { cssNode_1 = null; cssNode_2 = null; cssNode_3 = null; cssNodes = null; cssArchivedNodes = null; cssProfile = null; super.tearDown(); } public void testCRUCssRecord() throws Exception { CssRecordDAO cssRecordDAO = new CssRecordDAO(getContext()); assertTrue(null != cssRecordDAO); cssRecordDAO.insertCSSRecord(this.cssProfile); this.readValidate(cssRecordDAO); cssUpdateArchivedNodes = new AndroidCSSNode[3]; cssUpdateArchivedNodes[0] = cssNode_1; cssUpdateArchivedNodes[1] = cssNode_2; cssUpdateArchivedNodes[2] = cssNode_3; cssUpdateNodes = new AndroidCSSNode[3]; cssUpdateNodes[0] = cssNode_1; cssUpdateNodes[1] = cssNode_2; cssUpdateNodes[2] = cssNode_3; this.cssProfile.setCssIdentity(TEST_UPDATE_IDENTITY); this.cssProfile.setEmailID(TEST_UPDATE_EMAIL); this.cssProfile.setCSSNodes(cssUpdateNodes); this.cssProfile.setArchiveCSSNodes(cssUpdateArchivedNodes); cssRecordDAO.updateCSSRecord(this.cssProfile); this.readValidate(cssRecordDAO); } public void testInvalidRead() throws Exception { CssRecordDAO cssRecordDAO = new CssRecordDAO(getContext()); assertTrue(null != cssRecordDAO); assertTrue(!cssRecordDAO.cssRecordExists()); assertNull(cssRecordDAO.readCSSrecord()); } public void testInvalidInsert() throws Exception { CssRecordDAO cssRecordDAO = new CssRecordDAO(getContext()); assertTrue(null != cssRecordDAO); cssRecordDAO.insertCSSRecord(this.cssProfile); assertTrue(cssRecordDAO.cssRecordExists()); assertTrue(!cssRecordDAO.insertCSSRecord(this.cssProfile)); } public void testInvalidUpdate() throws Exception { CssRecordDAO cssRecordDAO = new CssRecordDAO(getContext()); assertTrue(null != cssRecordDAO); assertTrue(!cssRecordDAO.updateCSSRecord(this.cssProfile)); } private void readValidate(CssRecordDAO cssRecordDAO) { assertTrue(cssRecordDAO.cssRecordExists()); AndroidCSSRecord storedRecord = cssRecordDAO.readCSSrecord(); assertNotNull(storedRecord); assertEquals(this.cssProfile.getCssHostingLocation(), storedRecord.getCssHostingLocation()); assertEquals(this.cssProfile.getCSSNodes().length, storedRecord.getCSSNodes().length); assertEquals(this.cssProfile.getArchivedCSSNodes().length, storedRecord.getArchivedCSSNodes().length); assertEquals(this.cssProfile.getCssIdentity(), storedRecord.getCssIdentity()); assertEquals(this.cssProfile.getCssInactivation(), storedRecord.getCssInactivation()); assertEquals(this.cssProfile.getCssRegistration(), storedRecord.getCssRegistration()); assertEquals(this.cssProfile.getCssUpTime(), storedRecord.getCssUpTime()); assertEquals(this.cssProfile.getDomainServer(), storedRecord.getDomainServer()); assertEquals(this.cssProfile.getEmailID(), storedRecord.getEmailID()); assertEquals(this.cssProfile.getEntity(), storedRecord.getEntity()); assertEquals(this.cssProfile.getForeName(), storedRecord.getForeName()); assertEquals(this.cssProfile.getHomeLocation(), storedRecord.getHomeLocation()); assertEquals(this.cssProfile.getIdentityName(), storedRecord.getIdentityName()); assertEquals(this.cssProfile.getImID(), storedRecord.getImID()); assertEquals(this.cssProfile.getName(), storedRecord.getName()); assertEquals(this.cssProfile.getPassword(), storedRecord.getPassword()); assertEquals(this.cssProfile.getPresence(), storedRecord.getPresence()); assertEquals(this.cssProfile.getSex(), storedRecord.getSex()); assertEquals(this.cssProfile.getSocialURI(), storedRecord.getSocialURI()); assertEquals(this.cssProfile.getStatus(), storedRecord.getStatus()); } }