public void QuandoFiltraFornecedoresPorNomeRetornaListaEContabemDeRegistrosCorreta()
        {
            Fornecedor fornecedor1 = DefaultObjects.ObtemFornecedorPadrao();
            Fornecedor fornecedor2 = DefaultObjects.ObtemFornecedorPadrao();
            Fornecedor fornecedor3 = DefaultObjects.ObtemFornecedorPadrao();

            fornecedor2.Atualizar("CARLOS EDUARDO DA SILVA", fornecedor2.Email, "", "", "", false);
            fornecedor3.Atualizar("LUIS EDUARDO SILVA", fornecedor3.Email, "", "", "", false);
            DefaultPersistedObjects.PersistirFornecedor(fornecedor1);
            DefaultPersistedObjects.PersistirFornecedor(fornecedor2);
            DefaultPersistedObjects.PersistirFornecedor(fornecedor3);

            var consultaFornecedor = ObjectFactory.GetInstance <IConsultaFornecedor>();

            var paginacaoVm = new PaginacaoVm()
            {
                Page     = 1,
                PageSize = 10,
                Take     = 10
            };
            var filtro = new FornecedorFiltroVm
            {
                Nome = "eduardo"
            };
            KendoGridVm kendoGridVm = consultaFornecedor.Listar(paginacaoVm, filtro);

            Assert.AreEqual(2, kendoGridVm.QuantidadeDeRegistros);
        }
        public void QuandoFiltraSomenteFornecedoresQueNaoSaoDeTransporteTodosFornecedoresListadosNaoSaoDeTransporte()
        {
            RemoveQueries.RemoverFornecedoresCadastrados();
            Fornecedor naoTransportadora = DefaultObjects.ObtemFornecedorPadrao();
            Fornecedor transportadora    = DefaultObjects.ObtemTransportadoraPadrao();

            DefaultPersistedObjects.PersistirFornecedor(naoTransportadora);
            DefaultPersistedObjects.PersistirFornecedor(transportadora);

            UnitOfWorkNh.Session.Clear();

            var fornecedores = ObjectFactory.GetInstance <IFornecedores>();

            IList <Fornecedor> naoTransportadoras = fornecedores.RemoveTransportadoras().List();

            Assert.AreEqual(1, naoTransportadoras.Count);

            Assert.IsFalse(naoTransportadoras.First().Transportadora);
        }
        public void QuandoFiltraPorNomeRetornaFornecedoresQueContemOTextoNoSeuNome()
        {
            Fornecedor fornecedor1 = DefaultObjects.ObtemFornecedorPadrao();
            Fornecedor fornecedor2 = DefaultObjects.ObtemFornecedorPadrao();
            Fornecedor fornecedor3 = DefaultObjects.ObtemFornecedorPadrao();

            fornecedor2.Atualizar("MAURO SÉRGIO DA COSTA LEAL", fornecedor2.Email, "", "", "", true);
            fornecedor3.Atualizar("ANTONIO COSTA E SILVA", fornecedor3.Email, "", "", "", true);
            DefaultPersistedObjects.PersistirFornecedor(fornecedor1);
            DefaultPersistedObjects.PersistirFornecedor(fornecedor2);
            DefaultPersistedObjects.PersistirFornecedor(fornecedor3);

            UnitOfWorkNh.Session.Clear();

            var fornecedores = ObjectFactory.GetInstance <IFornecedores>();
            IList <Fornecedor> fornecedoresFiltrados = fornecedores.NomeContendo("costa").List();

            Assert.AreEqual(2, fornecedoresFiltrados.Count);
        }
        public void QuandoConsultarFornecedoresNaoVinculadosRetornaListaDeFornecedores()
        {
            RemoveQueries.RemoverFornecedoresCadastrados();
            Produto    produto      = DefaultObjects.ObtemProdutoPadrao();
            Fornecedor fornecedor01 = DefaultObjects.ObtemFornecedorPadrao();
            Fornecedor fornecedor02 = DefaultObjects.ObtemFornecedorPadrao();

            produto.AdicionarFornecedores(new List <Fornecedor> {
                fornecedor01, fornecedor02
            });
            Fornecedor fornecedor03 = DefaultObjects.ObtemFornecedorPadrao();
            Fornecedor fornecedor04 = DefaultObjects.ObtemFornecedorPadrao();

            DefaultPersistedObjects.PersistirProduto(produto);
            DefaultPersistedObjects.PersistirFornecedor(fornecedor03);
            DefaultPersistedObjects.PersistirFornecedor(fornecedor04);

            UnitOfWorkNh.Session.Clear();

            var consultaFornecedores = ObjectFactory.GetInstance <IConsultaFornecedor>();

            var paginacaoVm = new PaginacaoVm()
            {
                Page     = 1,
                PageSize = 10,
                Take     = 10
            };

            var filtro = new FornecedorDoProdutoFiltro()
            {
                CodigoDosProdutos = new[] { produto.Codigo }
            };
            var kendoGridVm = consultaFornecedores.FornecedoresNaoVinculadosAoProduto(paginacaoVm, filtro);

            Assert.AreEqual(2, kendoGridVm.QuantidadeDeRegistros);
            var viewModels = kendoGridVm.Registros.Cast <FornecedorCadastroVm>().ToList();

            Assert.AreEqual(1, viewModels.Count(x => x.Codigo == fornecedor03.Codigo));
            Assert.AreEqual(1, viewModels.Count(x => x.Codigo == fornecedor04.Codigo));
        }
        public void ConsigoAlterarUmFornecedorCadastrado()
        {
            var fornecedor = DefaultObjects.ObtemFornecedorPadrao();

            DefaultPersistedObjects.PersistirFornecedor(fornecedor);

            var fornecedores = ObjectFactory.GetInstance <IFornecedores>();

            UnitOfWorkNh.Session.Clear();
            try
            {
                UnitOfWorkNh.BeginTransaction();

                var fornecedorConsulta = fornecedores.BuscaPeloCodigo(fornecedor.Codigo);
                fornecedorConsulta.Atualizar("FORNECEDOR ALTERADO", "*****@*****.**", "cnpj alterado", "municipio alterado", "uf", false);
                fornecedores.Save(fornecedorConsulta);

                UnitOfWorkNh.Commit();
            }
            catch (Exception)
            {
                UnitOfWorkNh.RollBack();
                throw;
            }

            UnitOfWorkNh.Session.Clear();

            var fornecedorConsultaAtualizacao = fornecedores.BuscaPeloCodigo(fornecedor.Codigo);

            Assert.AreEqual(fornecedor.Codigo, fornecedorConsultaAtualizacao.Codigo);
            Assert.AreEqual("FORNECEDOR ALTERADO", fornecedorConsultaAtualizacao.Nome);
            Assert.AreEqual("*****@*****.**", fornecedorConsultaAtualizacao.Email);
            Assert.AreEqual("cnpj alterado", fornecedorConsultaAtualizacao.Cnpj);
            Assert.AreEqual("municipio alterado", fornecedorConsultaAtualizacao.Municipio);
            Assert.AreEqual("uf", fornecedorConsultaAtualizacao.Uf);
        }