示例#1
0
        public void TestSetComplete()
        {
            // Arrange
            const string  cardNumber = "132123";
            const decimal amount     = 65354;
            const decimal fee        = 3434;

            var operationId    = Guid.NewGuid();
            var operationDate  = new DateTime(2018, 05, 17, 13, 05, 57);
            var completionDate = new DateTime(2018, 05, 17, 13, 05, 59);

            var atmOperation = new AtmOperation(
                cardNumber,
                operationId,
                amount,
                fee,
                operationDate);

            // Act
            atmOperation.SetComplete(completionDate);

            // Assert
            Assert.True(atmOperation.OperationCompleted);
            Assert.Equal(completionDate, atmOperation.OperationDate);
            Assert.Equal(cardNumber, atmOperation.CardNumber);
            Assert.Equal(amount, atmOperation.Amount);
            Assert.Equal(fee, atmOperation.Fee);
            Assert.Equal(operationId, atmOperation.OperationId);
        }
示例#2
0
        public void TestWithdrawFromBlocked()
        {
            // Arrange
            const string  cardNumber = "5372100906627713";
            const int     amount     = 100;
            const decimal fee        = 1M;

            var operationDate = new DateTime(2018, 09, 12);

            var operationId = Guid.NewGuid();

            var operation = new AtmOperation(cardNumber, operationId, amount, fee, operationDate);

            _historyManager.GetOperation(cardNumber, operationId).Returns(operation);

            var initialBalance  = _hostProcessorServiceMock.GetCardBalance(cardNumber);
            var expectedBalance = initialBalance - amount - fee;

            _hostProcessorServiceMock.BlockAmount(cardNumber, amount);

            // Act

            _hostProcessorServiceMock.WithdrawFromBlocked(cardNumber, operationId);

            // Assert
            Received.InOrder(() =>
            {
                _historyManager.GetOperation(Arg.Is(cardNumber), Arg.Is(operationId));
                _historyManager.CompleteOperation(Arg.Is(cardNumber), Arg.Is(operationId));
            });

            var resultBalance = _hostProcessorServiceMock.GetCardBalance(cardNumber);

            Assert.Equal(expectedBalance, resultBalance);
        }