コード例 #1
0
        protected override Task<HttpResponseMessage> SendAsync(
            HttpRequestMessage request,
            CancellationToken cancellationToken)
        {
            if (Mode == HttpRecorderMode.Playback)
            {
                // Will throw KeyNotFoundException if the request is not recorded
                return TaskEx.FromResult(Records[matcher.GetMatchingKey(request)].Dequeue().GetResponse());
            }
            else
            {
                return base.SendAsync(request, cancellationToken).ContinueWith<HttpResponseMessage>(response =>
                {
                    HttpResponseMessage result = response.Result;
                    if (Mode == HttpRecorderMode.Record)
                    {
                        RecordEntry recordEntry = new RecordEntry(result);
                        Records.Enqueue(new RecordEntry(result));
                        sessionRecords.Add(recordEntry);
                    }

                    return result;
                });
            }
        }
コード例 #2
0
 public string GetMatchingKey(RecordEntry recordEntry)
 {
     return GetMatchingKey(recordEntry.RequestMethod, recordEntry.RequestUri.ToString());
 }
コード例 #3
0
 public void InjectRecordEntry(RecordEntry record)
 {
     if (Mode == HttpRecorderMode.Playback)
     {
         Records.Enqueue(record);
     }
 }