コード例 #1
0
        public static FlowContext MockIdentityCheck(this FlowContext flowContext, IdentityCheckResult identityCheckResult)
        {
            flowContext.MockActivity <CheckIdentity, CheckIdentity.Response>(
                req => new CheckIdentity.Response {
                IdentityCheckResult = identityCheckResult
            });

            return(flowContext);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }