public void Should_fail_on_null_parameter_argument()
        {
            var driversAndPremiumToUpdatedPremiumForAdultDrivers = new GenericStubTransform <DriverAndPremium, double>();
            var driversAndPremiumToUpdatedPremiumForYoungDrivers = new GenericStubTransform <DriverAndPremium, double>();

            var driversAndPremiumToUpdatedPremiumBasedOnAgeTransform = new DriversAndPremiumToUpdatedPremiumBasedOnAgeTransform(driversAndPremiumToUpdatedPremiumForYoungDrivers, driversAndPremiumToUpdatedPremiumForAdultDrivers);

            // ReSharper disable once AssignNullToNotNullAttribute
            driversAndPremiumToUpdatedPremiumBasedOnAgeTransform.Transform(null);
        }
        public void Should_return_result_of_premium_after_adult_calculation()
        {
            const string name        = "name";
            const string occupation  = "occupation";
            const double expected    = 660.00;
            const double premium     = 500.00;
            var          claims      = new IClaim[0];
            var          dateOfBirth = DateTime.Now;
            var          driversAndPremiumToUpdatedPremiumForAdultDrivers     = new GenericStubTransform <DriverAndPremium, double>(expected);
            var          driversAndPremiumToUpdatedPremiumForYoungDrivers     = new GenericStubTransform <DriverAndPremium, double>(expected);
            var          driversAndPremiumToUpdatedPremiumBasedOnAgeTransform = new DriversAndPremiumToUpdatedPremiumBasedOnAgeTransform(driversAndPremiumToUpdatedPremiumForYoungDrivers, driversAndPremiumToUpdatedPremiumForAdultDrivers);
            var          driver = new DriverStub(name, occupation, dateOfBirth, claims);

            var actual = driversAndPremiumToUpdatedPremiumBasedOnAgeTransform.Transform(new DriverAndPremium(driver, premium));

            Assert.AreEqual(expected, actual);
        }