public void CalculateMerchantFee_ForMerchantWithoutDiscountTransaction_ShouldNotApplyDiscount( string merchantName, decimal fee, decimal expected) { // Arrange var transaction = new Transaction { MerchantName = merchantName, Fee = fee }; var transactionFeeService = new TestTransactionFeeService(); var sut = new ConcretePercentageDiscountDecorator(transactionFeeService); // Act sut.CalculateTransactionFee(transaction); var actual = transaction.Fee; // Assert actual.Should().Be(expected); }
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); }