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; }
public void Constructor_Throws_If_DateTimeProvider_Is_Null() { _mutablePriceConfiguration = null; // Act, Assert Assert.Throws <ArgumentNullException>(() => new InvoiceDtoQueryHandler(_cartEquipment, _loyaltyPointsProvider, _mapPriceCalculatorLogic, _mutablePriceConfiguration)); }
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); }
public decimal Calculate(int days, IMutablePriceConfiguration prices) { return(prices.OneTimeRentalFee + prices.PremiumDailyFee * days); }
public decimal Calculate(int days, IMutablePriceConfiguration prices) { return(Math.Min(3, days) * prices.PremiumDailyFee + (days > 3 ? (days - 3) * prices.RegularDailyFee : 0)); }