public void CNPJ_EhUnico_Correto()
        {
            agencia = new Agencia(agenciaid, "Tabajara", "Tabajara SA", "", "(11)5677-5967");
            var mock = new Mock <IAgenciaRepository>();

            mock.Setup(c => c.BuscarAgenciaCnpj(null)).Returns(agencia);
            var cnpj = new CnpjUnicoSpecification(mock.Object);

            Assert.True(cnpj.IsSatisfiedBy(agencia));
        }
        public void CNPJ_EhUnico_Incorreto()
        {
            var mock = new Mock <IAgenciaRepository>();

            agencia = new Agencia(agenciaid, "Tabajara", "Tabajara SA", "77.962.261/0001-17", "(11)5677-5967");

            mock.Setup(c => c.BuscarAgenciaCnpj(agencia.CNPJ.Codigo)).Returns(agencia);
            var cnpj = new CnpjUnicoSpecification(mock.Object);

            Assert.False(cnpj.IsSatisfiedBy(agencia));
        }
        public AgenciaConsistenteParaCadastroValidation(IAgenciaRepository agenciarepository)
        {
            var cnpjduplicado = new CnpjUnicoSpecification(agenciarepository);
            var cnpjFormato   = new CnpjFormatoCorretoSpecification();
            var cnpjTamanho   = new CnpjTamanhoIncorretoSpecification();
            var nomeFantasia  = new NomeFantasiaFormatoCorretoSpecification();
            var razaoSocial   = new RazaoSocialFormatoSpecification();

            base.Add("cnpjduplicado", new Rule <Agencia>(cnpjduplicado, "CNPJ já cadastrado."));
            base.Add("cnpjFormato", new Rule <Agencia>(cnpjFormato, "O CNPJ está em formato incorreto."));
            base.Add("cnpjTamanho", new Rule <Agencia>(cnpjTamanho, "O CNPJ está em tamanho incorreto."));
            base.Add("nomeFantasia", new Rule <Agencia>(nomeFantasia, "O Nome Fantasia deve ter pelo meno 2 caracteres."));
            base.Add("razaoSocial", new Rule <Agencia>(razaoSocial, "A Razão Social deve dete ter pelo menos 2 caracteres."));
        }