public void CalculateMerchantFee_ForNonTeliaTransaction_ShouldNotApplyDiscount( string merchantName, decimal fee, decimal expected) { // Arrange var transaction = new Transaction { MerchantName = merchantName, Fee = fee }; var transactionFeeService = new TestTransactionFeeService(); var sut = new TeliaPercentageDiscountDecorator(transactionFeeService); // Act sut.CalculateTransactionFee(transaction); var actual = transaction.Fee; // Assert actual.Should().Be(expected); }
public void CalculateFees() { var transactionRepository = new TxtTransactionRepository(); BaseTransactionFeeService transactionFeeService = new TransactionPercentageFeeService(); transactionFeeService = new TeliaPercentageDiscountDecorator(transactionFeeService); transactionFeeService = new CircleKPercentageDiscountDecorator(transactionFeeService); BaseInvoiceFeeService invoiceFeeService = new InvoiceFixedFeeService(); invoiceFeeService = new FirstMonthlyInvoiceFeeRuleDecorator(invoiceFeeService); invoiceFeeService = new FreeInvoiceFeeRuleDecorator(invoiceFeeService); var merchantFeeCalculatorService = new MerchantFeeCalculatorService(transactionRepository, transactionFeeService, invoiceFeeService); merchantFeeCalculatorService.CalculateFees(); }