Esempio n. 1
0
        public void TestAddAtOperation()
        {
            //Arrange
            const string  cardNumber          = "4343";
            const string  cardNumber2         = "12312";
            const decimal withdrawalAmount    = 53735;
            const decimal withdrawalFeeAmount = 343;

            const decimal withdrawalAmount2    = 12312;
            const decimal withdrawalFeeAmount2 = 234;

            //Act
            var result1 = _historyManager.AddAtOperation(cardNumber, withdrawalAmount, withdrawalFeeAmount);
            var result2 = _historyManager.AddAtOperation(cardNumber, withdrawalAmount2, withdrawalFeeAmount2);
            var result3 = _historyManager.AddAtOperation(cardNumber2, 0, 0);

            //Assert
            var historyCard1 = _historyManager.ATOperationHistory[cardNumber];

            Assert.Equal(cardNumber, historyCard1[result1].CardNumber);
            Assert.Equal(withdrawalAmount, historyCard1[result1].Amount);
            Assert.Equal(withdrawalFeeAmount, historyCard1[result1].Fee);
            Assert.False(historyCard1[result1].OperationCompleted);
            Assert.Equal(result1, historyCard1[result1].OperationId);
            Assert.True((DateTime.UtcNow - historyCard1[result1].OperationDate).Milliseconds < 2000);

            Assert.Equal(cardNumber, historyCard1[result2].CardNumber);
            Assert.Equal(withdrawalAmount2, historyCard1[result2].Amount);
            Assert.Equal(withdrawalFeeAmount2, historyCard1[result2].Fee);
            Assert.False(historyCard1[result2].OperationCompleted);
            Assert.Equal(result2, historyCard1[result2].OperationId);
            Assert.True((DateTime.UtcNow - historyCard1[result2].OperationDate).Milliseconds < 2000);

            var historyCard2 = _historyManager.ATOperationHistory[cardNumber2];

            Assert.Equal(cardNumber2, historyCard2[result3].CardNumber);
            Assert.Equal(0, historyCard2[result3].Amount);
            Assert.Equal(0, historyCard2[result3].Fee);
            Assert.False(historyCard2[result3].OperationCompleted);
            Assert.Equal(result3, historyCard2[result3].OperationId);
            Assert.True((DateTime.UtcNow - historyCard2[result3].OperationDate).Milliseconds < 2000);
        }