コード例 #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 void Get_Status200()
        {
            // arrange
            var model = new CobrancaModel
            {
                Id         = 1,
                Valor      = 123,
                Vencimento = DateTime.Today,
                Cliente    = new ClienteModel {
                    Cpf = 32554139822
                }
            };

            _cobrancaRepository.Setup(x => x.Get(It.IsAny <int>())).Returns(model);

            // act
            var result = _controller.Get(1);

            // assert
            var convertedResult = result.Result as OkObjectResult;

            Assert.Equal(model.Valor, (convertedResult.Value as CobrancaViewModel).Valor);
            Assert.Equal(model.Vencimento, (convertedResult.Value as CobrancaViewModel).Vencimento);
            Assert.Equal(model.Id, (convertedResult.Value as CobrancaViewModel).Id);
            Assert.Equal(model.Cliente.Cpf, Convert.ToInt64((convertedResult.Value as CobrancaViewModel).Cpf));
        }
コード例 #3
0
        public async Task Get()
        {
            // arrange
            var cliente = new ClienteModel {
                Cpf = 32554139822, Estado = "SP", Nome = "Paulo"
            };

            _database.GetCollection <ClienteModel>("clientes").Insert(cliente);

            var cobranca = new CobrancaModel {
                Cliente = cliente, Valor = 123, Vencimento = DateTime.Today
            };

            _database.GetCollection <CobrancaModel>("cobrancas").Insert(cobranca);

            // act
            var response = await _client.GetAsync($"{_address}/1");

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

            Assert.Equal(1, result.Id);
            Assert.Equal(cobranca.Valor, result.Valor);
            Assert.Equal(cobranca.Vencimento, result.Vencimento);
            Assert.Equal(cobranca.Cliente.Cpf.ToString(), result.Cpf);
        }
コード例 #4
0
        public async Task Filter(string cpf, int?refMes, int expectedQuant)
        {
            // arrange
            var cliente1 = new ClienteModel {
                Cpf = 32554139822, Nome = "teste1", Estado = "SP1"
            };
            var cliente2 = new ClienteModel {
                Cpf = 27184826809, Nome = "teste2", Estado = "SP2"
            };

            _database.GetCollection <ClienteModel>("clientes").Insert(cliente1);
            _database.GetCollection <ClienteModel>("clientes").Insert(cliente2);

            var cobranca1 = new CobrancaModel {
                Cliente = cliente1, Valor = 1, Vencimento = new DateTime(2010, 1, 1)
            };
            var cobranca2 = new CobrancaModel {
                Cliente = cliente1, Valor = 1, Vencimento = new DateTime(2010, 2, 1)
            };
            var cobranca3 = new CobrancaModel {
                Cliente = cliente2, Valor = 1, Vencimento = new DateTime(2010, 1, 1)
            };
            var cobranca4 = new CobrancaModel {
                Cliente = cliente2, Valor = 1, Vencimento = new DateTime(2010, 2, 1)
            };

            _database.GetCollection <CobrancaModel>("cobrancas").InsertBulk(new List <CobrancaModel> {
                cobranca1, cobranca2, cobranca3, cobranca4
            });


            // act
            var response = await _client.GetAsync($"{_address}/filter?cpf={cpf}&refMes={refMes}");

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

            Assert.Equal(expectedQuant, result.Count());
        }
コード例 #5
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));
            }
        }
コード例 #6
0
        public IActionResult GerarCobranca()
        {
            Result        result        = new Result();
            CobrancaModel cobrancaModel = new CobrancaModel();

            DateTime dataTeste = DateTime.Now.AddDays(30);

            try
            {
                ClienteModel   clienteModel  = new ClienteModel();
                List <Cliente> todosClientes = clienteModel.BuscarClientes();
                cobrancaModel.GerarCobranca(todosClientes, DateTime.Parse(dataTeste.ToShortDateString()));
            }
            catch (Exception ex)
            {
                result.Sucesso      = false;
                result.ErrorMessage = "Erro ao tentar gerar cobrancas: " + ex.Message;
            }
            ViewBag.Relatorio = cobrancaModel.GerarRelatorioCobranca();

            return(Ok());
        }
コード例 #7
0
 public CobrancaModel Add(CobrancaModel model)
 {
     _cobrancas.Insert(model);
     return(model);
 }