/// <summary>
        /// Initializes a new instance of the <see cref="PriceCalculatorFactoryImpl" /> class.
        /// </summary>
        /// <param name="membership">The membership.</param>
        /// <param name="totalsFactory">The totals factory.</param>
        public PriceCalculatorFactoryImpl([NotNull] CustomerMembership membership, [NotNull] TotalsFactory totalsFactory)
        {
            Assert.ArgumentNotNull(membership, "membership");
            Assert.ArgumentNotNull(totalsFactory, "totalsFactory");

            this.membership    = membership;
            this.totalsFactory = totalsFactory;
        }
    /// <summary>
    /// Initializes a new instance of the <see cref="DefaultPriceCalculator" /> class.
    /// </summary>
    /// <param name="priceKey">The price key for all the payment operations.</param>
    /// <param name="totalsFactory">The totals factory.</param>
    public DefaultPriceCalculator([NotNull] string priceKey, [NotNull] TotalsFactory totalsFactory)
    {
      Assert.ArgumentNotNullOrEmpty(priceKey, "priceKey");
      Assert.ArgumentNotNull(totalsFactory, "totalsFactory");

      this.totalsFactory = totalsFactory;
      this.PriceKey = priceKey;
    }
    /// <summary>
    /// Initializes a new instance of the <see cref="PriceCalculatorFactoryImpl" /> class.
    /// </summary>
    /// <param name="membership">The membership.</param>
    /// <param name="totalsFactory">The totals factory.</param>
    public PriceCalculatorFactoryImpl([NotNull]CustomerMembership membership, [NotNull] TotalsFactory totalsFactory)
    {
      Assert.ArgumentNotNull(membership, "membership");
      Assert.ArgumentNotNull(totalsFactory, "totalsFactory");

      this.membership = membership;
      this.totalsFactory = totalsFactory;
    }
        /// <summary>
        /// Initializes a new instance of the <see cref="DefaultPriceCalculator" /> class.
        /// </summary>
        /// <param name="priceKey">The price key for all the payment operations.</param>
        /// <param name="totalsFactory">The totals factory.</param>
        public DefaultPriceCalculator([NotNull] string priceKey, [NotNull] TotalsFactory totalsFactory)
        {
            Assert.ArgumentNotNullOrEmpty(priceKey, "priceKey");
            Assert.ArgumentNotNull(totalsFactory, "totalsFactory");

            this.totalsFactory = totalsFactory;
            this.PriceKey      = priceKey;
        }