コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }