public void Should_increase_original_premium_by_20_percent_when_driver_is_24() { const double expected = 600.00; const double increaseAmount = 0.2; const int startingYoungAge = 21; const int endingYoungAge = 25; const string driverName = "name"; const string occupation = "occupation"; const string secondDriverName = "name2"; const double premium = 500.00; var todayProvider = new GenericStubProvider <DateTime>(new[] { DateTime.Today, DateTime.Today }); var driverDateOfBirth = DateTime.Now.AddYears(-25); var driversDateOfBirth = DateTime.Now.AddYears(-40); var driverClaims = new IClaim[0]; var secondDriversClaims = new IClaim[0]; var driversAndPremiumToUpdatedPremiumForYoungDrivers = new DriversAndPremiumToUpdatedPremiumForYoungDrivers(startingYoungAge, endingYoungAge, todayProvider, increaseAmount); var firstDriver = new DriverStub(driverName, occupation, driverDateOfBirth, driverClaims); var secondDriver = new DriverStub(secondDriverName, occupation, driversDateOfBirth, secondDriversClaims); var drivers = new [] { firstDriver, secondDriver }; var driversAndPremium = new DriverAndPremium(firstDriver, premium); var actual = driversAndPremiumToUpdatedPremiumForYoungDrivers.Transform(driversAndPremium); Assert.AreEqual(expected, actual); }
public void Should_fail_on_null_parameter_argument() { var nowTimeProvider = new GenericStubProvider <DateTime>(); var rejectionMessageAndSuccessBasedOnOldestDriverTransform = new RejectionMessageAndSuccessBasedOnOldestDriverTransform(75, nowTimeProvider); // ReSharper disable once AssignNullToNotNullAttribute rejectionMessageAndSuccessBasedOnOldestDriverTransform.Transform(null); }
public void Should_return_true_for_success_when_there_are_no_drivers() { var nowTimeProvider = new GenericStubProvider <DateTime>(); var rejectionMessageAndSuccessBasedOnOldestDriverTransform = new RejectionMessageAndSuccessBasedOnOldestDriverTransform(75, nowTimeProvider); var drivers = new IDriver[0]; var actual = rejectionMessageAndSuccessBasedOnOldestDriverTransform.Transform(drivers).Success; Assert.IsTrue(actual); }
public void Should_return_true_for_success_when_today_is_before_than_policy_start_date() { var today = DateTime.Today; var nowTimeProvider = new GenericStubProvider <DateTime>(today); var rejectionMessageAndSuccessBasedOnPolicyStartDateTransform = new RejectionMessageAndSuccessBasedOnPolicyStartDateTransform(nowTimeProvider); var actual = rejectionMessageAndSuccessBasedOnPolicyStartDateTransform.Transform(DateTime.MaxValue).Success; Assert.IsTrue(actual); }
public void Should_fail_on_null_argument() { var todayProvider = new GenericStubProvider <DateTime>(); const double smallerPercentIncrease = 0.1; const double largePercentageIncrease = 0.2; const int smallerTimeSpanInYears = 1; const int largerTimeSpanInYears = 5; var driversAndPremiumToUpdatedPremiumBasedOnDriverClaimsTransform = new DriversAndPremiumToUpdatedPremiumBasedOnDriverClaimsTransform(smallerPercentIncrease, largePercentageIncrease, smallerTimeSpanInYears, largerTimeSpanInYears, todayProvider); // ReSharper disable once AssignNullToNotNullAttribute driversAndPremiumToUpdatedPremiumBasedOnDriverClaimsTransform.Transform(null); }
public void Should_return_original_premium_when_driver_is_younger_than_26() { const double increaseAmount = 0.1; const int startingAdultAge = 26; const int endingAdultAge = 75; const string driverName = "name"; const string occupation = "occupation"; const double expected = 500.00; var todayProvider = new GenericStubProvider <DateTime>(new[] { DateTime.Today, DateTime.Today }); var driverDateOfBirth = DateTime.Now.AddYears(-25); var driverClaims = new IClaim[0]; var driversAndPremiumToUpdatedPremiumForYoungDrivers = new DriversAndPremiumToUpdatedPremiumForAdultDrivers(startingAdultAge, endingAdultAge, todayProvider, increaseAmount); var driver = new DriverStub(driverName, occupation, driverDateOfBirth, driverClaims); var driversAndPremium = new DriverAndPremium(driver, expected); var actual = driversAndPremiumToUpdatedPremiumForYoungDrivers.Transform(driversAndPremium); Assert.AreEqual(expected, actual); }
public void Should_return_true_for_success_when_no_driver_is_older_than_75() { var now = DateTime.Now; var nowTimeProvider = new GenericStubProvider <DateTime>(now); const string drivername = "driverName"; const string occupation = "occupation"; var dateOfBirth70 = DateTime.Now.AddYears(-70); var driverOneClaim = new ClaimStub(DateTime.Now); var firstDriver = new DriverStub(drivername, occupation, dateOfBirth70, new [] { driverOneClaim }); var dateOfBirth74 = DateTime.Now.AddYears(-74); var driver2Claim = new ClaimStub(DateTime.Now); var secondDriver = new DriverStub(drivername, occupation, dateOfBirth74, new [] { driver2Claim }); var rejectionMessageAndSuccessBasedOnOldestDriverTransform = new RejectionMessageAndSuccessBasedOnOldestDriverTransform(75, nowTimeProvider); var drivers = new [] { firstDriver, secondDriver }; var actual = rejectionMessageAndSuccessBasedOnOldestDriverTransform.Transform(drivers).Success; Assert.IsTrue(actual); }
public void Should_return_true_for_success_when_youngestDriver_is_than_21() { const string name = "name"; const string occupation = "occupation"; var today = DateTime.Today; var todayProvider = new GenericStubProvider <DateTime>(today); var dateOfBirth = today.AddYears(-21); var rejectionMessageAndSuccessBasedOnYoungestDriverTransform = new RejectionMessageAndSuccessBasedOnYoungestDriverTransform(21, todayProvider); var firstDriversFirstClaim = new ClaimStub(DateTime.Now); var firstDriversClaims = new [] { firstDriversFirstClaim }; var secondDriversFirstClaim = new ClaimStub(DateTime.Now); var secondDriversClaims = new [] { secondDriversFirstClaim }; var firstDriver = new DriverStub(name, occupation, dateOfBirth, firstDriversClaims); var secondDriver = new DriverStub(name, occupation, dateOfBirth, secondDriversClaims); var drivers = new [] { firstDriver, secondDriver }; var actual = rejectionMessageAndSuccessBasedOnYoungestDriverTransform.Transform(drivers).Success; Assert.IsTrue(actual); }
public void Should_increase_premium_by_smaller_percentage_when_a_claim_has_been_made_more_than_one_year_ago() { const double expected = 550.00; const string name = "name"; const string occupation = "occupation"; const double premium = 500.00; var dateOfBirth = DateTime.Now; var dateOfClaim = DateTime.Today.AddYears(-2); var todayProvider = new GenericStubProvider <DateTime>(DateTime.Today); const double smallerPercentIncrease = 0.1; const double largePercentageIncrease = 0.2; const int smallerTimeSpanInYears = 1; const int largerTimeSpanInYears = 5; var driversAndPremiumToUpdatedPremiumBasedOnDriverClaimsTransform = new DriversAndPremiumToUpdatedPremiumBasedOnDriverClaimsTransform(smallerPercentIncrease, largePercentageIncrease, smallerTimeSpanInYears, largerTimeSpanInYears, todayProvider); var claim = new ClaimStub(dateOfClaim); var driver = new DriverStub(name, occupation, dateOfBirth, new [] { claim }); var driversAndPremium = new DriverAndPremium(driver, premium); var actual = driversAndPremiumToUpdatedPremiumBasedOnDriverClaimsTransform.Transform(driversAndPremium); Assert.AreEqual(expected, actual); }