示例#1
0
 public void Initialize()
 {
     _quote = QuoteModel.Create(null);
     _quote.SetLoanProviders(
         new List <LoanProvider> {
         new LoanProvider {
             Lender = "Bob", Rate = 0.075D, Available = 640
         },
         new LoanProvider {
             Lender = "Jane", Rate = 0.069D, Available = 480
         },
         new LoanProvider {
             Lender = "Fred", Rate = 0.071D, Available = 520
         },
         new LoanProvider {
             Lender = "Mary", Rate = 0.104D, Available = 170
         },
         new LoanProvider {
             Lender = "John", Rate = 0.081D, Available = 320
         },
         new LoanProvider {
             Lender = "Dave", Rate = 0.074D, Available = 140
         },
         new LoanProvider {
             Lender = "Angela", Rate = 0.071D, Available = 60
         },
     }
         );
 }
示例#2
0
        public void It_is_invalid_if_the_second_parameter_is_not_a_number()
        {
            _quote = QuoteModel.Create(new string[] { "file.csv", "a" });

            Execute();

            _quote.ValidationResult.ErrorMessage.ShouldEqual(InputHandler.INVALID_LOAN_AMOUNT);
            _quote.ValidationResult.IsValid.ShouldBeFalse();
            SuccessorIsNotCalled();
        }
示例#3
0
        public void It_is_invalid_if_second_param_is_smaller_than_minimum_loan()
        {
            _quote = QuoteModel.Create(new string[] { "file.csv", (_minimumLoan - 1).ToString() });

            Execute();

            _quote.ValidationResult.ErrorMessage.ShouldEqual(InputHandler.INVALID_LOAN_AMOUNT);
            _quote.ValidationResult.IsValid.ShouldBeFalse();
            SuccessorIsNotCalled();
        }
示例#4
0
        public void It_is_invalid_if_the_first_parameter_is_csv_file_name()
        {
            _quote = QuoteModel.Create(new string[] { "1", "2" });

            Execute();

            _quote.ValidationResult.ErrorMessage.ShouldEqual(InputHandler.INVALID_CSV);
            _quote.ValidationResult.IsValid.ShouldBeFalse();
            SuccessorIsNotCalled();
        }
示例#5
0
        public void Then_if_more_than_2_arguments_are_in_the_quote_is_set_as_invalid()
        {
            _quote = QuoteModel.Create(new string[] { "file.csv", "1000", "Hello" });

            Execute();

            _quote.ValidationResult.IsValid.ShouldBeFalse();
            _quote.ValidationResult.ErrorMessage.ShouldEqual(InputHandler.INVALID_PARAMETERS);
            SuccessorIsNotCalled();
        }
示例#6
0
        public void It_is_invalid_if_loan_amount_is_not_multiple()
        {
            _quote = QuoteModel.Create(new string[] { "file.csv", (_minimumLoan + 1 + _multiplesOf).ToString() });

            Execute();

            _quote.ValidationResult.ErrorMessage.ShouldEqual(InputHandler.INVALID_LOAN_AMOUNT);
            _quote.ValidationResult.IsValid.ShouldBeFalse();
            SuccessorIsNotCalled();
        }
示例#7
0
        public QuoteModel Process(string[] args)
        {
            _inputHandler.SetSuccessor(_loanProviderReaderHandler);
            _loanProviderReaderHandler.SetSuccessor(_rateFinderHandler);
            _rateFinderHandler.SetSuccessor(_quoteCalculatorHandler);

            var quote = QuoteModel.Create(args);

            _inputHandler.HandleRequest(quote);

            return(quote);
        }
示例#8
0
        public void It_is_valid_successor_is_called()
        {
            var amount = _minimumLoan + _multiplesOf;

            _quote = QuoteModel.Create(new string[] { "file.csv", (amount).ToString() });

            Execute();

            _successor.Verify(h =>
                              h.HandleRequest(It.Is <QuoteModel>(v => v == _quote)),
                              Times.Once);
        }
示例#9
0
        public void It_is_valid_if_the_params_are_correct()
        {
            var amount = _minimumLoan + _multiplesOf;

            _quote = QuoteModel.Create(new string[] { "file.csv", (amount).ToString() });

            Execute();

            _quote.ValidationResult.IsValid.ShouldBeTrue();
            _quote.InputModel.FileName.ShouldEqual("file.csv");
            _quote.InputModel.LoanAmount.ShouldEqual(amount);
        }
示例#10
0
 public void Init()
 {
     _quote = QuoteModel.Create(null);
     _quote.InputModel.SetFileName("file.csv");
 }
示例#11
0
 public void Init()
 {
     _quote = QuoteModel.Create(null);
 }
示例#12
0
 public void Init()
 {
     _quote = QuoteModel.Create(null);
     _quote.SetQuote(Quote.Create(1000, 0.07D, 4444.77777, 33.55556));
 }