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); }
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); }
public void RemoveRisk_ShouldThrowIfValidTillDateIsInPast() { Assert.That(() => Company.RemoveRisk(It.IsAny <string>(), It.IsAny <Risk>(), DateTime.Now.AddDays(-2), It.IsAny <DateTime>()), Throws.Exception); }