Esempio n. 1
0
        public void QuandoConsultarFornecedoresDoProdutoRetornaListaDeViewModels()
        {
            //preparando o cenários

            Fornecedor fornecedor01 = DefaultObjects.ObtemFornecedorPadrao();
            Fornecedor fornecedor02 = DefaultObjects.ObtemFornecedorPadrao();
            Produto    produto      = DefaultObjects.ObtemProdutoPadrao();

            produto.AdicionarFornecedores(new List <Fornecedor>()
            {
                fornecedor01, fornecedor02
            });

            DefaultPersistedObjects.PersistirProduto(produto);

            var consultaProduto = ObjectFactory.GetInstance <IConsultaProduto>();

            var paginacaoVm = new PaginacaoVm
            {
                Page     = 1,
                PageSize = 10,
                Take     = 10
            };
            var kendoGridVm = consultaProduto.FornecedoresDoProduto(paginacaoVm, produto.Codigo);

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

            Assert.AreEqual(1, viewModels.Count(x => x.Codigo == fornecedor01.Codigo));
            Assert.AreEqual(1, viewModels.Count(x => x.Codigo == fornecedor02.Codigo));
        }
Esempio n. 2
0
        public void QuandoConsultaForneceedoresDeVariosProdutosRetornaListaDeTodosOFornecedoresVinculadosAosProdutosSemRepetir()
        {
            //cenário: dois produtos, três fornecedores distintos. Sendo que um dos fornecedores está vinculado a ambos produtos.
            //Os outros dois fornecedores, cada um está vinculado a um produto.
            //Deve retornar uma lista com 3 fornecedores, sem repetir o fornecedor que está compartilhado com os dois produtos.
            Produto produto1 = DefaultObjects.ObtemProdutoPadrao();
            Produto produto2 = DefaultObjects.ObtemProdutoPadrao();

            Fornecedor fornecedor1             = DefaultObjects.ObtemFornecedorPadrao();
            Fornecedor fornecedor2             = DefaultObjects.ObtemFornecedorPadrao();
            Fornecedor fornecedorCompartilhado = DefaultObjects.ObtemFornecedorPadrao();

            produto1.AdicionarFornecedores(new List <Fornecedor> {
                fornecedor1, fornecedorCompartilhado
            });
            produto2.AdicionarFornecedores(new List <Fornecedor> {
                fornecedor2, fornecedorCompartilhado
            });

            DefaultPersistedObjects.PersistirProduto(produto1);
            DefaultPersistedObjects.PersistirProduto(produto2);

            var         consultaProduto = ObjectFactory.GetInstance <IConsultaProduto>();
            PaginacaoVm paginacaoVm     = DefaultObjects.ObtemPaginacaoDefault();

            KendoGridVm kendoGridVm = consultaProduto.FornecedoresDosProdutos(paginacaoVm, new [] { produto1.Codigo, produto2.Codigo });

            Assert.AreEqual(3, kendoGridVm.QuantidadeDeRegistros);

            IList <FornecedorCadastroVm> registros = kendoGridVm.Registros.Cast <FornecedorCadastroVm>().ToList();

            Assert.IsTrue(registros.Any(x => x.Codigo == fornecedor1.Codigo));
            Assert.IsTrue(registros.Any(x => x.Codigo == fornecedor2.Codigo));
            Assert.IsTrue(registros.Any(x => x.Codigo == fornecedorCompartilhado.Codigo));
        }
        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 QuandoConsultaFornecedoresNaoVinculadosAUmaListaDeProdutosNenhumDosFornecedoresRetornadosEstaVinculadoAAlgumProdutoDaLista()
        {
            RemoveQueries.RemoverProdutosCadastrados();
            RemoveQueries.RemoverFornecedoresCadastrados();
            //cenário:
            //três fornecedores e três produtos: Os fornecedores 1 e 2 estão ligados aos produtos 1 e 2. Já o fornecedor 3 está ligado ao produto 3 .
            //vou passsar na lista de produtos, apenas os produtos 1 e 2. Deve retornar na lista de fornecedores apenas o fornecedor 3, que embora
            //esteja ligado ao produto 3, não está ligado a nenhum dos produtos da lista (1, 2).
            Produto produto1 = DefaultObjects.ObtemProdutoPadrao();
            Produto produto2 = DefaultObjects.ObtemProdutoPadrao();
            Produto produto3 = DefaultObjects.ObtemProdutoPadrao();

            Fornecedor fornecedor1 = DefaultObjects.ObtemFornecedorPadrao();
            Fornecedor fornecedor2 = DefaultObjects.ObtemFornecedorPadrao();
            Fornecedor fornecedor3 = DefaultObjects.ObtemFornecedorPadrao();

            produto1.AdicionarFornecedores(new List <Fornecedor> {
                fornecedor1
            });
            produto2.AdicionarFornecedores(new List <Fornecedor> {
                fornecedor2
            });
            produto3.AdicionarFornecedores(new List <Fornecedor> {
                fornecedor3
            });

            DefaultPersistedObjects.PersistirProduto(produto1);
            DefaultPersistedObjects.PersistirProduto(produto2);
            DefaultPersistedObjects.PersistirProduto(produto3);

            var fornecedores = ObjectFactory.GetInstance <IFornecedores>();
            IList <Fornecedor> fornecedoresNaoVinculados =
                fornecedores.FornecedoresNaoVinculadosAosProdutos(new[] { produto1.Codigo, produto2.Codigo }).List();

            Assert.AreEqual(1, fornecedoresNaoVinculados.Count);
            Assert.IsTrue(fornecedoresNaoVinculados.Any(x => x.Codigo == fornecedor3.Codigo));
        }