Пример #1
0
        public async void Store_Should_Return_Status_201()
        {
            var user = await Factory.User();

            await _context.Users.AddAsync(user);

            await _context.SaveChangesAsync();

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

            await _context.Accounts.AddAsync(nubank);

            await _context.SaveChangesAsync();

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

            await _context.Accounts.AddAsync(itau);

            await _context.SaveChangesAsync();

            _accessor.HttpContext.User = await Factory.ClaimsPrincipal(userId : user.Id);

            var viewModel = new StoreTransferViewModel
            {
                Description = "Save money",
                Date        = new DateTime(year: 2019, month: 12, day: 25),
                Value       = 25000,
                ToId        = nubank.Id,
                FromId      = itau.Id
            };

            var result = await _controller.Store(viewModel);

            Assert.IsAssignableFrom <CreatedResult>(result);
        }
Пример #2
0
        public async Task <IActionResult> Store([FromBody] StoreTransferViewModel viewModel)
        {
            var output = new Output
            {
                Description = viewModel.Description,
                Value       = -viewModel.Value,
                Date        = viewModel.Date,
                ToId        = viewModel.ToId,
                FromId      = viewModel.FromId
            };

            var input = new Input
            {
                Description = viewModel.Description,
                Value       = viewModel.Value,
                Date        = viewModel.Date,
                ToId        = viewModel.ToId,
                FromId      = viewModel.FromId
            };

            await _context.Outputs.AddAsync(output);

            await _context.Inputs.AddAsync(input);

            await _context.SaveChangesAsync();

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

            return(Created($"transfer/{output.Id}", response));
        }
Пример #3
0
        public async void Store_Should_Have_An_Output()
        {
            var user = await Factory.User();

            await _context.Users.AddAsync(user);

            await _context.SaveChangesAsync();

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

            await _context.Accounts.AddAsync(nubank);

            await _context.SaveChangesAsync();

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

            await _context.Accounts.AddAsync(itau);

            await _context.SaveChangesAsync();

            _accessor.HttpContext.User = await Factory.ClaimsPrincipal(userId : user.Id);

            var viewModel = new StoreTransferViewModel
            {
                Description = "Save money",
                Date        = new DateTime(year: 2019, month: 12, day: 25),
                Value       = 25000,
                ToId        = nubank.Id,
                FromId      = itau.Id
            };

            var result = await _controller.Store(viewModel);

            Assert.Collection(_context.Outputs,
                              (it) =>
            {
                Assert.Equal(viewModel.Description, it.Description);
                Assert.Equal(viewModel.Date, it.Date);
                Assert.Equal(-viewModel.Value, it.Value);
                Assert.Equal(viewModel.ToId, it.ToId);
                Assert.Equal(viewModel.FromId, it.FromId);
            });
        }