• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

loresoft / FluentRest / 8851497268

26 Apr 2024 04:40PM UTC coverage: 57.33% (+5.1%) from 52.206%
8851497268

push

github

pwelter34
Update Issue.cs

270 of 604 branches covered (44.7%)

Branch coverage included in aggregate %.

825 of 1306 relevant lines covered (63.17%)

69.17 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

65.22
/src/FluentRest.Fake/FakeMessageHandler.cs
1
using System;
2
using System.Net.Http;
3
using System.Threading;
4
using System.Threading.Tasks;
5

6
namespace FluentRest.Fake;
7

8
/// <summary>
9
/// A fake HTTP handler to save and load responses for testing.
10
/// </summary>
11
public class FakeMessageHandler : DelegatingHandler
12
{
13
    /// <summary>
14
    /// Initializes a new instance of the <see cref="FakeMessageHandler"/> class.
15
    /// </summary>
16
    public FakeMessageHandler()
17
        : this(MemoryMessageStore.Current, FakeResponseMode.Fake)
×
18
    {
19

20
    }
×
21

22
    /// <summary>
23
    /// Initializes a new instance of the <see cref="FakeMessageHandler"/> with the specified fake message store.
24
    /// </summary>
25
    /// <param name="messageStore">The fake message store.</param>
26
    public FakeMessageHandler(IFakeMessageStore messageStore)
27
        : this(messageStore, FakeResponseMode.Fake)
×
28
    {
29
    }
×
30

31
    /// <summary>
32
    /// Initializes a new instance of the <see cref="FakeMessageHandler"/> with the specified fake message store.
33
    /// </summary>
34
    /// <param name="messageStore">The fake message store.</param>
35
    /// <param name="mode">The fake response mode.</param>
36
    public FakeMessageHandler(IFakeMessageStore messageStore, FakeResponseMode mode)
18✔
37
    {
38
        Mode = mode;
18✔
39
        MessageStore = messageStore;
18✔
40
    }
18✔
41

42
    /// <summary>
43
    /// Gets or sets the fake response mode.
44
    /// </summary>
45
    /// <value>
46
    /// The fake response mode.
47
    /// </value>
48
    public FakeResponseMode Mode { get; set; }
72✔
49

50
    /// <summary>
51
    /// Gets or sets the fake message store.
52
    /// </summary>
53
    /// <value>
54
    /// The fake message store.
55
    /// </value>
56
    public IFakeMessageStore MessageStore { get; set; }
36✔
57

58

59
    /// <summary>
60
    /// Sends an HTTP <paramref name="request"/> with a cancellation token as an asynchronous operation
61
    /// </summary>
62
    /// <param name="request">The HTTP request message to send.</param>
63
    /// <param name="cancellationToken">A cancellation token that can be used by other objects or threads to receive notice of cancellation.</param>
64
    /// <returns>The task object representing the asynchronous operation.</returns>
65
    protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
66
    {
67
        var response = Mode == FakeResponseMode.Capture || Mode == FakeResponseMode.Normal
18!
68
            ? await base.SendAsync(request, cancellationToken).ConfigureAwait(false)
18✔
69
            : await MessageStore.LoadAsync(request).ConfigureAwait(false);
18✔
70

71
        if (Mode == FakeResponseMode.Capture)
18!
72
            await MessageStore.SaveAsync(request, response).ConfigureAwait(false);
×
73

74
        return response;
18✔
75
    }
18✔
76
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc