コード例 #1
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 (!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());
        }
コード例 #2
0
 protected virtual bool IsBodyEquivalent(RecordEntry record, RecordEntry otherRecord)
 {
     return((record.ResponseBody ?? Array.Empty <byte>()).AsSpan()
            .SequenceEqual((otherRecord.ResponseBody ?? Array.Empty <byte>())));
 }
コード例 #3
0
 public virtual bool IsEquivalentRecord(RecordEntry entry, RecordEntry otherEntry) =>
 IsEquivalentRequest(entry, otherEntry) &&
 IsEquivalentResponse(entry, otherEntry);
コード例 #4
0
 protected virtual bool IsEquivalentRequest(RecordEntry entry, RecordEntry otherEntry) =>
 entry.RequestMethod == otherEntry.RequestMethod &&
 IsEquivalentUri(entry.RequestUri, otherEntry.RequestUri) &&
 CompareHeaderDictionaries(entry.RequestHeaders, otherEntry.RequestHeaders, VolatileHeaders) == 0;
コード例 #5
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))