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); }
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()); }
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"); } }