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(); }
public void CalculateFeesTest_WithTransactionsFile_ShouldWriteExpectedConsoleOutput() { // Arrange using StreamReader expectedOutput = new StreamReader("Expected.Result.txt"); var expected = expectedOutput.ReadToEnd(); using StringWriter actualOutput = new StringWriter(); Console.SetOut(actualOutput); var transactionRepository = GetMockedTransactionRepository(); BaseTransactionFeeService transactionFeeService = new TestTransactionFeeService(); BaseInvoiceFeeService invoiceFeeService = new TestInvoiceFeeService(); var sut = new MerchantFeeCalculatorService(transactionRepository, transactionFeeService, invoiceFeeService); // Act sut.CalculateFees(); var actual = actualOutput.ToString(); // Assert expected.Should().Be(actual); }