Exemple #1
0
        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!!!");
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        public CRoot Deserialize()
        {
            CRoot root = XMLToRootObject();

            return(root);
        }
 public CTableToXml(CRoot rt)
 {
     root = rt;
 }