private string GenerateException(RequestMethod requestMethod, string uri, SortedDictionary <string, string[]> headers, RecordEntry bestScoreEntry) { StringBuilder builder = new StringBuilder(); builder.AppendLine($"Unable to find a record for the request {requestMethod} {uri}"); if (bestScoreEntry == null) { builder.AppendLine("No records to match."); return(builder.ToString()); } if (requestMethod != bestScoreEntry.RequestMethod) { builder.AppendLine($"Method doesn't match, request <{requestMethod}> record <{bestScoreEntry.RequestMethod}>"); } if (!AreUrisSame(uri, bestScoreEntry.RequestUri)) { builder.AppendLine("Uri doesn't match:"); builder.AppendLine($" request <{uri}>"); builder.AppendLine($" record <{bestScoreEntry.RequestUri}>"); } builder.AppendLine("Header differences:"); CompareHeaderDictionaries(headers, bestScoreEntry.RequestHeaders, ExcludeHeaders, builder); return(builder.ToString()); }
protected virtual bool IsBodyEquivalent(RecordEntry record, RecordEntry otherRecord) { return((record.ResponseBody ?? Array.Empty <byte>()).AsSpan() .SequenceEqual((otherRecord.ResponseBody ?? Array.Empty <byte>()))); }
public virtual bool IsEquivalentRecord(RecordEntry entry, RecordEntry otherEntry) => IsEquivalentRequest(entry, otherEntry) && IsEquivalentResponse(entry, otherEntry);
protected virtual bool IsEquivalentRequest(RecordEntry entry, RecordEntry otherEntry) => entry.RequestMethod == otherEntry.RequestMethod && IsEquivalentUri(entry.RequestUri, otherEntry.RequestUri) && CompareHeaderDictionaries(entry.RequestHeaders, otherEntry.RequestHeaders, VolatileHeaders) == 0;
private string GenerateException(RequestMethod requestMethod, string uri, SortedDictionary <string, string[]> headers, RecordEntry bestScoreEntry) { StringBuilder builder = new StringBuilder(); builder.AppendLine($"Unable to find a record for the request {requestMethod} {uri}"); if (bestScoreEntry == null) { builder.AppendLine("No records to match."); return(builder.ToString()); } if (requestMethod != bestScoreEntry.RequestMethod) { builder.AppendLine($"Method doesn't match, request <{requestMethod}> record <{bestScoreEntry.RequestMethod}>"); } if (uri != bestScoreEntry.RequestUri) { builder.AppendLine("Uri doesn't match:"); builder.AppendLine($" request <{uri}>"); builder.AppendLine($" record <{bestScoreEntry.RequestUri}>"); } builder.AppendLine("Header differences:"); var entryHeaders = new SortedDictionary <string, string[]>(bestScoreEntry.RequestHeaders, bestScoreEntry.RequestHeaders.Comparer); foreach (KeyValuePair <string, string[]> header in headers) { if (entryHeaders.TryGetValue(header.Key, out string[] values))