public void CalculatePremiumForInitialAndAdditionalSetOfRisks() { var additionalinsurancePeriod = new InsurancePeriod(DateTime.Now.AddMonths(6), 6); var additionalRisk = new Risk { Name = fixture.Create <string>(), YearlyPrice = 50 }; var riskInsuredPeriod = new RiskInsurancePeriod(additionalinsurancePeriod, additionalRisk); var insurancePeriod = new InsurancePeriod(DateTime.Now, 12); var insuredRisks = new List <Risk> { new Risk { Name = fixture.Create <string>(), YearlyPrice = 40m }, new Risk { Name = fixture.Create <string>(), YearlyPrice = 36m } }; var initialRiskSet = new InitialRiskSet(insuredRisks, insurancePeriod, riskInsuredPeriod); var premium = initialRiskSet.CalculatePremium(); Assert.Equal(101m, premium); }
public void ThrowIfinsurancePeriodIsNull() { InsurancePeriod insurancePeriod = null; var insuredRisks = fixture.CreateMany <Risk>().ToList(); Assert.Throws <ArgumentNullException>(() => new InitialRiskSet(insuredRisks, insurancePeriod)); }
public void ThrowIfInsurancePeriodIsNull() { InsurancePeriod nullInsurancePeriod = null; Risk risk = fixture.Create <Risk>(); Assert.Throws <ArgumentNullException>(() => new RiskInsurancePeriod(nullInsurancePeriod, risk)); }
public void ThrowIfInsuredRisksAreEmpty() { var insurancePeriod = new InsurancePeriod(DateTime.Now, fixture.Create <short>()); var insuredRisks = new List <Risk>(); Assert.Throws <MissingInitialInsuredRisksException>(() => new InitialRiskSet(insuredRisks, insurancePeriod)); }
public void SetPremiumMonthsToOneIfPeriodIsTooShort() { var currentDate = DateTime.Now; var validFromDate = new DateTime(currentDate.Year + 1, 01, 01); var validTill = validFromDate.AddDays(1); var shortInsurancePeriod = new InsurancePeriod(validFromDate, validTill); Assert.Equal(1, shortInsurancePeriod.PremiumMonths); }
public void CalculatePremiumMonthsValue() { short validMonths = 3; var validFromDate = DateTime.Now; var validTill = DateTime.Now.AddMonths(validMonths); var insurancePeriod = new InsurancePeriod(validFromDate, validMonths); Assert.Equal(validMonths, insurancePeriod.PremiumMonths); }
public void PropagateRiskName() { var validFrom = DateTime.Now; var validTill = DateTime.Now.AddDays(1); var insurancePeriod = new InsurancePeriod(validFrom, validTill); var risk = fixture.Create <Risk>(); var riskInsurancePeriod = new RiskInsurancePeriod(insurancePeriod, risk); Assert.Equal(risk.Name, riskInsurancePeriod.RiskName); }
public void CalculatePremiumForEachValidMonth() { var validFrom = DateTime.Now; var validTill = DateTime.Now.AddMonths(2); var insurancePeriod = new InsurancePeriod(validFrom, validTill); var risk = new Risk { Name = fixture.Create <string>(), YearlyPrice = 120 }; var riskInsurancePeriod = new RiskInsurancePeriod(insurancePeriod, risk); var premium = riskInsurancePeriod.CalculatePremium(); Assert.Equal(20, premium); }
public void CalculatePremiumForInitialSetOfRisks() { var insurancePeriod = new InsurancePeriod(DateTime.Now, 12); var insuredRisks = new List <Risk> { new Risk { Name = fixture.Create <string>(), YearlyPrice = 40m }, new Risk { Name = fixture.Create <string>(), YearlyPrice = 36m } }; var initialRiskSet = new InitialRiskSet(insuredRisks, insurancePeriod); var premium = initialRiskSet.CalculatePremium(); Assert.Equal(76m, premium); }
public InsuranceType GetPolis(InsuranceNameType type, InsurancePeriod period) { return(_dbSet.SingleOrDefault(x => x.InsuranceNameType == type && x.InsurancePeriod == period)); }
public InsuranceType GetPeriod(InsurancePeriod period) { return(_dbSet.SingleOrDefault(x => x.InsurancePeriod == period)); }
public static bool OverlapsWith(this IPolicy policy, InsurancePeriod period) { return(policy.ValidFrom <= period.Till && period.From <= policy.ValidTill); }