Example #1
0
        public void AddFee_WhenAmountIsNotPositiveNumber_ShouldReturnNull()
        {
            // Arrange
            var fee     = new Fee("Free", DateTime.Now, 100M);
            var feeType = new DiscountedFee(_merchantDiscounts);

            // Act
            var result = feeType.AddFee(fee);

            // Assert
            Assert.Null(result);
        }
Example #2
0
        public void AddFee_WhenMerchantIsEligibleDiscount_ShouldApplyDiscount(string merchantName, float expectedAmount)
        {
            // Arrange
            var fee     = new Fee(merchantName, DateTime.Now, 1M);
            var feeType = new DiscountedFee(_merchantDiscounts);

            // Act
            var result = feeType.AddFee(fee);

            // Assert
            Assert.NotNull(result);
            Assert.Equal((decimal)expectedAmount, result.Amount);
        }
Example #3
0
        public void AddFee__WhenMerchantIsNotEligibleDiscount_ShouldNotChangeFeeAmount()
        {
            // Arrange
            var expectedAmount = 100M;
            var fee            = new Fee("XYZ", DateTime.Now, expectedAmount);
            var feeType        = new DiscountedFee(_merchantDiscounts);

            // Act
            var result = feeType.AddFee(fee);

            // Assert
            Assert.NotNull(result);
            Assert.Equal(expectedAmount, result.Amount);
        }