コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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);
        }