Created
May 27, 2018 21:04
-
-
Save explorer14/1bb40dbb4869628b06bcc0828e93e58f to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[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