public void Nome_Senha_Email_Sao_Obrigatorios()
        {
            var gerenteUsuarios = new GerenteUsuarios(ctx);
            try
            {
                gerenteUsuarios.CriarNovoUsuario("", "", "");
                Assert.Fail("Deveria ter falhado");
            }
            catch (RegrasDeNegocioException rne)
            {
                var msg1 = rne.Erros.Where(x => x.Mensagem.Contains("Nome do usuário")).FirstOrDefault();
                var msg2 = rne.Erros.Where(x => x.Mensagem.Contains("Senha do usuário")).FirstOrDefault();
                var msg3 = rne.Erros.Where(x => x.Mensagem.Contains("Email do usuário")).FirstOrDefault();

                Assert.IsNotNull(msg1);
                Assert.IsNotNull(msg2);
                Assert.IsNotNull(msg3);
            }
        }
        public ActionResult Cadastro(UsuarioVM usuario)
        {
            using (IVIADbContext contexto = new IVIADbContext())
            {
                GerenteUsuarios gerenteUsuario = new GerenteUsuarios(contexto);
                try
                {
                    Usuario entidadeUsuario = gerenteUsuario.CriarNovoUsuario(usuario.Nome, usuario.Senha, usuario.Email);
                    contexto.Usuarios.Add(entidadeUsuario);
                    contexto.SaveChanges();
                    RedirectToAction("Index");
                }
                catch (RegrasDeNegocioException ex)
                {
                    ex.CopiarPara(ModelState);
                    usuario.Mensagem = "Erro!";
                }
            }

            return View(usuario);
        }
        public void Seu_Email_Deve_Ser_Unico()
        {
            var emailJaExistente = "*****@*****.**";
            var gerenteUsuarios = new GerenteUsuarios(ctx);

            try
            {
                gerenteUsuarios.CriarNovoUsuario("aa","123",emailJaExistente);
                Assert.Fail("Deveria ter falhado");
            }
            catch (RegrasDeNegocioException rne)
            {
                var msg = rne.Erros.Where(x => x.Mensagem.Contains("já existe")).FirstOrDefault();
                Assert.IsNotNull(msg);
            }
        }
        public void Seu_Email_Deve_Estar_Em_Formato_Valido()
        {
            var emailinvalido = "junior.com.br";
            var gerenteUsuarios = new GerenteUsuarios(ctx);

            try
            {
                gerenteUsuarios.CriarNovoUsuario("aa","123",emailinvalido);
                Assert.Fail("Deveria ter falhado");
            }
            catch (RegrasDeNegocioException rne)
            {
                var msg = rne.Erros.Where(x => x.Mensagem.Contains("Email inválido")).FirstOrDefault();
                Assert.IsNotNull(msg);
            }
        }