示例#1
0
        public long Adicionar(Emitente emitente)
        {
            emitente = _contexto.Emitentes.Add(emitente);
            _contexto.SaveChanges();

            return(emitente.Id);
        }
示例#2
0
        public void IniciarCenario()
        {
            _notaFiscalRepositorioXML = new NotaFiscalRepositorioXML();

            _endereco = Common.Tests.Funcionalidades.Enderecos.ObjectMother.PegarEnderecoValido();

            _emitente = Common.Tests.Funcionalidades.Emitentes.ObjectMother.PegarEmitenteValido(_endereco, new CNPJ {
                NumeroComPontuacao = "99.327.235/0001-50"
            });
            _destinatario = Common.Tests.Funcionalidades.Destinatarios.ObjectMother.PegarDestinatarioValidoComCNPJ(_endereco, new CNPJ {
                NumeroComPontuacao = "13.106.137/0001-77"
            });
            _transportador = Common.Tests.Funcionalidades.Transportadoras.ObjectMother.PegarTransportadorValidoComCNPJ(_endereco, new CNPJ {
                NumeroComPontuacao = "11.222.333/0001-81"
            });

            _notaFiscal             = ObjectMother.PegarNotaFiscalValida(_emitente, _destinatario, _transportador);
            _notaFiscal.DataEmissao = DateTime.Now;
            _produto           = Common.Tests.Funcionalidades.Produtos.ObjectMother.ObterProdutoValido();
            _produtoNotaFiscal = Common.Tests.Funcionalidades.ProdutoNotasFiscais.ObjectMother.PegarProdutoNotaFiscalValido(_produto, _notaFiscal);

            _notaFiscal.Produtos = new List <ProdutoNotaFiscal>();
            _notaFiscal.Produtos.Add(_produtoNotaFiscal);

            _notaFiscal.ValidarGeracao();
            _notaFiscal.ValidarParaEmitir();
            _notaFiscal.CalcularValoresTotais();
            _notaFiscal.GerarChaveDeAcesso(new Random());
            _notaFiscal.DataEmissao = DateTime.Now;
        }
        public Emitente Add(Emitente emitente)
        {
            var novoEmitente = _context.Emitentes.Add(emitente);

            _context.SaveChanges();
            return(novoEmitente);
        }
示例#4
0
        public void Emitente_Aplicacao_Atualizar_Sucesso()
        {
            //Cenário
            long idValido = 1;

            _mockRepositorioEmitente.Setup(mre => mre.Adicionar(_mockEmitente.Object)).Returns(_mockEmitente.Object);
            _enderecoRepositorioMock.Setup(er => er.Adicionar(_endereco)).Returns(_endereco);
            _mockEmitente.Setup(em => em.Endereco).Returns(_endereco);
            _mockEmitente.Setup(me => me.Validar());

            Emitente emitente = _emitenteServico.Adicionar(_mockEmitente.Object);

            _mockEmitente.Setup(me => me.Id).Returns(idValido);
            _enderecoRepositorioMock.Setup(en => en.Atualizar(_endereco)).Returns(_endereco);
            _mockRepositorioEmitente.Setup(mre => mre.Atualizar(_mockEmitente.Object)).Returns(_mockEmitente.Object);

            //Ação
            _emitenteServico.Atualizar(_mockEmitente.Object);

            //Verificar
            _mockRepositorioEmitente.Verify(mre => mre.Atualizar(_mockEmitente.Object));
            _enderecoRepositorioMock.Verify(en => en.Atualizar(_mockEmitente.Object.Endereco));

            _mockEmitente.Verify(me => me.Validar());
        }
示例#5
0
        private static Emitente FormaObjetoEmitente(IDataReader reader)
        {
            Emitente emitente = new Emitente();

            emitente.Id           = Convert.ToInt64(reader["IDEMITENTE"]);
            emitente.NomeFantasia = Convert.ToString(reader["NOME_FANTASIA"]);
            emitente.RazaoSocial  = Convert.ToString(reader["RAZAO_SOCIAL"]);
            emitente.CNPJ         = new CNPJ {
                NumeroComPontuacao = Convert.ToString(reader["CNPJ_EMITENTE"])
            };
            emitente.InscricaoEstadual  = Convert.ToString(reader["INSCRICAO_ESTADUAL"]);
            emitente.InscricaoMunicipal = Convert.ToString(reader["INSCRICAO_MUNICIPAL"]);
            emitente.Endereco           = new Endereco
            {
                Id         = Convert.ToInt64(reader["IDENDERECO"]),
                Logradouro = Convert.ToString(reader["LOGRADOURO_ENDERECO"]),
                Numero     = Convert.ToInt32(reader["NUMERO_ENDERECO"]),
                Bairro     = Convert.ToString(reader["BAIRRO_ENDERECO"]),
                Municipio  = Convert.ToString(reader["MUNICIPIO_ENDERECO"]),
                Estado     = Convert.ToString(reader["ESTADO_ENDERECO"]),
                Pais       = Convert.ToString(reader["PAIS_ENDERECO"])
            };

            return(emitente);
        }
示例#6
0
        private Emitente SemearEmitente()
        {
            Emitente emitente = new Emitente
            {
                Id                 = 10,
                NomeFantasia       = "nome fantasia",
                RazaoSocial        = "razão social",
                CNPJ               = new Documento("99.327.235/0001-50", TipoDocumento.CNPJ),
                InscricaoEstadual  = "478648383",
                InscricaoMunicipal = "478548383",
                Endereco           = new Endereco()
                {
                    Logradouro = "Logradouro",
                    Numero     = 1,
                    Bairro     = "Bairro",
                    Municipio  = "Município",
                    Estado     = "Estado",
                    Pais       = "País"
                }
            };

            _contexto.Emitentes.Add(emitente);
            _contexto.SaveChanges();
            return(emitente);
        }
示例#7
0
            public static EmitenteViewModel Criar(Empresa empresa)
            {
                Emitente emit = null;

                if (empresa is Emitente)
                {
                    emit = empresa as Emitente;
                }


                var vm = new EmitenteViewModel();

                vm.Nome    = emit == null ? empresa.xNome : emit.xFant ?? emit.xNome;
                vm.CpfCnpj = empresa.CNPJ ?? empresa.CPF;
                vm.IE      = empresa.IE;

                if (empresa.Endereco != null)
                {
                    vm.EnderecoLogadrouro  = empresa.Endereco.xLgr;
                    vm.EnderecoNumero      = empresa.Endereco.nro;
                    vm.EnderecoBairro      = empresa.Endereco.xBairro;
                    vm.Municipio           = empresa.Endereco.xMun;
                    vm.EnderecoUf          = empresa.Endereco.UF;
                    vm.EnderecoCep         = empresa.Endereco.CEP;
                    vm.EnderecoComplemento = empresa.Endereco.xCpl;
                }
                return(vm);
            }
        public override void Validar()
        {
            if (Emitente == null)
            {
                throw new NotaFiscalEmitenteVazioException();
            }
            if (Destinatario == null)
            {
                throw new NotaFiscalDestinatarioVazioException();
            }
            if (Transportador == null)
            {
                GerarTransportador();
            }

            Emitente.Validar();
            Destinatario.Validar();
            Transportador.Validar();
            foreach (var produto in Produtos)
            {
                produto.Validar();
            }
            if ((Emitente.Cnpj.EhValido && Destinatario.Cnpj.EhValido && Emitente.Cnpj.Equals(Destinatario.Cnpj)) ||
                (Emitente.Cpf.EhValido && Destinatario.Cpf.EhValido && Emitente.Cpf.Equals(Destinatario.Cpf)))
            {
                throw new NotaFiscalEmitenteEqualsDestinatarioException();
            }
            if (Emitido)
            {
                if (DataEntrada > DataEmissao)
                {
                    throw new NotaFiscalDataEntradaOverflowException();
                }
            }
        }
示例#9
0
        public void CriarEmitenteSemCNPJ()
        {
            Emitente emitente = new Emitente();

            emitente.Bairro            = "Bairro Teste";
            emitente.CEP               = "37990000";
            emitente.Cidade            = "Ibiraci";
            emitente.CidadeCodigo      = 1234;
            emitente.CNAE              = "4455";
            emitente.CNPJ              = "12345678901234";
            emitente.Complemento       = string.Empty;
            emitente.DataCadastro      = DateTime.Now;
            emitente.Fone              = "3535355414";
            emitente.IM                = "12";
            emitente.InscricaoEstadual = "123123123";
            emitente.Logradouro        = "rua das flores";
            emitente.NomeFantasia      = "Ronaldo Viola";
            emitente.NumeroCasa        = "s/n";
            emitente.Pais              = "BRASIL";
            emitente.PaisCodigo        = 1589;
            emitente.RazaoSocial       = "Viola do Ronaldo LTDA";
            emitente.UF                = "MG";

            Assert.AreNotEqual(emitente.CNPJ.Length, 0);
        }
示例#10
0
        public Emitente Adicionar(Emitente emitente)
        {
            emitente.Validar();

            emitente.Endereco = _enderecoRepositorio.Adicionar(emitente.Endereco);
            return(_repositorio.Adicionar(emitente));
        }
示例#11
0
        private NotaFiscal SemearNotaFiscal()
        {
            Destinatario  destinatario  = SemearDestinatario();
            Emitente      emitente      = SemearEmitente();
            Transportador transportador = SemearTransportador();
            Produto       produto       = SemearProduto();

            NotaFiscal notaFiscal = new NotaFiscal
            {
                ValorTotalICMS     = 90,
                ValorTotalIPI      = 10,
                ValorTotalFrete    = 50,
                ValorTotalNota     = 1000,
                ValorTotalProdutos = 800,
                ValorTotalImpostos = 100,
                NaturezaOperacao   = "Natureza",
                DataEntrada        = DateTime.Now,
                Destinatario       = destinatario,
                Emitente           = emitente,
                Transportador      = transportador
            };

            _contexto.NotasFiscais.Add(notaFiscal);
            _contexto.SaveChanges();

            ProdutoNotaFiscal produtoNotaFiscal = new ProdutoNotaFiscal(notaFiscal, produto, 10);

            notaFiscal.Produtos.Add(produtoNotaFiscal);

            _contexto.SaveChanges();

            return(notaFiscal);
        }
示例#12
0
        public void Emitente_Dominio_Validar_InscricaoEstadualInvalida_Falha()
        {
            Emitente emitente = ObjectMother.PegarEmitenteComInscricaoEstadualInvalida(_enderecoMock.Object, _cnpjMock.Object);

            Action resultado = () => emitente.Validar();

            resultado.Should().Throw <ExcecaoEmitenteComInscricaoEstadualAcimaDoLimite>();
        }
示例#13
0
 public void SetUp()
 {
     _emitente = new Emitente();
     _mockEmitenteRepositorio   = new Mock <IEmitenteRepositorio>();
     _mockEnderecoRepositorio   = new Mock <IEnderecoRepositorio>();
     _mockNotaFiscalRepositorio = new Mock <INotaFiscalRepositorio>();
     _emitenteServico           = new EmitenteServico(_mockEmitenteRepositorio.Object, _mockNotaFiscalRepositorio.Object, _mockEnderecoRepositorio.Object);
 }
示例#14
0
        public void Emitente_Dominio_Validar_SemInscricaoMunicipal_Falha()
        {
            Emitente emitente = ObjectMother.PegarEmitenteSemInscricaoMunicipal(_enderecoMock.Object, _cnpjMock.Object);

            Action resultado = () => emitente.Validar();

            resultado.Should().Throw <ExcecaoEmitenteSemInscricaoMunicipal>();
        }
示例#15
0
        private Emitente SemearEmitente()
        {
            Emitente emitente = ObjectMother.PegarEmitenteValidoSemDependencias();

            _contexto.Emitentes.Add(emitente);
            _contexto.SaveChanges();
            return(emitente);
        }
示例#16
0
        public void Emitente_Dominio_Validar_SemEndereco_Falha()
        {
            Emitente emitente = ObjectMother.PegarEmitenteSemEndereco(_cnpjMock.Object);

            Action resultado = () => emitente.Validar();

            resultado.Should().Throw <ExcecaoEmitenteSemEndereco>();
        }
示例#17
0
        public bool Excluir(EmitenteRemoverComando comando)
        {
            Emitente emitente = _repositorioEmitente.BuscarPorId(comando.Id) ?? throw new ExcecaoNaoEncontrado();

            _repositorioEmitente.Excluir(emitente);

            return(_repositorioEmitente.BuscarPorId(emitente.Id) == null ? true : false);
        }
示例#18
0
        public Emitente Inserir(Emitente emitente)
        {
            emitente.Validar();

            emitente.ID = Db.Insert(_sqlInserir, ObtemParametros(emitente));

            return(emitente);
        }
示例#19
0
        public void Emitente_Dominio_Validar_InscricaoEstadualComLetras_Falha()
        {
            Emitente emitente = ObjectMother.PegarEmitenteComInscricaoEstadualComLetras(_enderecoMock.Object, _cnpjMock.Object);

            Action resultado = () => emitente.Validar();

            resultado.Should().Throw <ExcecaoInscricacaoEstadualEmitenteComLetras>();
        }
示例#20
0
        public void Emitente_Dominio_Validar_RazaoSocial3Letras_Falha()
        {
            Emitente emitente = ObjectMother.PegarEmitenteComRazaoSocialDe3Letras(_enderecoMock.Object, _cnpjMock.Object);

            Action resultado = () => emitente.Validar();

            resultado.Should().Throw <ExcecaoRazaoSocialEmitentePequeno>();
        }
示例#21
0
        public void Emitente_Dominio_DeveJogarExcecaoCpfECnpjVazio()
        {
            emitente = ObjectMother.ObterEmitenteComCpnjECpfVazio();

            Action acao = emitente.Validar;

            acao.Should().Throw <EmitenteEmptyCpfCnpjException>();
        }
示例#22
0
        public void Emitente_Dominio_DeveValidarComCpfVazio()
        {
            emitente = ObjectMother.ObterEmitenteComCpfVazio();

            Action acao = emitente.Validar;

            acao.Should().NotThrow();
        }
示例#23
0
        public void Emitente_Dominio_DeveJogarExcecaoRazaoSocialVazio()
        {
            emitente = ObjectMother.ObterEmitenteComRazaoSocialVazio();

            Action acao = emitente.Validar;

            acao.Should().Throw <EmitenteEmptyRazaoSocialException>();
        }
示例#24
0
        public void Emitente_Dominio_DeveJogarExcecaoInscricaoMunicipalVazio()
        {
            emitente = ObjectMother.ObterEmitenteComInscricaoMunicipalVazio();

            Action acao = emitente.Validar;

            acao.Should().Throw <EmitenteEmptyInscricaoMunicipalException>();
        }
示例#25
0
        public void Emitente_Dominio_CnpjMenorQue14Digitos_DeveFalhar()
        {
            emitente = ObjectMother.ObterEmitenteComCnpjMenorQue14();

            Action acao = emitente.Validar;

            acao.Should().Throw <CnpjInvalidoException>();
        }
示例#26
0
        public void Emitente_Dominio_NaoDeveJogarExcecaoCpfVazio()
        {
            emitente = ObjectMother.ObterEmitenteValido();

            Action acao = emitente.Validar;

            acao.Should().NotThrow();
        }
示例#27
0
        public void Emitente_Aplicacao_Salvar_DeveJogarExcecaoSemRazaoSocial()
        {
            Emitente emitente = ObjectMother.ObterEmitenteComRazaoSocialVazio();

            Action act = () => { emitenteServico.Salvar(emitente); };

            act.Should().Throw <EmitenteEmptyRazaoSocialException>();
        }
示例#28
0
        public void Repositorio_Emitente_Atualizar_DeveJogarExcessao_UnknownId()
        {
            _emitente    = ObjectMother.GetEmitenteValido();
            _emitente.Id = 20;
            var action = new Action(() => _repository.Update(_emitente));

            action.Should().Throw <DbUpdateConcurrencyException>();
        }
示例#29
0
        public void TesteObterNome()
        {
            var emitente = new Emitente
            {
                NomeFantasia = "Automação NET"
            };

            Assert.AreEqual("Automação NET", emitente.NomeFantasia);
        }
示例#30
0
        public void Emitente_InfraData_BuscarPorId_Sucesso()
        {
            long idDoEmitenteDaBaseSql = 1;

            Emitente emitenteDaBaseSql = _repositorio.BuscarPorId(idDoEmitenteDaBaseSql);

            emitenteDaBaseSql.Should().NotBeNull();
            emitenteDaBaseSql.CNPJ.Tipo.Should().Be(TipoDocumento.CNPJ);
        }