public void DeveSalvarPostagem()
        {
            var postagemParaSerSalvo = PostagemBuilder.Novo().Build();


            _postagemServico.Salvar(postagemParaSerSalvo);

            _postagemRepositorio.Verify(x => x.Salvar(It.Is <Postagem>(t => t.Usuario.Email == postagemParaSerSalvo.Usuario.Email)));
        }
        public void NaoDeveTerLikeRepetidoParaMesmaPostagem()
        {
            var likeParaSalvar  = LikeBuilder.Novo().Build();
            var likeParaRetorno = LikeBuilder.Novo().Build();

            likeParaSalvar.SetarId(0);
            likeParaRetorno.SetarId(0);
            likeParaSalvar.LikePostagens.Add(new LikePostagem(0, 2, likeParaSalvar, PostagemBuilder.Novo().Build()));
            likeParaRetorno.LikePostagens.Add(new LikePostagem(0, 2, likeParaSalvar, PostagemBuilder.Novo().Build()));

            _likeRepositorioMock.Setup(x => x.ObterPorId(likeParaSalvar.Id)).Returns(likeParaRetorno);
            Assert.Throws <EntitadeExcecao>(() => _likeServico.Salvar(likeParaSalvar)).ComMensagem("Não pode dar mais de um like para uma mesma postagem!");
        }
        public void DeveRetornarLike()
        {
            var likeParaSalvar  = LikeBuilder.Novo().Build();
            var likeParaRetorno = LikeBuilder.Novo().Build();

            likeParaSalvar.SetarId(0);
            likeParaRetorno.SetarId(0);
            likeParaSalvar.LikePostagens.Add(new LikePostagem(0, 2, likeParaSalvar, PostagemBuilder.Novo().Build()));
            likeParaRetorno.LikePostagens.Add(new LikePostagem(0, 2, likeParaSalvar, PostagemBuilder.Novo().Build()));

            _likeRepositorioMock.Setup(x => x.ObterPorId(likeParaSalvar.Id)).Returns(likeParaRetorno);

            Assert.True(_likeServico.JaFoiLiked(likeParaSalvar));
        }
        public void NaoDeveTerUsuarioNulo()
        {
            Usuario usuario = null;

            Assert.Throws <EntitadeExcecao>(() => PostagemBuilder.Novo().ComUsuario(usuario).Build()).ComMensagem("Usuário Invalido para a postagem");
        }
 public void NaoDeveTerTextoInvalido(string textoInvalido)
 {
     Assert.Throws <EntitadeExcecao>(() => PostagemBuilder.Novo().ComTexto(textoInvalido).Build()).ComMensagem("Texto da postagem inválido");
 }