Beispiel #1
0
        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);
        }