public void Eligibility_check_returns_value(bool verifierResult) { // Arrange var loanDecision = new LoanDecision(); var request = new CheckEligibility { LoanApplication = new LoanApplication(), LoanDecision = loanDecision, }; var mockEligibilityVerifier = new Mock <IEligibilityVerifier>(MockBehavior.Strict); mockEligibilityVerifier.Setup(m => m.IsEligible(It.IsNotNull <LoanApplication>())).Returns(verifierResult); var eligibilityCheck = new CheckEligibilityHandler(mockEligibilityVerifier.Object); // Act var response = eligibilityCheck.Handle(request); // Assert Assert.Equal(verifierResult, response.IsEligible); Assert.Equal(verifierResult, loanDecision.IsEligible); }
/// <summary> /// Creates a table containing all the AchievementObject's items /// Should be called using DataBind.Eval() function in the .aspx file /// Also implements the user's data if given /// </summary> /// <param name="achievements">List of achievements that will be converted to a table</param> protected void CreateAchievementsTable(List <AchievementObject> achievements) { achievementsTable = new DataTable(); achievementsTable.Columns.AddRange(new DataColumn[7] { new DataColumn("AchName", typeof(string)), new DataColumn("AchMembers", typeof(string)), new DataColumn("AchDescription", typeof(string)), new DataColumn("AchQuestReq", typeof(List <AQuestReq>)), new DataColumn("AchSkillReq", typeof(List <ASkillReq>)), new DataColumn("AchRunescore", typeof(int)), new DataColumn("AchEligible", typeof(bool)) }); User currentUser = (User)ViewState["User"]; if (currentUser != null) { achievements = CheckEligibility.Eligibility(currentUser, achievements); } foreach (var achievement in achievements) { string name = achievement.AName; string description = achievement.ADescription; int runescore = achievement.ARunescore; string members = achievement.AMembers; string eligible = achievement.AEligible.ToString(); var questReqs = achievement.AQuestReqs; var skillReqs = achievement.ASkillReqs; if (questReqs == null) { System.Diagnostics.Debug.Write("questReqs is null"); } achievementsTable.Rows.Add(name, members, description, questReqs, skillReqs, runescore, eligible); } ViewState.Add("AchievementsTable", achievementsTable); }
protected override void ConfigureDefinition(FlowDefinition <MakeLoanApplicationDecision, MakeLoanApplicationDecision.Response> flowDefinition) { flowDefinition .Do("InitialiseNewDecision", InitialiseNewLoanDecision.NewDefinition()) // ------------------------------------------------------------------------------------------------ .Do("CheckEligibility", CheckEligibility.NewDefinition()) .Check("IsEligible", FlowValueDecision <bool?> .NewDefinition() .BindInput(rq => rq.SwitchValue, nameof(CheckEligibility.Response.IsEligible))) .When(false).Goto("SetResultToDecline") .When(true).Goto("CheckAffordability") .Else().Unhandled() // ------------------------------------------------------------------------------------------------ .Do("CheckAffordability", CheckAffordability.NewDefinition()) .Check("AffordabilityRating", FlowValueDecision <AffordabilityRating?> .NewDefinition() .BindInput(rq => rq.SwitchValue, nameof(CheckAffordability.Response.AffordabilityRating))) .When(AffordabilityRating.Fair).Goto("SetResultToRefer") .When(AffordabilityRating.Poor).Goto("SetResultToDecline") .When(AffordabilityRating.Good).Goto("CheckIdentity") .Else().Unhandled() // ------------------------------------------------------------------------------------------------ .Do("CheckIdentity", CheckIdentity.NewDefinition()) .Check("IdentityCheckResult", FlowValueDecision <IdentityCheckResult?> .NewDefinition() .BindInput(rq => rq.SwitchValue, nameof(CheckIdentity.Response.IdentityCheckResult))) .When(IdentityCheckResult.ServiceUnavailable).Goto("SetResultToRefer") .When(IdentityCheckResult.IdentityNotFound).Goto("SetResultToDecline") .When(IdentityCheckResult.IdentityFound).Goto("SetResultToAccept") .Else().Unhandled() // ------------------------------------------------------------------------------------------------ .Do("SetResultToAccept", SetLoanDecisionResult.NewDefinition() .SetValue(rq => rq.Result, LoanDecisionResult.Accept)) .Goto("SaveDecision") .Do("SetResultToRefer", SetLoanDecisionResult.NewDefinition() .SetValue(rq => rq.Result, LoanDecisionResult.Refer)) .Goto("SaveDecision") .Do("SetResultToDecline", SetLoanDecisionResult.NewDefinition() .SetValue(rq => rq.Result, LoanDecisionResult.Decline)) .Goto("SaveDecision") // ------------------------------------------------------------------------------------------------ .Do("SaveDecision", CreateLoanDecision.NewDefinition()) .Check("LoanDecisionResult", FlowValueDecision <LoanDecisionResult?> .NewDefinition() .BindInput(rq => rq.SwitchValue, nameof(SetLoanDecisionResult.Response.Result))) .When(LoanDecisionResult.Decline).Goto("PostDeclineActions") .When(LoanDecisionResult.Refer).Goto("PostReferActions") .When(LoanDecisionResult.Accept).Goto("PostAcceptActions") .Else().Unhandled() // ------------------------------------------------------------------------------------------------ .Label("PostAcceptActions") .Do("SendAcceptConfirmationEmail", SendEmail.NewDefinition() .SetValue(rq => rq.TemplateName, "AcceptConfirmation") .BindInput(rq => rq.EmailAddress, nameof(MakeLoanApplicationDecision.LoanApplication), (LoanApplication la) => la.EmailAddress) .BindInputs(rq => rq.DataObjects, nameof(MakeLoanApplicationDecision.LoanApplication), nameof(InitialiseNewLoanDecision.Response.LoanDecision)) .BindInput(rq => rq.ParentId, nameof(InitialiseNewLoanDecision.Response.LoanDecision), (LoanDecision ld) => ld.Id)) .End() // ------------------------------------------------------------------------------------------------ .Label("PostReferActions") .Do("SendReferNotificationEmail", SendEmail.NewDefinition() .SetValue(rq => rq.TemplateName, "ReferNotification") .BindInput(rq => rq.EmailAddress, nameof(MakeLoanApplicationDecision.LoanApplication), (LoanApplication la) => la.EmailAddress) .BindInputs(rq => rq.DataObjects, nameof(MakeLoanApplicationDecision.LoanApplication), nameof(InitialiseNewLoanDecision.Response.LoanDecision)) .BindInput(rq => rq.ParentId, nameof(InitialiseNewLoanDecision.Response.LoanDecision), (LoanDecision ld) => ld.Id)) .Do("RaiseLoanReferredEvent", RaiseLoanDecisionReferredEvent.NewDefinition()) .End() // ------------------------------------------------------------------------------------------------ .Label("PostDeclineActions") .Do("SendDeclineConfirmationEmail", SendEmail.NewDefinition() .SetValue(rq => rq.TemplateName, "DeclineConfirmation") .BindInput(rq => rq.EmailAddress, nameof(MakeLoanApplicationDecision.LoanApplication), (LoanApplication la) => la.EmailAddress) .BindInputs(rq => rq.DataObjects, nameof(MakeLoanApplicationDecision.LoanApplication), nameof(InitialiseNewLoanDecision.Response.LoanDecision)) .BindInput(rq => rq.ParentId, nameof(InitialiseNewLoanDecision.Response.LoanDecision), (LoanDecision ld) => ld.Id)) .End(); }