package org.societies.api.android.internal.model;
import static org.junit.Assert.*;
import java.util.ArrayList;
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.societies.api.internal.css.management.CSSManagerEnums;
import org.societies.api.schema.cssmanagement.CssRecord;
import org.societies.api.schema.cssmanagement.CssNode;
//import com.google.gson.Gson;
//import com.google.gson.GsonBuilder;
public class TestAndroidCSSRecord {
public static final String TEST_IDENTITY_1 = "node11";
public static final String TEST_IDENTITY_2 = "node22";
public static final String TEST_IDENTITY = "CSSProfile1";
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_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;
private AndroidCSSNode cssNodes [];
private AndroidCSSNode cssArchivedNodes [];
@Before
public void setUp() throws Exception {
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());
cssNodes = new AndroidCSSNode[2];
cssNodes[0] = cssNode_1;
cssNodes[1] = cssNode_2;
cssArchivedNodes = new AndroidCSSNode[2];
cssArchivedNodes[0] = cssNode_1;
cssArchivedNodes[1] = cssNode_2;
}
@After
public void tearDown() throws Exception {
cssNode_1 = null;
cssNode_2 = null;
cssNodes = null;
cssArchivedNodes = null;
}
@Test
public void testConstructor() {
AndroidCSSRecord 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());
}
@Test
public void testArrays() {
AndroidCSSRecord cssProfile = new AndroidCSSRecord();
assertEquals(0, cssProfile.getArchivedCSSNodes().length);
assertEquals(0, cssProfile.getCSSNodes().length);
}
@Test
public void testConversion() {
CssRecord cssProfile = new CssRecord();
cssProfile.getCssNodes().add(cssNode_1);
cssProfile.getCssNodes().add(cssNode_2);
cssProfile.getArchiveCSSNodes().add(cssNode_1);
cssProfile.getArchiveCSSNodes().add(cssNode_2);
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(2, cssProfile.getArchiveCSSNodes().size());
assertEquals(TEST_IDENTITY, cssProfile.getCssIdentity());
assertEquals(TEST_INACTIVE_DATE, cssProfile.getCssInactivation());
assertEquals(2, cssProfile.getCssNodes().size());
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());
AndroidCSSRecord aRecord = AndroidCSSRecord.convertCssRecord(cssProfile);
assertEquals(2, aRecord.getArchivedCSSNodes().length);
assertEquals(TEST_IDENTITY, aRecord.getCssIdentity());
assertEquals(TEST_INACTIVE_DATE, aRecord.getCssInactivation());
assertEquals(2, aRecord.getCSSNodes().length);
assertEquals(TEST_REGISTERED_DATE, aRecord.getCssRegistration());
assertEquals(CSSManagerEnums.cssStatus.Active.ordinal(), aRecord.getStatus());
assertEquals(TEST_UPTIME, aRecord.getCssUpTime());
assertEquals(TEST_EMAIL, aRecord.getEmailID());
assertEquals(CSSManagerEnums.entityType.Organisation.ordinal(), aRecord.getEntity());
assertEquals(TEST_FORENAME, aRecord.getForeName());
assertEquals(TEST_HOME_LOCATION, aRecord.getHomeLocation());
assertEquals(TEST_IDENTITY_NAME, aRecord.getIdentityName());
assertEquals(TEST_IM_ID, aRecord.getImID());
assertEquals(TEST_NAME, aRecord.getName());
assertEquals(TEST_PASSWORD, aRecord.getPassword());
assertEquals(CSSManagerEnums.presenceType.Available.ordinal(), aRecord.getPresence());
assertEquals(CSSManagerEnums.genderType.Unspecified.ordinal(), aRecord.getSex());
assertEquals(TEST_SOCIAL_URI, aRecord.getSocialURI());
}
// @Test
// /**
// * Tests the use GSON and JSON libraries to allow Java classes to be
// * converted to and from JSON. Cannot work in this project as Android
// * library is stubbed.
// */
// public void testJSONConversion() {
// AndroidCSSRecord cssProfile = new AndroidCSSRecord();
// cssProfile.getCssNodes().add(cssNode_1);
// cssProfile.getCssNodes().add(cssNode_2);
// cssProfile.getArchiveCSSNodes().add(cssNode_1);
// cssProfile.getArchiveCSSNodes().add(cssNode_2);
// 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.size(), cssProfile.getArchiveCSSNodes().size());
// assertEquals(TEST_IDENTITY, cssProfile.getCssIdentity());
// assertEquals(TEST_INACTIVE_DATE, cssProfile.getCssInactivation());
// assertEquals(cssNodes.size(), cssProfile.getCssNodes().size());
// 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());
//
// Gson gson = new GsonBuilder().setPrettyPrinting().create();
// String jSON = gson.toJson(cssProfile);
// System.out.println(jSON);
//
// }
}