Skip to content

Instantly share code, notes, and snippets.

@explorer14
Created May 27, 2018 21:04
Show Gist options
  • Save explorer14/1bb40dbb4869628b06bcc0828e93e58f to your computer and use it in GitHub Desktop.
Save explorer14/1bb40dbb4869628b06bcc0828e93e58f to your computer and use it in GitHub Desktop.
[Fact]
public async void Given_One_or_More_Loan_Requests_Each_Is_Enriched_With_Credit_Score_Info()
{
IReadOnlyCollection<LoanRequest> mockLoanRequests = MockData();
ICreditCheckFilter creditCheckFilter = new CreditCheckFilter(
new MockHttpMessageHandlerFactory());
List<EnrichedLoanRequest> loanRequestsWithCreditReport =
new List<EnrichedLoanRequest>();
foreach (var mockLoanRequest in mockLoanRequests)
{
loanRequestsWithCreditReport.Add(await creditCheckFilter
.PerformCreditCheck(mockLoanRequest));
}
Assert.True(loanRequestsWithCreditReport.Any());
Assert.True(
loanRequestsWithCreditReport.Count(x => x.CreditCheckReport != null) ==
loanRequestsWithCreditReport.Count);
}
private IReadOnlyCollection<LoanRequest> MockData()
{
return new[]
{
new LoanRequest
{
CitizenServiceNumber = "12345",
RequestedLoanAmount = 1000.0m
},
new LoanRequest
{
CitizenServiceNumber = "12346",
RequestedLoanAmount = 2000.0m
}
};
}
public class MockHttpMessageHandler
: HttpMessageHandler
{
protected override async Task<HttpResponseMessage> SendAsync(
HttpRequestMessage request,
CancellationToken cancellationToken)
{
HttpResponseMessage httpResponseMessage =
new HttpResponseMessage();
httpResponseMessage.Content =
MockContent(request.Content);
httpResponseMessage.StatusCode = HttpStatusCode.OK;
return await Task.FromResult(httpResponseMessage);
}
private HttpContent MockContent(HttpContent content)
{
string mockJsonContent = "{\"BSN\":\"12345\", \"CreditRating\":\"A\", " +
"\"Score\":\"9\", \"Status\":\"Good credit\"}";
return new StringContent(
mockJsonContent,
Encoding.UTF8,
"application/json");
}
}
public class MockHttpMessageHandlerFactory
: IHttpMessageHandlerFactory
{
public Uri BaseUri =>
new Uri("http://localhost:1111");
public HttpMessageHandler Create() =>
new MockHttpMessageHandler();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment