public async Task Execute_ReturnsLoanInquiry() { var expectedLoanInquiry = TestDataFactory.CreateLoanInquiry(); var fakeLoanService = new FakeLoanService(_ => expectedLoanInquiry); var testRunner = new StatefulLinkTestRunner <GetLoanInquiry, Signal, LoanInquiry>( services => services.AddSingleton <ILoanService>(fakeLoanService) ); var loanInquiry = await testRunner.ExecuteAsync(Signal.Static); Assert.Equal(expectedLoanInquiry, loanInquiry); }
public async Task Execute_CallsLoanService() { var fakeLoanService = new FakeLoanService(); var testRunner = new StatefulLinkTestRunner <ApproveLoan, LoanContract, Signal>( services => services.AddSingleton <ILoanService>(fakeLoanService) ); var loanContract = TestDataFactory.CreateLoanContract(); await testRunner.ExecuteAsync(loanContract); Assert.Contains(loanContract, fakeLoanService.ApprovedLoans); }
public async Task Execute_CallsLoanService() { var fakeLoanService = new FakeLoanService(); var testRunner = new StatefulLinkTestRunner <DenyLoan, LoanApplication, Signal>( services => services.AddSingleton <ILoanService>(fakeLoanService) ); var loanApplication = TestDataFactory.CreateLoanApplication(); await testRunner.ExecuteAsync(loanApplication); Assert.Contains(loanApplication, fakeLoanService.DeniedLoans); }
public async Task Execute_ReturnsLoanApplication() { const int creditScore = 500; var testRunner = new StatefulLinkTestRunner <CreateLoanApplication, LoanInquiry, LoanApplication>( services => services.AddSingleton <ICreditService>(new FakeCreditService(creditScore)) ); var loanInquiry = TestDataFactory.CreateLoanInquiry(); var loanApplication = await testRunner.ExecuteAsync(loanInquiry); Assert.Equal(creditScore, loanApplication.CreditScore); Assert.Equal(loanInquiry.Ssn, loanApplication.Ssn); Assert.Equal(loanInquiry.Name, loanApplication.Name); Assert.Equal(loanInquiry.Amount, loanApplication.Amount); Assert.Equal(loanInquiry.LoanDuration, loanApplication.LoanDuration); }
public async Task Execute_ReturnsLoanContract() { var lowQuote = new LoanQuote("Bank 1", 1); var highQuote = new LoanQuote("Bank 2", 5); var testRunner = new StatefulLinkTestRunner <CreateLoanContract, LoanApplication, LoanContract>( services => services.AddSingleton <IBankService>(new FakeBankService(new[] { lowQuote, highQuote })) ); var loanApplication = TestDataFactory.CreateLoanApplication(); var loanContract = await testRunner.ExecuteAsync(loanApplication); Assert.Equal(lowQuote.BankName, loanContract.BankName); Assert.Equal(lowQuote.InterestRate, loanContract.InterestRate); Assert.Equal(loanApplication.Ssn, loanContract.Ssn); Assert.Equal(loanApplication.Name, loanContract.Name); Assert.Equal(loanApplication.Amount, loanContract.Amount); Assert.Equal(loanApplication.LoanDuration, loanContract.LoanDuration); Assert.Equal(loanApplication.CreditScore, loanContract.CreditScore); }