public void TestCalculateAdditionalFirstDayFeeShouldReturnCorrectValue()
        {
            var calculator = new TransactionFeeCalculatorCircleKChild();

            var transactionObject = new TransactionObject()
            {
                TransactionDate = new DateTime(2018, 4, 1), MerchantName = "Circle_K", TransactionAmount = 0
            };

            var result = calculator.CalculateAdditionalFirstDayFee(transactionObject);

            result.ShouldBe(0.00m);

            transactionObject = new TransactionObject()
            {
                TransactionDate = new DateTime(2018, 4, 1), MerchantName = "Circle_K", TransactionAmount = 200
            };

            result = calculator.CalculateAdditionalFirstDayFee(transactionObject);
            result.ShouldBe(0.00m);

            transactionObject = new TransactionObject()
            {
                TransactionDate = new DateTime(2018, 9, 1), MerchantName = "Circle_K", TransactionAmount = 200
            };

            result = calculator.CalculateAdditionalFirstDayFee(transactionObject);
            result.ShouldBe(29.00m);

            result = calculator.CalculateAdditionalFirstDayFee(transactionObject);
            result.ShouldBe(0.00m);
        }
        public void TestCalculateTransactionFeeShouldReturnCorrectValue()
        {
            var transactionObject = new TransactionObject()
            {
                TransactionDate = new DateTime(2018, 1, 1), MerchantName = "Circle_K", TransactionAmount = 200
            };
            var calculator = new TransactionFeeCalculatorCircleKChild();

            var result = calculator.CalculateTransactionFee(null);

            result.ShouldBe(0.00m);

            result = calculator.CalculateTransactionFee(transactionObject);
            result.ShouldBe(1.60m);

            transactionObject.TransactionAmount = 1999;
            result = calculator.CalculateTransactionFee(transactionObject);
            result.ShouldBe(15.99m);
        }