public DealthPreimumModel CalculateMonthlyDeathPremium(InsuredInput insuredInput) { var factor = _deathPremiumRepository.GetFactor(insuredInput.Occupation); var monthlyPremium = insuredInput.DeathSumInsured * factor * insuredInput.Age / (1000 * 12); return(new DealthPreimumModel { MonthlyDeathPremium = Math.Round(monthlyPremium, 2) }); }
public ActionResult <DealthPreimumModel> CalculateMonthlyDeathPremium(InsuredInput insured) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var result = _deathPremiumService.CalculateMonthlyDeathPremium(insured); return(Ok(result)); }
private InsuredInput InvalidInputwithInsuredSumEqualThan10B() { var insuredInput = new InsuredInput { Name = "Nick", Age = 30, DeathSumInsured = 10000000000, Occupation = "Doctor", DateOfBirth = DateTime.Now.Date.AddYears(-30) }; return(insuredInput); }
private InsuredInput InvalidInputwithAgeGreaterThan150() { var insuredInput = new InsuredInput { Name = "Nick", Age = 1234, DeathSumInsured = 12344, Occupation = "Doctor", DateOfBirth = DateTime.Now.Date.AddYears(-30) }; return(insuredInput); }
public void GivenServiceCalcMonthlyDeathPremiumReturnValidResult() { var insuredInput = new InsuredInput { Age = 30, DeathSumInsured = 10000, DateOfBirth = DateTime.Now.Date.AddYears(-30), Name = "Nick", Occupation = "Doctor" }; _proxy.GetFactor(insuredInput.Occupation).Returns(0.1M); var service = new DeathPremiumService(_proxy); var expectedValue = Math.Round(insuredInput.DeathSumInsured * 0.1M * insuredInput.Age / (1000 * 12), 2); var actualValue = service.CalculateMonthlyDeathPremium(insuredInput); actualValue.MonthlyDeathPremium.Should().Be(expectedValue); }