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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #9
0
        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);
        }