public static FlowContext MockIdentityCheck(this FlowContext flowContext, IdentityCheckResult identityCheckResult) { flowContext.MockActivity <CheckIdentity, CheckIdentity.Response>( req => new CheckIdentity.Response { IdentityCheckResult = identityCheckResult }); return(flowContext); }
public async void Can_check_identity(string applicantName, IdentityCheckResult expectedResult) { // Arrange var loanApplication = new LoanApplication { ApplicantName = applicantName }; var sut = new IdentityService(); // Act var actualResult = await sut.CheckIdentity(loanApplication); // Assert Assert.Equal(expectedResult, actualResult); }
public async void Application_is_referred( bool isEligible, AffordabilityRating affordabilityRating, IdentityCheckResult identityCheckResult) { // Arrange var loanApplication = BuildLoanApplication(); var actualTemplateNames = new List <string>(); var isLoanReferredEventRaised = new bool?[1]; var flowContext = new FlowContext() .MockCheckEligibility(isEligible) .MockCheckAffordability(affordabilityRating) .MockIdentityCheck(identityCheckResult) .MockSendEmail(actualTemplateNames) .MockCreateLoanDecision() .MockRaiseLoanDecisionReferredEvent(isLoanReferredEventRaised); var request = new MakeLoanApplicationDecision { FlowContext = flowContext, LoanApplication = loanApplication }; // Act var(mediator, logger) = GetMediator(request); var response = await mediator.Send(request); logger.LogDebug($"Trace: {response.Trace}"); // Assert Assert.NotNull(response.LoanDecision); Assert.Equal(LoanDecisionResult.Refer, response.LoanDecision.Result); Assert.True(isLoanReferredEventRaised[0]); Assert.Single(actualTemplateNames); Assert.Contains("ReferNotification", actualTemplateNames); }