public AnuncioAdicionarResponse Adicionar(AnuncioAdicionarRequest request) { // Criei o UnitOfWork para mostrar um controle de transação com o dapper quando for preciso using (_unitOfWork) { // Inicia a transação _unitOfWork.BeginTransaction(); // Faz o mapeamento para a model e chama a service Anuncio requestModel = _mapper.Map <Anuncio>(request); Anuncio responseModel = _anuncioService.Adicionar(requestModel); // Commit ou RollBack if (responseModel.Erros != null && responseModel.Erros.Any()) { _unitOfWork.RollBack(); } else { _unitOfWork.CommitTransaction(); } // Mapemento do response e retorna para a api AnuncioAdicionarResponse response = _mapper.Map <AnuncioAdicionarResponse>(responseModel); return(response); } }
public void Deve_Retornar_Uma_Lista_De_Erros_Quando_So_Passar_A_Marca(string marca) { _anuncioAppService = _services.GetService <IAnuncioAppService>(); AnuncioAdicionarRequest request = new AnuncioAdicionarRequest { Marca = marca, }; _anuncioRepositoryMock.Setup(r => r.Adicionar(It.IsAny <Anuncio>())).Returns(_faker.Random.Number(1, 100)); AnuncioAdicionarResponse response = _anuncioAppService.Adicionar(request); Assert.True(response.Id == 0); Assert.True(response.Erros.Any()); }
public void Deve_Retornar_Uma_Mensagem_Marca_Obrigatoria_Quando_Nao_Passar_A_Marca_No_Adicionar() { _anuncioAppService = _services.GetService <IAnuncioAppService>(); AnuncioAdicionarRequest request = new AnuncioAdicionarRequest { Marca = "", Modelo = _faker.Vehicle.Model(), Versao = _faker.Vehicle.Vin(), Ano = _faker.Random.Number(4, 4), Quilometragem = _faker.Random.Number(1, 3), }; AnuncioAdicionarResponse response = _anuncioAppService.Adicionar(request); Assert.Contains(response.Erros, x => x.Descricao == "Marca é obrigatório" && x.Codigo == 400); }
public void Deve_Adicionar_Quando_Todos_Os_Campos_Estao_Preenchidos() { _anuncioAppService = _services.GetService <IAnuncioAppService>(); AnuncioAdicionarRequest request = new AnuncioAdicionarRequest { Marca = _faker.Vehicle.Type(), Modelo = _faker.Vehicle.Model(), Versao = _faker.Vehicle.Vin(), Ano = _faker.Random.Number(2000, 2020), Quilometragem = _faker.Random.Number(100000), }; _anuncioRepositoryMock.Setup(r => r.Adicionar(It.IsAny <Anuncio>())).Returns(_faker.Random.Number(1, 100)); AnuncioAdicionarResponse response = _anuncioAppService.Adicionar(request); Assert.True(response.Id > 0); Assert.True(!response.Erros.Any()); }
public IActionResult Adicionar(AnuncioAdicionarRequest request) { AnuncioAdicionarResponse response = _anuncioAppService.Adicionar(request); return(Ok(response)); }