Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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));
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 9
0
        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));
 }
Exemplo n.º 12
0
 public static bool OverlapsWith(this IPolicy policy, InsurancePeriod period)
 {
     return(policy.ValidFrom <= period.Till && period.From <= policy.ValidTill);
 }