コード例 #1
0
 /// <summary>
 /// Check WriteResultItem of Bulk Write test cases
 /// </summary>
 /// <param name="expectedType"></param>
 /// <param name="actualItem"></param>
 public static void VerifyBulkWriteResultItem(BulkWriteInputType expectedType, WriteResultItem actualItem)
 {
     if (expectedType == BulkWriteInputType.InvalidItem)
     {
         Assert.That(actualItem.Code, Is.Not.EqualTo(Enums.PublicAPIResultCode.Success), Enums.Message.WRONG_ERROR_CODE);
     }
     else
     {
         Assert.That(actualItem.Code, Is.EqualTo(Enums.PublicAPIResultCode.Success), Enums.Message.WRONG_ERROR_CODE);
         Assert.That(actualItem.Id, Is.Not.Null.And.Not.Empty, "The id is null or empty");
     }
 }
コード例 #2
0
ファイル: XmlHelper.cs プロジェクト: tranxuannam/bk_data
        /// <summary>
        /// Parse an XML string to object
        /// </summary>
        /// <typeparam name="T">Support: ReadResponseData, List of WriteItem and ErrorCode</typeparam>
        /// <param name="xmlString">String for parsing</param>
        /// <param name="resourceElementName">Usually name of Resource: Client, Contract...</param>
        /// <exception cref="NotImplementedException">An exception will be thrown in case of unsupported type</exception>
        /// <returns></returns>
        public static T ParseXMLString <T>(string xmlString, string resourceElementName = null) where T : class, new()
        {
            T         result       = null;
            XDocument xmlDoc       = XDocument.Parse(xmlString);
            Type      type         = typeof(T);
            string    resourceName = type.Name;

            if (resourceName.Contains("ReadResponseData"))
            {
                Type[]     elementType = type.GetTypeInfo().GetGenericArguments();
                MethodInfo method      = typeof(XmlHelper).GetTypeInfo().GetMethod("GetResourcesFromXML", BindingFlags.NonPublic | BindingFlags.Static);
                MethodInfo generic     = method.MakeGenericMethod(elementType[0]);
                object[]   parameters  = new object[] { xmlDoc };
                result = (T)generic.Invoke(null, parameters);
            }
            else if (type.GetTypeInfo().IsGenericType&& type.FullName.Contains("List"))
            {
                List <WriteResultItem> resultList = new List <WriteResultItem>();
                XElement root = xmlDoc.Root;
                foreach (XElement item in root.Elements(XML_ITEM))
                {
                    WriteResultItem temp = new WriteResultItem();
                    temp.Code = int.Parse(item.Element(XML_CODE).Value);
                    temp.Id   = item.Element(XML_ID).Value;
                    resultList.Add(temp);
                }
                result = resultList as T;
            }
            else if (resourceName.Contains("ErrorCode"))
            {
                IEnumerable <XElement> codeList = xmlDoc.Descendants(XML_CODE);
                if (codeList == null || codeList.Count() <= 0)
                {
                    Log.Warn("Code element is not found!");
                }
                else
                {
                    ErrorCode temp        = new ErrorCode();
                    XElement  codeElement = codeList.First();
                    temp.Code = int.Parse(codeElement.Value);
                    temp.Type = codeElement.Parent.Name.ToString();
                    result    = temp as T;
                }
            }
            else if (resourceName.Contains("Authentication"))
            {
                Authentication temp = new Authentication();
                //temp.DictionaryValues = new Dictionary<string, object>();

                foreach (XNode prop in xmlDoc.Root.Nodes())
                {
                    if (prop.NodeType == XmlNodeType.Element)
                    {
                        ParseResource <T>((XElement)prop, temp.DictionaryValues);
                    }
                }
                return(temp as T);
            }
            else
            {
                throw new NotImplementedException("Parsing XML method for this type is not implemented!");
            }

            return(result);
        }