public void Testar_Classe_Negocio_Amigo_Erro()
        {
            var erros = new List <String>();

            // A classe que armazenamos os dados (da página)
            var dadosTela = new AmigoModel
            {
                Nome = "Amigo 01"
            };

            // A classe de negócio (TM)
            // O único comando da classe que pode ser publico, é o TEMPLATE METHOD (Etapas) todos os outros tem que ser protegidos só serão visiveis dentro
            // da classe filha, da classe que herdou!
            var negocio = new AmigoBusiness(dadosTela);

            // Sempre que você disparar um evento, obrigatoriamente tem que interceptar (Monitorar), escutar ele! Se não capturar da pau de NULL REFERENCE.

            // Criamos um metodo anonimo (INLINE) para receber as mensagens de erro daquele eveto.
            // => Expressão lambda é o corpo do método

            // "+=" é igual a capturar o evento escutado.
            // "=>" é igual a Executar
            // "{}" é o corpo do método (inline)

            // É um ponteiro do memória
            negocio.EnviarErros += (listaErros) => {
                erros = listaErros;
            };

            negocio.Executar();

            Assert.AreNotEqual(0, erros.Count);
        }
        public void Testar_Classe_Negocio_Amigo_Sucesso()
        {
            // A classe que armazenamos os dados (da página)
            var dadosTela = new AmigoModel
            {
                Nome           = "Amigo 01",
                Email          = "*****@*****.**",
                DataNascimento = DateTime.Now,
                CodigoSexo     = 2
            };

            // A classe de negócio (TM)
            // O único comando da classe que pode ser publico, é o TEMPLATE METHOD (Etapas) todos os outros tem que ser protegidos só serão visiveis dentro
            // da classe filha, da classe que herdou!
            var negocio = new AmigoBusiness(dadosTela);

            negocio.Executar();
        }