public async Task PostAccountAsyncThrowsBadRequestException() { var mockLogger = new Mock <ILogger <AccountController> >(); AccountRequest accountRequest = GetNewMockAccountBadRequest(); AccountResponse accountResponse = GetNewAccountResponse(); var accountRepository = new Mock <IAccountRepository>(); var userFinanceStatus = new UserFinanceStatus(); userFinanceStatus.CanCreateAccount = false; userFinanceStatus.ErrorMessage = "test"; accountRepository.Setup(u => u.GetUserFinanceStatusAsync(It.IsAny <int>())).Returns(Task.FromResult(userFinanceStatus)); var accountController = new AccountController(mockLogger.Object, accountRepository.Object); var controller = await accountController.PostAccountAsync(accountRequest); var result = Assert.IsType <BadRequestObjectResult>(controller.Result); Assert.Equal(400, result.StatusCode); }
public async Task PostAccountAsyncReturnsAccountResponse() { var mockLogger = new Mock <ILogger <AccountController> >(); AccountRequest accountRequest = GetNewMockAccount(); AccountResponse accountResponse = GetNewAccountResponse(); var userFinanceStatus = new UserFinanceStatus(); userFinanceStatus.CanCreateAccount = true; userFinanceStatus.ErrorMessage = string.Empty; var accountRepository = new Mock <IAccountRepository>(); accountRepository.Setup(u => u.GetUserFinanceStatusAsync(It.IsAny <int>())).Returns(Task.FromResult(userFinanceStatus)); var accountController = new AccountController(mockLogger.Object, accountRepository.Object); var controller = await accountController.PostAccountAsync(accountRequest); var result = Assert.IsType <CreatedAtActionResult>(controller.Result); Assert.Equal(201, result.StatusCode); }
public async Task <UserFinanceStatus> GetUserFinanceStatusAsync(int userId) { var userEntity = await _zipPayContext.User.FirstOrDefaultAsync(u => u.Id == userId); var userFinanceStatus = new UserFinanceStatus(); if (userEntity != null) { var netSalary = userEntity.Salary - userEntity.Expenses; var status = netSalary >= 1000; userFinanceStatus.CanCreateAccount = status; userFinanceStatus.ErrorMessage = status ? string.Empty : IN_SUFFICIENT_FUNDS; } else { userFinanceStatus.CanCreateAccount = false; userFinanceStatus.ErrorMessage = USER_NOT_FOUND; } return(userFinanceStatus); }