Пример #1
0
        public void Post_Status201()
        {
            // arrange
            var viewModel = new CobrancaViewModel()
            {
                Cpf = "325.541.398-22", Valor = 12343, Vencimento = DateTime.Today
            };

            var clienteModel = new ClienteModel {
                Cpf = 32554139822, Estado = "SP", Id = 1, Nome = "Paulo"
            };
            var cobrancaModel = new CobrancaModel {
                Cliente = clienteModel, Id = 1, Valor = viewModel.Valor, Vencimento = viewModel.Vencimento
            };

            _clienteRepository.Setup(x => x.Get(It.IsAny <long>())).Returns(clienteModel);
            _cobrancaRepository.Setup(x => x.Add(It.IsAny <CobrancaModel>())).Returns(cobrancaModel);

            // act
            var result = _controller.Post(viewModel);

            // assert
            _cobrancaRepository.Verify(x => x.Add(It.Is <CobrancaModel>(y => y.Vencimento == viewModel.Vencimento && y.Valor == viewModel.Valor && y.Cliente.Cpf == clienteModel.Cpf)), Times.Once);

            Assert.IsType <CreatedAtActionResult>(result.Result);
            var convertedResult = (CreatedAtActionResult)result.Result;

            Assert.Equal(StatusCodes.Status201Created, convertedResult.StatusCode);

            Assert.Equal(viewModel.Cpf, ((CobrancaViewModel)convertedResult.Value).Cpf);
            Assert.Equal(viewModel.Valor, ((CobrancaViewModel)convertedResult.Value).Valor);
            Assert.Equal(viewModel.Vencimento, ((CobrancaViewModel)convertedResult.Value).Vencimento);
        }
Пример #2
0
        public async Task Post()
        {
            // arrange
            var cliente = new ClienteModel
            {
                Estado = "SP",
                Cpf    = 39999685080,
                Nome   = "Paulo teste"
            };

            _database.GetCollection <ClienteModel>("clientes").Insert(cliente);
            var viewModel = new CobrancaViewModel {
                Cpf = "39999685080", Valor = 123, Vencimento = DateTime.Today
            };

            // act
            var response = await _client.PostAsync(_address, new StringContent(JsonConvert.SerializeObject(viewModel), Encoding.UTF8, "application/json"));

            // assert
            response.EnsureSuccessStatusCode();
            var result = JsonConvert.DeserializeObject <CobrancaViewModel>(await response.Content.ReadAsStringAsync());

            Assert.Equal(1, result.Id);
            Assert.Equal(viewModel.Valor, result.Valor);
            Assert.Equal(viewModel.Vencimento, result.Vencimento);
            Assert.Equal(viewModel.Cpf, result.Cpf);
        }
Пример #3
0
        public ActionResult <CobrancaViewModel> Post([FromBody] CobrancaViewModel viewModel)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(viewModel.Cpf) || viewModel.Cpf.ToValidCpf() == -1)
                {
                    return(BadRequest("CPF Inválido!"));
                }

                if (viewModel.Valor <= 0)
                {
                    return(BadRequest("Valor inválido de cobrança!"));
                }

                var cliente = _clienteRepository.Get(viewModel.Cpf.ToValidCpf());
                if (cliente == null)
                {
                    return(BadRequest("CPF não foi cadastrado!"));
                }

                var model = new CobrancaModel
                {
                    Vencimento = viewModel.Vencimento,
                    Valor      = viewModel.Valor,
                    Cliente    = cliente
                };

                model = _cobrancaRepository.Add(model);

                viewModel.Id  = model.Id;
                viewModel.Cpf = model.Cliente.Cpf.ToString();

                return(CreatedAtAction(nameof(Get), new { Id = viewModel.Id }, viewModel));
            }
            catch
            {
                return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
            }
        }