Ejemplo n.º 1
0
        private bool ZTryParseHeaderFieldNames(string pText, out cHeaderFieldNames rNames)
        {
            if (pText == null)
            {
                rNames = null; return(true);
            }

            List <string> lNames = new List <string>();

            foreach (var lName in pText.Trim().Split(' ', ':'))
            {
                if (!string.IsNullOrWhiteSpace(lName))
                {
                    lNames.Add(lName);
                }
            }

            if (lNames.Count == 0)
            {
                rNames = null; return(true);
            }

            try { rNames = new cHeaderFieldNames(lNames); }
            catch { rNames = null; return(false); }

            return(true);
        }
Ejemplo n.º 2
0
        private string ZHeaderFieldNames(cHeaderFieldNames pNames)
        {
            if (pNames == null)
            {
                return(string.Empty);
            }

            StringBuilder lBuilder = new StringBuilder();
            bool          lFirst   = true;

            foreach (var lName in pNames)
            {
                if (lFirst)
                {
                    lFirst = false;
                }
                else
                {
                    lBuilder.Append(" ");
                }
                lBuilder.Append(lName);
            }

            return(lBuilder.ToString());
        }
Ejemplo n.º 3
0
        internal static void _Tests(cTrace.cContext pParentContext)
        {
            var lContext = pParentContext.NewMethod(nameof(cHeaderFieldNameList), nameof(_Tests));

            cHeaderFieldNameList lNames1;
            cHeaderFieldNameList lNames2;
            cHeaderFieldNameList lNames3;
            cHeaderFieldNameList lNames4;

            if (!TryConstruct(new string[] { }, out lNames1) || lNames1.Count != 0)
            {
                throw new cTestsException($"{nameof(cHeaderFieldNames)}.1.1");
            }
            if (!TryConstruct(new string[] { "fred", "angus" }, out lNames1) || !TryConstruct(new string[] { "AnGuS", "ANGUS", "FrEd" }, out lNames2) || !lNames1.Contains(lNames2) || !lNames2.Contains(lNames1))
            {
                throw new cTestsException($"{nameof(cHeaderFieldNames)}.1.2");
            }
            if (!TryConstruct(new string[] { "fred", "charlie" }, out lNames3) || !TryConstruct(new string[] { "CHARLie", "mAx" }, out lNames4) || lNames3.Contains(lNames4) || lNames4.Contains(lNames3))
            {
                throw new cTestsException($"{nameof(cHeaderFieldNames)}.1.3");
            }
            if (lNames2.Contains("max") || !lNames2.Contains("FREd") || !lNames4.Contains("max") || lNames4.Contains("FREd"))
            {
                throw new cTestsException($"{nameof(cHeaderFieldNames)}.1.4");
            }

            lNames2 = new cHeaderFieldNameList(lNames1);
            lNames2.Add("fReD");

            if ((cHeaderFieldNames)lNames1 != lNames2)
            {
                throw new cTestsException($"{nameof(cHeaderFieldNames)}.1.5");
            }

            lNames2.Add("charlie");
            if (lNames2.Count != 3 || !lNames2.Contains("Fred") || !lNames2.Contains("ANgUS") || !lNames2.Contains("CHArLIE"))
            {
                throw new cTestsException($"{nameof(cHeaderFieldNames)}.1.6");
            }

            var lNames5 = lNames1.Union(lNames3);

            if ((cHeaderFieldNames)lNames5 != lNames2)
            {
                throw new cTestsException($"{nameof(cHeaderFieldNames)}.1.7");
            }

            lNames2 = lNames1.Intersect(lNames3);
            if (lNames2.Count != 1 || !lNames2.Contains("fReD"))
            {
                throw new cTestsException($"{nameof(cHeaderFieldNames)}.1.8");
            }

            lNames2 = lNames5.Except(lNames4);
            if (lNames2.Count != 2 || (cHeaderFieldNames)lNames2 != lNames1)
            {
                throw new cTestsException($"{nameof(cHeaderFieldNames)}.1.9");
            }

            bool lFailed = false;

            try { cHeaderFieldNames lF = new cHeaderFieldNames("dd ff"); }
            catch { lFailed = true; }
            if (!lFailed)
            {
                throw new cTestsException($"{nameof(cHeaderFieldNames)}.1.13");
            }

            lFailed = false;
            try { cHeaderFieldNames lF = new cHeaderFieldNames("dd:ff"); }
            catch { lFailed = true; }
            if (!lFailed)
            {
                throw new cTestsException($"{nameof(cHeaderFieldNames)}.1.14");
            }
        }