Exemplo n.º 1
0
 public static SalesServiceTax CalculateSalesServiceTax(SalesServiceTaxRate taxRate, TaxableFees fees) =>
 new SalesServiceTax
 {
     Brokerage   = taxRate.Brokerage * fees.Brokerage,
     ClearingFee = taxRate.ClearingFee * fees.ClearingFee,
     StampDuty   = taxRate.StampDuty * fees.StampDuty
 };
Exemplo n.º 2
0
 public Calculator(BrokerageFeeRate brokerageFeeRate, ClearingFeeRate clearingFeeRate,
                   StampDutyRate stampDutyRate, SalesServiceTaxRate taxRate)
 {
     this.brokerageFeeRate = brokerageFeeRate;
     this.clearingFeeRate  = clearingFeeRate;
     this.stampDutyRate    = stampDutyRate;
     this.taxRate          = taxRate;
 }
Exemplo n.º 3
0
        [InlineData(105.14, 4.51, 16, 6.31)] // based on 15,020 purchase value
        public void CalculateStampDuty_returns_expexted_result(decimal brokerageFee, decimal clearingFee, decimal stampDuty, decimal expectedResult)
        {
            var rate = new SalesServiceTaxRate(Percent(6), Percent(0), Percent(0));

            var result = ToTotal(CalculateSalesServiceTax(rate, brokerageFee, clearingFee, stampDuty));


            result.Should().BeApproximately(expectedResult, 0.01m);
        }
Exemplo n.º 4
0
        public void Calculate_returns_expected_result(BrokerageFeeRate brokerageFeeRate,
                                                      ClearingFeeRate clearingFeeRate,
                                                      StampDutyRate stampDutyRate, SalesServiceTaxRate salesServiceTaxRate)
        {
            var sut = new Calculator(brokerageFeeRate, clearingFeeRate, stampDutyRate, salesServiceTaxRate);

            var result = sut.Calculate(1, Lot(1), 1.5m);

            result.Profit.Should().Be(50);
        }
Exemplo n.º 5
0
 public static SalesServiceTax CalculateSalesServiceTax(SalesServiceTaxRate taxRate, in decimal brokerageFee,
Exemplo n.º 6
0
 public static Fee Fee(BrokerageFeeRate brokerageFeeRate, ClearingFeeRate clearingFeeRate, StampDutyRate stampDutyRate,
                       SalesServiceTaxRate salesServiceTaxRate) =>
 new Fee(brokerageFeeRate, clearingFeeRate, stampDutyRate, salesServiceTaxRate);