public void CanExtendCoverageWithMiddleDayOfPolicy() { var product = ProductsTestData.StandardCarInsurance(); var policy = PolicyTestData.StandardOneYearPolicy(new DateTime(2019, 1, 1)); var newCover = product.Covers.WithCode("AC"); policy.ExtendCoverage ( new DateTime(2019, 7, 1), new CoverPrice(Guid.NewGuid(), newCover, Money.Euro(100), TimeSpan.FromDays(365)) ); Equal(2, policy.Versions.Count()); Equal(Money.Euro(500), policy.Versions.WithNumber(1).TotalPremium); Equal(PolicyVersionStatus.Active, policy.Versions.WithNumber(1).VersionStatus); Equal(Money.Euro(550.41), policy.Versions.WithNumber(2).TotalPremium); Equal(PolicyVersionStatus.Draft, policy.Versions.WithNumber(2).VersionStatus); Equal(PolicyVersionStatus.Draft, policy.Versions.WithNumber(2).VersionStatus); }
public static Offer StandardOneYearOCOfferValidUntil(DateTime validityEnd) { var product = ProductsTestData.StandardCarInsurance(); return(new Offer ( Guid.NewGuid(), "1", product, PersonsTestData.Kowalski(), PersonsTestData.Kowalski(), CarsTestData.OldFordFocus(), TimeSpan.FromDays(365), Money.Euro(500), validityEnd.AddDays(-30), new Dictionary <Cover, Money>() { { product.Covers.WithCode("OC"), Money.Euro(500) } } )); }