示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }