Esempio n. 1
0
        public void given_quote_domain_object_should_map_to_calculatequotedbmodel_correctly()
        {
            // setup
            var givenQuoteFormModel = new QuoteFormModel
            {
                AmountRequired = 5000,
                Term           = 10,
                Title          = "Mr",
                FirstName      = "ShiChang",
                LastName       = "Hou",
                Mobile         = "0434386289",
                Email          = "*****@*****.**"
            };
            var quoteDomain = new QuoteForTest(givenQuoteFormModel, _mockQuoteSetting.Object);

            // act
            var result = quoteDomain.ToDbEntity();

            // assert
            Assert.Equal(quoteDomain.AmountRequired, result.FinancialAmount);
            Assert.Equal("ShiChang Hou", result.Name);
            Assert.Equal(givenQuoteFormModel.Title, result.Title);
            Assert.Equal(givenQuoteFormModel.Mobile, result.Mobile);
            Assert.Equal(givenQuoteFormModel.Email, result.Email);
            Assert.Equal(200, result.Repayments);
        }
Esempio n. 2
0
        public void given_quoteformmodel_should_map_to_quote_domain_object_correctly()
        {
            // setup
            var givenQuoteFormModel = new QuoteFormModel
            {
                AmountRequired = 5000,
                Term           = 10,
                Title          = "Mr",
                FirstName      = "ShiChang",
                LastName       = "Hou",
                Mobile         = "0434386289",
                Email          = "*****@*****.**"
            };

            // act
            var result = new Quote(givenQuoteFormModel, _mockQuoteSetting.Object);

            // assert
            Assert.Equal(givenQuoteFormModel.AmountRequired, result.AmountRequired);
            Assert.Equal(givenQuoteFormModel.Term, result.Term);
            Assert.Equal(givenQuoteFormModel.Title, result.Title);
            Assert.Equal(givenQuoteFormModel.FirstName, result.FirstName);
            Assert.Equal(givenQuoteFormModel.LastName, result.LastName);
            Assert.Equal(givenQuoteFormModel.Mobile, result.Mobile);
            Assert.Equal(givenQuoteFormModel.Email, result.Email);
        }
Esempio n. 3
0
        public IActionResult Quote(QuoteFormModel model)
        {
            model.MinTerm           = _quoteSetting.Value.MinTerm;
            model.MaxTerm           = _quoteSetting.Value.MaxTerm;
            model.MinAmountRequired = _quoteSetting.Value.MinAmountRequired;
            model.MaxAmountRequired = _quoteSetting.Value.MaxAmountRequired;

            return(View(model));
        }
Esempio n. 4
0
        public void given_less_than_min_financial_amount_should_get_invalid_quote_domain_object()
        {
            // setup
            var givenQuoteFormModel = new QuoteFormModel
            {
                AmountRequired = 1900,
                Term           = 10,
                Title          = "Mr",
                FirstName      = "ShiChang",
                LastName       = "Hou",
                Mobile         = "0434386289",
                Email          = "*****@*****.**"
            };

            // act
            var result = new Quote(givenQuoteFormModel, _mockQuoteSetting.Object);

            // assert
            Assert.False(result.IsValid);
        }
Esempio n. 5
0
        public void given_no_email_should_get_invalid_quote_domain_object()
        {
            // setup
            var givenQuoteFormModel = new QuoteFormModel
            {
                AmountRequired = 15001,
                Term           = 30,
                Title          = "Mr",
                FirstName      = "ShiChang",
                LastName       = "Hou",
                Mobile         = "0434386289",
                Email          = null
            };

            // act
            var result = new Quote(givenQuoteFormModel, _mockQuoteSetting.Object);

            // assert
            Assert.False(result.IsValid);
        }
Esempio n. 6
0
        public async Task <IActionResult> CalculateQuote(QuoteFormModel quoteFormModel)
        {
            var quoteDomain = new Quote(quoteFormModel, _quoteSetting);

            if (!quoteDomain.IsValid)
            {
                return(Error());
            }

            var calculateQuoteViewModel = new CalculateQuoteViewModel(quoteDomain);

            try
            {
                await _quoteService.AddQuote(quoteDomain);
            }
            catch (Exception ex)
            {
                return(Error());
            }

            return(View(calculateQuoteViewModel));
        }
Esempio n. 7
0
        public void given_quote_calling_calculate_quote_should_save_quote_to_database()
        {
            // setup
            var givenQuoteFormModel = new QuoteFormModel {
                AmountRequired = 8000,
                Term           = 30,
                Title          = "Mr",
                FirstName      = "bumble",
                LastName       = "bee",
                Mobile         = "0838386289",
                Email          = "*****@*****.**"
            };

            // act
            _homeController.CalculateQuote(givenQuoteFormModel);

            // assert
            var result = _repository.GetQuoteBy(1);

            Assert.Equal(givenQuoteFormModel.AmountRequired, result.FinancialAmount);
            Assert.Equal(givenQuoteFormModel.Title, result.Title);
            Assert.Equal(givenQuoteFormModel.Mobile, result.Mobile);
            Assert.Equal($@"{givenQuoteFormModel.FirstName} {givenQuoteFormModel.LastName}", result.Name);
        }
Esempio n. 8
0
        public void given_quote_domain_object_should_save_it_to_database()
        {
            // setup
            var givenQuoteFormModel = new QuoteFormModel
            {
                AmountRequired = 15001,
                Term           = 35,
                Title          = "Mr",
                FirstName      = "ShiChang",
                LastName       = "Hou",
                Mobile         = "0434386289",
                Email          = "*****@*****.**"
            };
            var givenQuoteDomainObject = new Quote(givenQuoteFormModel, new Mock <IOptions <QuoteSetting> >().Object);
            var givenDbEntity          = givenQuoteDomainObject.ToDbEntity();

            _mockQuoteRespository.Setup(q => q.SaveQuote(It.IsAny <CalculateQuoteDbModel>())).Verifiable();

            // act
            _quoteService.AddQuote(givenQuoteDomainObject);

            // assert
            _mockQuoteRespository.Verify(q => q.SaveQuote(It.IsAny <CalculateQuoteDbModel>()), Times.Once);
        }
Esempio n. 9
0
 public QuoteForTest(QuoteFormModel quoteFormModel, IOptions <QuoteSetting> quoteSetting) : base(quoteFormModel, quoteSetting)
 {
 }