示例#1
0
        public async Task IsValidCardCombinationAsync_ShouldThrowArgNullEx()
        {
            // Arrange
            var terminalService = new TerminalService(GetCardRepoMock().Object, null, null);

            // Act
            Func <Task> action = async() => await terminalService.IsValidCardCombinationAsync(null, 1);

            // Assert
            Exception ex = await Assert.ThrowsAsync <ArgumentNullException>(action);
        }
示例#2
0
        public async Task IsValidCardCombinationAsync_ShouldReturnFalse()
        {
            // Arrange
            var card            = SampleData.CREDITCARDS.First(x => !x.IsValid);
            int cardId          = card.Id;
            int cardPin         = card.Pin;
            var terminalService = new TerminalService(GetCardRepoMock().Object, null, null);

            // Act
            var result = await terminalService.IsValidCardCombinationAsync(cardId, cardPin);

            // Assert
            Assert.False(result);
        }
示例#3
0
        public async Task <IActionResult> Pin(int pin)
        {
            int  cardId  = _sessionManager.GetSessionCardId(HttpContext).Value;
            bool isValid = await _terminalService.IsValidCardCombinationAsync(cardId, pin);

            if (isValid)
            {
                _sessionManager.Authorize(HttpContext);
                return(RedirectToAction(nameof(Menu)));
            }
            else
            {
                throw new InvalidOperationException("No valid card found with this number-pin combination");
            }
        }
示例#4
0
        public async Task IsValidCardCombinationAsync_ShouldReturnFalseAndLog()
        {
            // Arrange
            var card       = SampleData.CREDITCARDS.First(x => !x.IsValid);
            int cardId     = card.Id;
            int cardPin    = card.Pin;
            var loggerMock = new Mock <ILogger <TerminalService> >();
            //loggerMock.Verify(p => p.LogInformation(It.IsAny<string>(), It.IsAny<Exception>()), Times.Once); // not supported ?
            var terminalService = new TerminalService(GetCardRepoMock().Object, null, loggerMock.Object);

            // Act
            var result = await terminalService.IsValidCardCombinationAsync(cardId, cardPin);

            // Assert
            Assert.False(result);
        }