public void InsuranceCompany_ShouldBeAbleToRemoveRiskFromExistingPolicy()
        {
            List <Risk> riskList = new List <Risk>();

            riskList.Add(Risk1);
            riskList.Add(Risk2);

            var effectiveDate    = DateTime.Now;
            var newValidTillDate = effectiveDate.AddMonths(1);

            Company.SellPolicy(DEFAULT_OBJECT_NAME, effectiveDate, 6, riskList);
            Company.RemoveRisk(DEFAULT_OBJECT_NAME, Risk2, newValidTillDate, effectiveDate);

            var riskId = IdGenerator.ConstructRiskId(Risk2.Name, DEFAULT_OBJECT_NAME, effectiveDate);

            var updatedRisk = RiskRepository.Get(riskId);

            Assert.AreEqual(newValidTillDate, updatedRisk.ValidTill);
        }
        public void PremiumCalculator_ShouldCalculatePremiumForSoldPolicyWithRiskRemoved()
        {
            List <Risk> riskList = new List <Risk>();

            riskList.Add(Risk1);
            riskList.Add(Risk2);

            var effectiveDate = DateTime.Now;

            var soldPolicy = Company.SellPolicy(DEFAULT_OBJECT_NAME, effectiveDate, 6, riskList);

            var policyID = IdGenerator.ConstructPolicyId(DEFAULT_OBJECT_NAME, effectiveDate);

            Company.RemoveRisk(DEFAULT_OBJECT_NAME, Risk2, effectiveDate.AddDays(10), effectiveDate);

            var premium = PremiumCalculator.CalculatePremiumOfSoldPolicy(DEFAULT_OBJECT_NAME, effectiveDate);

            Assert.AreEqual(272.61m, premium);
        }
Beispiel #3
0
        public void CanRemoveARiskForLessThanOneYear()
        {
            var risks = GetMockRisks();

            InsuranceCompany.AvailableRisks = risks;

            InsuranceCompany.SellPolicy("obj1", new DateTime(2018, 11, 5), 13, risks.Take(2).ToList());
            InsuranceCompany.RemoveRisk("obj1", risks.Take(1).First(), new DateTime(2019, 2, 2));

            var policy = InsuranceCompany.GetPolicy("obj1", new DateTime(2018, 11, 5));

            Assert.That(policy.InsuredRisks.Count, Is.EqualTo(2));
            Assert.That(policy.NameOfInsuredObject, Is.EqualTo("obj1"));
            Assert.That(policy.Premium, Is.EqualTo(5));
            Assert.That(policy.ValidFrom, Is.EqualTo(new DateTime(2018, 11, 5)));
            Assert.That(policy.ValidTill, Is.EqualTo(new DateTime(2019, 12, 5)));
        }
        public void RemoveRisk_NameOfInsuredObjectNull_ThrowsException()
        {
            Action result = () => _target.RemoveRisk(null, new Risk(), DateTime.Now, DateTime.Now);

            Assert.ThrowsException <ArgumentNullException>(result);
        }
Beispiel #5
0
 public void RemoveRisk_ShouldThrowIfValidTillDateIsInPast()
 {
     Assert.That(() => Company.RemoveRisk(It.IsAny <string>(), It.IsAny <Risk>(), DateTime.Now.AddDays(-2),
                                          It.IsAny <DateTime>()), Throws.Exception);
 }