Exemplo n.º 1
0
        public async void Update_Should_Expense_Has_Been_Updated()
        {
            var user = await Factory.User();

            await _context.Users.AddAsync(user);

            var account = await Factory.Account(userId : user.Id);

            await _context.Accounts.AddAsync(account);

            var expense = await Factory.Expense(accountId : account.Id);

            await _context.Expenses.AddAsync(expense);

            await _context.SaveChangesAsync();

            _accessor.HttpContext.User = new ClaimsPrincipal
                                         (
                new ClaimsIdentity
                (
                    new Claim[]
            {
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString())
            }
                )
                                         );

            var viewModel = new UpdateExpenseViewModel
            {
                Description = "Nintendo Switch",
                Value       = 180000,
                Date        = DateTime.Now.AddDays(-1)
            };

            await _controller.Update(account.Id, expense.Id, viewModel);

            await _context.Entry(expense).ReloadAsync();

            Assert.Equal(viewModel.Description, expense.Description);
            Assert.Equal(viewModel.Value, expense.Value);
            Assert.Equal(viewModel.Date, expense.Date);
        }
Exemplo n.º 2
0
        public async void Update_Should_Return_Status_200()
        {
            var user = await Factory.User();

            await _context.Users.AddAsync(user);

            var account = await Factory.Account(userId : user.Id);

            await _context.Accounts.AddAsync(account);

            var expense = await Factory.Expense(accountId : account.Id);

            await _context.Expenses.AddAsync(expense);

            await _context.SaveChangesAsync();

            _accessor.HttpContext.User = new ClaimsPrincipal
                                         (
                new ClaimsIdentity
                (
                    new Claim[]
            {
                new Claim(ClaimTypes.NameIdentifier, user.Id.ToString())
            }
                )
                                         );

            var viewModel = new UpdateExpenseViewModel
            {
                Description = "Nintendo Switch",
                Value       = 180000,
                Date        = DateTime.Now.AddDays(-1)
            };

            var result = await _controller.Update(account.Id, expense.Id, viewModel);

            Assert.IsAssignableFrom <OkObjectResult>(result);
        }
Exemplo n.º 3
0
        public async Task <IActionResult> Update([FromRoute] int accountId, [FromRoute] int id, [FromBody] UpdateExpenseViewModel viewModel)
        {
            var user = await _auth.User();

            var expense = await(from current in _context.Expenses
                                join account in _context.Accounts on current.AccountId equals account.Id
                                where current.AccountId == accountId && current.Id == id && account.UserId == user.Id
                                select current).FirstAsync();

            expense.Description = viewModel.Description;
            expense.Value       = viewModel.Value;
            expense.Date        = viewModel.Date;

            await _context.SaveChangesAsync();

            var response = new ResponseViewModel <int>(expense.Id);

            return(Ok(response));
        }