public void TestCalculateTotalTransactionFeeShouldReturnCorrectValue()
        {
            var calculator = TransactionFeeCalculator.Instance();

            var transactionObject = new TransactionObject()
            {
                TransactionDate = new DateTime(2018, 2, 1), MerchantName = "SEVEN-S", TransactionAmount = 0
            };

            var result = calculator.CalculateTotalTransactionFee(transactionObject);

            result.ShouldBe(0.00m);

            transactionObject = new TransactionObject()
            {
                TransactionDate = new DateTime(2018, 3, 1), MerchantName = "SEVEN-S", TransactionAmount = 200
            };

            result = calculator.CalculateTotalTransactionFee(transactionObject);
            result.ShouldBe(31.00m);

            transactionObject = new TransactionObject()
            {
                TransactionDate = new DateTime(2018, 3, 1), MerchantName = "SEVEN-S", TransactionAmount = 200
            };

            result = calculator.CalculateTotalTransactionFee(transactionObject);
            result.ShouldBe(2.00m);
        }
        public void TestCalculateTotalTransactionFeeShouldReturnCorrectValue()
        {
            var calculator = TransactionFeeCalculator.Instance <TransactionFeeCalculatorCircleK>();

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

            var result = calculator.CalculateTotalTransactionFee(transactionObject);

            result.ShouldBe(0.00m);

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

            result = calculator.CalculateTotalTransactionFee(transactionObject);
            result.ShouldBe(30.60m);

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

            result = calculator.CalculateTotalTransactionFee(transactionObject);
            result.ShouldBe(1.60m);
        }