/// <summary>
        /// Deserialize
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="xmlFilePath"></param>
        /// <returns></returns>
        public List <T> Deserialize <T>(string xmlFilePath)
        {
            var result = new List <T>();

            try
            {
                var xmlInputData = _xmlDocumentReader.ReadAllText(xmlFilePath);

                var doc = new XmlDocument();//class used to parse xml document

                doc.LoadXml(xmlInputData);

                var root = doc.FirstChild; //only one root element is permitted in xml structure

                if (root.HasChildNodes)    //root element's childs
                {
                    BuildListOfElementFromXmlData(result, root.ChildNodes);
                }
                else//empty or corrupted xml document
                {
                    Logger.Info("Root without child nodes. Please check the xml document format.");
                }
            }
            catch (Exception ex)
            {
                Logger.Error(ex.Message, ex);
                throw;
            }

            return(result);
        }
Esempio n. 2
0
        public void DeserializeOneElement()
        {
            var xmlData = new StringBuilder();//Substitute input xml data

            xmlData.Append("<Trades>");
            xmlData.Append("<Trade TradeID=\"654\" Limit=\"1000\" NumberOfTrades=\"3\" CorrelationId=\"234\">100</Trade>");
            xmlData.Append("</Trades>");
            var xmlDataString = xmlData.ToString();

            _xmlDocumentReader.ReadAllText(Arg.Any <string>()).ReturnsForAnyArgs(xmlDataString);

            var result = _xmlDocumentSerializer.Deserialize <InputTradeModel>(string.Empty);//path is not needed

            Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsInstanceOfType(result, typeof(List <InputTradeModel>));
            NUnit.Framework.Assert.That(result.Count, Is.EqualTo(1));
            NUnit.Framework.Assert.That(result.First().TradeId, Is.EqualTo("654"));//trade id is string
            NUnit.Framework.Assert.That(result.First().Limit, Is.EqualTo(1000));
            NUnit.Framework.Assert.That(result.First().NumberOfTrades, Is.EqualTo(3));
            NUnit.Framework.Assert.That(result.First().CorrelationId, Is.EqualTo("234"));//correlation id is string
            NUnit.Framework.Assert.That(result.First().Value, Is.EqualTo(100));
        }