Example #1
0
        public void Charge_NoUserStories_FeeIsZero()
        {
            _userStoryFactoryMock.Setup(x => x.CreateList())
            .Returns(new List <IUserStoryMobilePay>());

            var transaction = new Transaction {
                Date = new DateTime(2019, 07, 13), MerchantName = "TELIA", Amount = 13.45m
            };

            _sut = new TransactionCharger(_userStoryFactoryMock.Object);
            _sut.Charge(transaction);

            transaction.Fee.BasicFee.Should().Be(0);
            transaction.Fee.AdditionalFee.Should().Be(0);
            transaction.Fee.Amount.Should().Be(0);

            _userStoryFactoryMock.Verify(x => x.CreateList(), Times.Once);
        }
Example #2
0
        public void Charge_TwoUserStories_FeeIsCounted()
        {
            _userStoryFactoryMock.Setup(x => x.CreateList())
            .Returns(new List <IUserStoryMobilePay> {
                new UserStoryMobilePay2(), new UserStoryMobilePay4()
            });

            var transaction = new Transaction {
                Date = new DateTime(2019, 07, 13), MerchantName = "CIRCLE_K", Amount = 20m
            };

            _sut = new TransactionCharger(_userStoryFactoryMock.Object);
            _sut.Charge(transaction);

            transaction.Fee.BasicFee.Should().Be(0.16m);
            transaction.Fee.AdditionalFee.Should().Be(0);
            transaction.Fee.Amount.Should().Be(0.16m);

            _userStoryFactoryMock.Verify(x => x.CreateList(), Times.Once);
        }
Example #3
0
 public TransactionSelector(ITransactionReader transactionReader, ITransactionFeeWriter transactionFeeWriter, ITransactionCharger transactionCharger)
 {
     _transactionReader    = transactionReader;
     _transactionFeeWriter = transactionFeeWriter;
     _transactionCharger   = transactionCharger;
 }