public void UsuarioRequest_QuandoTituloForNulo_DeveRetornarErro() { _request.Titulo = null; var resultado = _validator.Validate(_request); resultado.IsValid.Should().BeFalse(); }
public async Task <Result <LivroModel> > AddLivroAsync(LivroModel livro) { var novoLivro = _mapper.Map <Livro>(livro); var validator = new LivroValidator(); var resultValidation = validator.Validate(novoLivro); if (!resultValidation.IsValid) { _logger.LogWarning("Novo livro não passou na validação. Erros: {0}", resultValidation.Errors.ToJson()); return(Result <LivroModel> .Invalid(resultValidation.AsErrors())); } var livroAdicionado = await _repositorio.AddAsync(novoLivro); Guard.Against.Null(livroAdicionado, "Novo livro"); _logger.LogInformation("Novo livro foi inserido com sucesso"); return(Result <LivroModel> .Success( _mapper.Map <LivroModel>(livroAdicionado))); }
public async Task <Result <LivroModel> > UpdateLivroAsync(Guid livroId, LivroModel livroModel) { Guard.Against.NullOrEmpty(livroId, "LivroId"); var livro = await _repositorio.GetByIdAsync(livroId); if (livro is null) { _logger.LogWarning("Não foi encontrado livro com id igual a '{0}'", livroId); return(Result <LivroModel> .NotFound()); } livro.Titulo = !string.IsNullOrEmpty(livroModel.Titulo) && livro.Titulo != livroModel.Titulo ? livroModel.Titulo : livro.Titulo; livro.Descricao = !string.IsNullOrEmpty(livroModel.Descricao) && livro.Descricao != livroModel.Descricao ? livroModel.Descricao : livro.Descricao; livro.Valor = livroModel.Valor != decimal.Zero && livro.Valor != livroModel.Valor ? livroModel.Valor : livro.Valor; livro.ISBN_10 = livroModel.Valor != 0 && livro.ISBN_10 != livroModel.ISBN_10 ? livroModel.ISBN_10 : livro.ISBN_10; livro.Edicao = livro.Edicao != livroModel.Edicao ? livroModel.Edicao : livro.Edicao; livro.DataPublicacao = livro.DataPublicacao != livroModel.DataPublicacao ? livroModel.DataPublicacao : livro.DataPublicacao; livro.Idioma = livro.Idioma != livroModel.Idioma ? livroModel.Idioma : livro.Idioma; livro.NumeroPaginas = livro.NumeroPaginas != livroModel.NumeroPaginas ? livroModel.NumeroPaginas : livro.NumeroPaginas; livro.DataAtualizacao = DateTime.Now; var validator = new LivroValidator(); var resultValidation = validator.Validate(livro); if (!resultValidation.IsValid) { _logger.LogWarning("Atualização do livro não passou na validação. Erros: {0}", resultValidation.Errors.ToJson()); return(Result <LivroModel> .Invalid(resultValidation.AsErrors())); } await _repositorio.UpdateAsync(livro); _logger.LogInformation("Livro foi atualizado com sucesso", livro.ToJson()); return(Result <LivroModel> .Success( _mapper.Map <LivroModel>(livro))); }