private CRoot getRootObject(XmlNode node) { CTable param = null; CTable data = null; CRoot root = new CRoot(null, null); int idx = 0; foreach (XmlNode n1 in node.ChildNodes) { if (idx == 0) { param = populateTableObject(n1); } else if (idx == 1) { data = populateTableObject(n1); } idx++; } root.Data = data; root.Param = param; return(root); }
public void ObjectToXmlOneLevelTest(string apiName, string fieldName, string fieldValue, string expectedValue) { string xml = @"<?xml version='1.0' encoding='UTF-8'?> <API> <OBJECT name='PARAM'> <FIELD name='FUNCTION_NAME'>{0}</FIELD> </OBJECT> <OBJECT name=''> <FIELD name='{1}'>{2}</FIELD> </OBJECT> </API>"; //Use the deserializer to create the CTable object CRoot root = deserialize(string.Format(xml, apiName, fieldName, fieldValue)); CTableToXml serializer = new CTableToXml(root); string outXml = serializer.Serialize(); CRoot xmlObj = deserialize(outXml); CTable param = xmlObj.Param; CTable dat = xmlObj.Data; string funcName = param.GetFieldValue("FUNCTION_NAME"); Assert.AreEqual(apiName, funcName, "Serialize logic is wrong for param object!!!"); string value = dat.GetFieldValue(fieldName); Assert.AreEqual(expectedValue, value, "Serialize logic is wrong for data object!!!"); }
private CRoot deserialize(string xml) { ICTableDeserializer deserializer = new XmlToCTable(xml); CRoot root = deserializer.Deserialize(); return(root); }
public void XmlToObjectOneLevelTest(string apiName, string fieldName, string fieldValue, string expectedValue) { string xml = @"<?xml version='1.0' encoding='UTF-8'?> <API> <OBJECT name='PARAM'> <FIELD name='FUNCTION_NAME'>{0}</FIELD> </OBJECT> <OBJECT name=''> <FIELD name='{1}'>{2}</FIELD> </OBJECT> </API>"; CRoot root = deserialize(string.Format(xml, apiName, fieldName, fieldValue)); CTable param = root.Param; CTable dat = root.Data; string funcName = param.GetFieldValue("FUNCTION_NAME"); Assert.AreEqual(apiName, funcName, "Deserialize logic is wrong for param object!!!"); string value = dat.GetFieldValue(fieldName); Assert.AreEqual(expectedValue, value, "Deserialize logic is wrong data object!!!"); }
public void XmlToObjectInvalidContentTest(string content) { CRoot root = deserialize(content); CTable param = root.Param; string errCode = param.GetFieldValue("ERROR_CODE"); Assert.AreNotEqual("0", errCode, "Shoud return error because XML is invalid!!!"); }
private String createXMLString(CRoot root) { XmlDocument doc = new XmlDocument(); XmlDeclaration xmldecl = doc.CreateXmlDeclaration("1.0", "UTF-8", ""); XmlElement r = doc.DocumentElement; doc.InsertBefore(xmldecl, r); XmlElement api = doc.CreateElement("API"); XmlElement o1 = createElementFromTable(doc, root.Param); XmlElement o2 = createElementFromTable(doc, root.Data); api.AppendChild(o1); api.AppendChild(o2); doc.AppendChild(api); return(doc.OuterXml); }
public void XmlToObjectWithArrayTest(string apiName, string fieldName, string fieldValue, string expectedValue, int index) { string xml = @"<?xml version='1.0' encoding='UTF-8'?> <API> <OBJECT name='PARAM'> <FIELD name='FUNCTION_NAME'>{0}</FIELD> </OBJECT> <OBJECT name=''> <FIELD name='DUMMY_FIELD'>DUMMY_VALUE</FIELD> <ITEMS name='ADDRESS_ITEM'> <OBJECT name=''> <FIELD name='{1}'>{2}_1</FIELD> <FIELD name='SORT_ORDER'>1</FIELD> </OBJECT> <OBJECT name=''> <FIELD name='{1}'>{2}_2</FIELD> <FIELD name='SORT_ORDER'>2</FIELD> </OBJECT> </ITEMS> </OBJECT> </API>"; CRoot root = deserialize(string.Format(xml, apiName, fieldName, fieldValue)); CTableToXml serializer = new CTableToXml(root); string outXml = serializer.Serialize(); CRoot xmlObj = deserialize(outXml); CTable param = xmlObj.Param; CTable dat = xmlObj.Data; string funcName = param.GetFieldValue("FUNCTION_NAME"); Assert.AreEqual(apiName, funcName, "Serialize logic is wrong for param object!!!"); ArrayList arr = dat.GetChildArray("ADDRESS_ITEM"); CTable item = (CTable)arr[index]; string value = item.GetFieldValue(fieldName); Assert.AreEqual(expectedValue, value, "Serialize logic is wrong for data object!!!"); }
private CRoot XMLToRootObject() { CRoot root = null; try { XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); root = getRootObject(doc.ChildNodes[1]); } catch (Exception e) { CTable prm = new CTable(""); CTable data = new CTable(""); prm.SetFieldValue("ERROR_CODE", "1"); prm.SetFieldValue("ERROR_DESC", e.Message); root = new CRoot(prm, data); } return(root); }
public CRoot Deserialize() { CRoot root = XMLToRootObject(); return(root); }
public CTableToXml(CRoot rt) { root = rt; }