public void AlterarDados(AlteracaoPost alteracaoPost) { AddNotifications( new Contract() .IsNotNull( alteracaoPost, nameof(alteracaoPost), "")); /* * Conforme a classe fosse crescendo ou em classe maiores, * realmente, tornaria algo inviavel, * tendo buscando de buscar outras estrategias. */ if (Titulo != alteracaoPost.Titulo) { Titulo = alteracaoPost.Titulo; } if (Descricao != alteracaoPost.Descricao) { Descricao = alteracaoPost.Descricao; } if (Conteudo != alteracaoPost.Conteudo) { Conteudo = alteracaoPost.Conteudo; } }
public async Task Editar(long id, PostModel postModel) { var post = await _blogStarWarsDbContext.Post.FindAsync(id); var alteracaoPost = new AlteracaoPost(postModel.Titulo, post.Descricao, post.Conteudo); post.AlterarDados(alteracaoPost); await _blogStarWarsDbContext.SaveChangesAsync(); }
public void Deve_Manter_Inalterado_Os_Dados_De_Um_Post_Quando_Nao_Houver_Modificacao_Nos_Mesmos() { //Arrange //TODO: Futuramente desenvolver um Builder para Post var titulo = "What is Lorem Ipsum?"; var descricao = "Lorem Ipsum is simply dummy text of the printing and typesetting industry."; var conteudo = "It is a long established fact that a reader will be distracted by the readable content."; var post = new Post(titulo, descricao, conteudo); //Construindo a estrutura para alteração do post. var tituloAlteracao = "What is Lorem Ipsum?"; var descricaoAlteracao = "Gilbertagem Alada heheheheahahhah ehehehehahahah"; var conteudoAlteracao = "blablablablablablablablablablablablablablabla"; var alteracaoPost = new AlteracaoPost(tituloAlteracao, descricaoAlteracao, conteudoAlteracao); //Act post.AlterarDados(alteracaoPost); //Assert post .Invalid .Should() .BeFalse(); //Valida o estado das propriedades. post .Titulo .Should() .NotBeNull(); post .Titulo .Should() .Be(titulo); post .Descricao .Should() .NotBeNull(); post .Descricao .Should() .Be(descricaoAlteracao); post .Conteudo .Should() .NotBeNull(); post .Conteudo .Should() .Be(conteudoAlteracao); }