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); }
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); }
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)); } }