コード例 #1
0
        public InvoiceDtoQueryHandler(
            IRepository <CartEquipment> cartEquipments,
            ILoyaltyPointsProvider loyaltyPointsProvider,
            IMapper <EquipmentType, IRentalCostStrategy> mapPriceCalculatorLogic,
            IMutablePriceConfiguration mutablePriceConfiguration)
        {
            if (cartEquipments == null)
            {
                throw new ArgumentNullException(nameof(cartEquipments));
            }
            if (loyaltyPointsProvider == null)
            {
                throw new ArgumentNullException(nameof(loyaltyPointsProvider));
            }
            if (mapPriceCalculatorLogic == null)
            {
                throw new ArgumentNullException(nameof(mapPriceCalculatorLogic));
            }
            if (mutablePriceConfiguration == null)
            {
                throw new ArgumentNullException(nameof(mutablePriceConfiguration));
            }

            _cartEquipments            = cartEquipments;
            _loyaltyPointsProvider     = loyaltyPointsProvider;
            _mapPriceCalculatorLogic   = mapPriceCalculatorLogic;
            _mutablePriceConfiguration = mutablePriceConfiguration;
        }
コード例 #2
0
        public void Constructor_Throws_If_DateTimeProvider_Is_Null()
        {
            _mutablePriceConfiguration = null;

            // Act, Assert
            Assert.Throws <ArgumentNullException>(() =>
                                                  new InvoiceDtoQueryHandler(_cartEquipment, _loyaltyPointsProvider, _mapPriceCalculatorLogic,
                                                                             _mutablePriceConfiguration));
        }
コード例 #3
0
        public void Init()
        {
            _cartEquipment             = Mock.Of <IRepository <CartEquipment> >();
            _loyaltyPointsProvider     = Mock.Of <ILoyaltyPointsProvider>();
            _mapPriceCalculatorLogic   = Mock.Of <IMapper <EquipmentType, IRentalCostStrategy> >();
            _mutablePriceConfiguration = Mock.Of <IMutablePriceConfiguration>();

            _invoiceDtoQueryHandler = new InvoiceDtoQueryHandler(_cartEquipment, _loyaltyPointsProvider,
                                                                 _mapPriceCalculatorLogic, _mutablePriceConfiguration);
        }
コード例 #4
0
 public decimal Calculate(int days, IMutablePriceConfiguration prices)
 {
     return(prices.OneTimeRentalFee + prices.PremiumDailyFee * days);
 }
コード例 #5
0
 public decimal Calculate(int days, IMutablePriceConfiguration prices)
 {
     return(Math.Min(3, days) * prices.PremiumDailyFee + (days > 3 ? (days - 3) * prices.RegularDailyFee : 0));
 }