private bool CheckRequest(ExtractedParams p) { bool success = false; CurrentTest = "Request Validation"; string localErrors = ""; StringParser parser = new StringParser(); var request = parser.CreateHttpRequest(p.RawCurl); Task <bool> t = TestRequest(request); t.Wait(); success = t.Result; errors += localErrors; if (!success) { foreach (var item in p.Data) { Console.WriteLine(item); } //Console.WriteLine(JsonConvert.SerializeObject(p.Data)); } else { } return(success); }
private bool CheckHeaders(ExtractedParams p) { CurrentTest = "Header Validation"; string localErrors = ""; var data = expected.Where(x => x.Trim().IndexOf("HEADER") == 0).Select(x => x.Substring(x.IndexOf(":") + 1).Trim()).ToList(); int matches = p.Headers.Select(x => x.ToString()).Intersect(data).ToList().Count(); if (matches != p.Headers.Count) { localErrors += $"{matches} header sections found out of expected {data.Count}\r\n"; } errors += localErrors; return(localErrors.Length == 0); }
private bool CheckURL(ExtractedParams p) { CurrentTest = "URL Validation"; string localErrors = ""; string chkURL = p.URL ?? ""; if (string.IsNullOrEmpty(chkURL)) { localErrors += "No URL Was retrieved\r\n"; return(false); } if (p.URL.IndexOf("http") != 0) { localErrors += $"Invalid Url ({p.URL})\r\n"; } errors += localErrors; return(localErrors.Length == 0); }
private bool CheckMethod(ExtractedParams p) { CurrentTest = "Http Method Validation"; string allowed = "POST_GET_PUT_PATCH_DELETE_"; string localErrors = ""; string chkmethod = p.Method ?? "NONE"; if (string.IsNullOrEmpty(chkmethod)) { localErrors += "No Method Was retrieved\r\n"; } if (allowed.IndexOf(chkmethod) == -1) { localErrors += "Not a valid http request method verb\r\n"; } //Console.WriteLine(JsonConvert.SerializeObject(p)); errors += localErrors; return(localErrors.Length == 0); }
public void runChecks(ExtractedParams p, string fileName, string results) { var checklist = new List <Func <ExtractedParams, bool> >(); checklist.Add(CheckURL); checklist.Add(CheckMethod); checklist.Add(CheckData); checklist.Add(CheckHeaders); checklist.Add(CheckRequest); expected = new List <string>(results.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries)); foreach (var check in checklist) { string CaseFile = Path.GetFileName(fileName); if (CaseFile != CurrentCase) { Console.WriteLine(CaseFile); } CurrentCase = CaseFile; if (!check(p)) { Console.WriteLine($"Failed: {CurrentTest}"); } else { Console.WriteLine($"Passed: {CurrentTest}"); } } if (errors.Length > 0) { Console.WriteLine("Errors:"); } Console.WriteLine(errors); errors = ""; }