public void QuandoConsultaCotacaoDeFornecedoresQueNaoInformaramCotacaoRetornaDadosEsperados()
        {
            ProcessoDeCotacaoDeFrete processo = DefaultObjects.ObtemProcessoDeCotacaoDeFreteComFornecedor();

            DefaultPersistedObjects.PersistirProcessoDeCotacaoDeFrete(processo);

            FornecedorParticipante fornecedorParticipante = processo.FornecedoresParticipantes.Single();
            Fornecedor             fornecedor             = fornecedorParticipante.Fornecedor;


            var consulta = ObjectFactory.GetInstance <IConsultaProcessoDeCotacaoDeFrete>();

            IList <CotacaoSelecionarVm> cotacoes = consulta.CotacoesDosFornecedores(processo.Id);

            Assert.AreEqual(1, cotacoes.Count);
            var cotacaoSelecionarVm = cotacoes.Single();

            Assert.AreEqual(fornecedor.Cnpj, cotacaoSelecionarVm.Cnpj);
            Assert.AreEqual(fornecedor.Nome, cotacaoSelecionarVm.Fornecedor);
            Assert.AreEqual(fornecedor.Codigo, cotacaoSelecionarVm.CodigoFornecedor);
            Assert.AreEqual(0, cotacaoSelecionarVm.IdCotacao);
            Assert.AreEqual(0, cotacaoSelecionarVm.IdProcessoCotacaoItem);
            Assert.IsFalse(cotacaoSelecionarVm.Selecionada);
            Assert.IsNull(cotacaoSelecionarVm.QuantidadeAdquirida);
            Assert.IsNull(cotacaoSelecionarVm.QuantidadeDisponivel);
            Assert.IsNull(cotacaoSelecionarVm.ValorComImpostos);
            Assert.IsNull(cotacaoSelecionarVm.ObservacaoDoFornecedor);
        }
        public void QuandoConsultaCotacaoResumidaAntesDoFornecedorInformarCotacaoRetornaObjetoEsperado()
        {
            ProcessoDeCotacaoDeFrete processoDeCotacao    = DefaultObjects.ObtemProcessoDeCotacaoDeFrete();
            Fornecedor             fornecedor             = DefaultObjects.ObtemFornecedorPadrao();
            FornecedorParticipante fornecedorParticipante = processoDeCotacao.AdicionarFornecedor(fornecedor);

            DefaultPersistedObjects.PersistirProcessoDeCotacaoDeFrete(processoDeCotacao);

            UnitOfWorkNh.Session.Clear();

            var         consultaProcesso = ObjectFactory.GetInstance <IConsultaProcessoDeCotacaoDeMaterial>();
            KendoGridVm kendoGridVm      = consultaProcesso.CotacoesDosFornecedoresResumido(processoDeCotacao.Id);

            Assert.AreEqual(1, kendoGridVm.QuantidadeDeRegistros);
            var processoCotacaoFornecedorVm = (ProcessoCotacaoFornecedorVm)kendoGridVm.Registros.First();

            Assert.AreEqual(fornecedorParticipante.Id, processoCotacaoFornecedorVm.IdFornecedorParticipante);
            Assert.AreEqual(fornecedor.Codigo, processoCotacaoFornecedorVm.Codigo);
            Assert.AreEqual(fornecedor.Nome, processoCotacaoFornecedorVm.Nome);
            Assert.AreEqual("Não", processoCotacaoFornecedorVm.Selecionado);
            Assert.IsNull(processoCotacaoFornecedorVm.ValorLiquido);
            Assert.IsNull(processoCotacaoFornecedorVm.ValorComImpostos);
            Assert.IsNull(processoCotacaoFornecedorVm.QuantidadeDisponivel);
            Assert.AreEqual("Não", processoCotacaoFornecedorVm.VisualizadoPeloFornecedor);
        }
        public void ConsigoConsultarOsDadosDeUmProcesso()
        {
            ProcessoDeCotacaoDeFrete processo = DefaultObjects.ObtemProcessoDeCotacaoDeFrete();

            DefaultPersistedObjects.PersistirProcessoDeCotacaoDeFrete(processo);

            var consulta = ObjectFactory.GetInstance <IConsultaProcessoDeCotacaoDeFrete>();

            ProcessoCotacaoFreteCadastroVm viewModel = consulta.ConsultaProcesso(processo.Id);

            Assert.IsNotNull(viewModel);
        }
        public void ConsigoPersistirUmProcessoDeCotacaoDeFreteEConsultarPosteriormente()
        {
            ProcessoDeCotacaoDeFrete processo = DefaultObjects.ObtemProcessoDeCotacaoDeFrete();

            DefaultPersistedObjects.PersistirProcessoDeCotacaoDeFrete(processo);

            UnitOfWorkNh.Session.Clear();

            var processosDeCotacao = ObjectFactory.GetInstance <IProcessosDeCotacao>();
            ProcessoDeCotacao processoConsultado = processosDeCotacao.BuscaPorId(processo.Id).Single();

            Assert.IsNotNull(processoConsultado);
            Assert.AreEqual(1, processoConsultado.Itens.Count);
        }
        public void RepositorioDoProcessoDeCotacaoDeMateriasContemApenasProcessosDeCotacaoDeMaterial()
        {
            RemoveQueries.RemoverProcessosDeCotacaoCadastrados();
            //crio dois processos de cotação (um de frete e um de materiais) e persisto
            ProcessoDeCotacaoDeMaterial processoDeCotacaoDeMaterial = DefaultObjects.ObtemProcessoDeCotacaoDeMaterialNaoIniciado();
            ProcessoDeCotacaoDeFrete    processoDeCotacaoDeFrete    = DefaultObjects.ObtemProcessoDeCotacaoDeFrete();

            DefaultPersistedObjects.PersistirProcessoDeCotacaoDeMaterial(processoDeCotacaoDeMaterial);
            DefaultPersistedObjects.PersistirProcessoDeCotacaoDeFrete(processoDeCotacaoDeFrete);

            //listo todos os processsos do repositório: deve retornar apenas o processo de cotação de  material
            var processosDeCotacaoDeMaterias = ObjectFactory.GetInstance <IProcessosDeCotacaoDeMaterial>();
            var todosProcessos = processosDeCotacaoDeMaterias.List();

            Assert.AreEqual(1, todosProcessos.Count);
            Assert.IsInstanceOfType(todosProcessos.Single(), typeof(ProcessoDeCotacaoDeMaterial));
        }
        public void QuandoConsultaCotacaoResumidaAposFornecedorInformarCotacaoRetornaObjetoEsperado()
        {
            ProcessoDeCotacaoDeFrete processoDeCotacao      = DefaultObjects.ObtemProcessoDeCotacaoDeFreteComCotacaoSelecionada();
            FornecedorParticipante   fornecedorParticipante = processoDeCotacao.FornecedoresParticipantes.First();
            Fornecedor fornecedor = fornecedorParticipante.Fornecedor;

            DefaultPersistedObjects.PersistirProcessoDeCotacaoDeFrete(processoDeCotacao);

            var         consultaProcesso = ObjectFactory.GetInstance <IConsultaProcessoDeCotacaoDeMaterial>();
            KendoGridVm kendoGridVm      = consultaProcesso.CotacoesDosFornecedoresResumido(processoDeCotacao.Id);

            Assert.AreEqual(1, kendoGridVm.QuantidadeDeRegistros);
            var processoCotacaoFornecedorVm = (ProcessoCotacaoFornecedorVm)kendoGridVm.Registros.First();

            Assert.AreEqual(fornecedorParticipante.Id, processoCotacaoFornecedorVm.IdFornecedorParticipante);
            Assert.AreEqual(fornecedor.Codigo, processoCotacaoFornecedorVm.Codigo);
            Assert.AreEqual(fornecedor.Nome, processoCotacaoFornecedorVm.Nome);
            Assert.AreEqual("Sim", processoCotacaoFornecedorVm.Selecionado);
            Assert.AreEqual("Não", processoCotacaoFornecedorVm.VisualizadoPeloFornecedor);
        }
        public void FiltrarUmProcessoDeCotacaoPorDescricaoDoProdutoRetornaProcessoEsperado()
        {
            RemoveQueries.RemoverProcessosDeCotacaoCadastrados();

            Produto produto1 = DefaultObjects.ObtemProdutoPadrao();
            ProcessoDeCotacaoDeFrete processoDeCotacao1 = DefaultObjects.ObtemProcessoDeCotacaoDeFreteComProdutoEspecifico(produto1);
            Produto produto2 = DefaultObjects.ObtemProdutoPadrao();
            ProcessoDeCotacaoDeFrete processoDeCotacao2 = DefaultObjects.ObtemProcessoDeCotacaoDeFreteComProdutoEspecifico(produto2);

            DefaultPersistedObjects.PersistirProcessoDeCotacaoDeFrete(processoDeCotacao1);
            DefaultPersistedObjects.PersistirProcessoDeCotacaoDeFrete(processoDeCotacao2);

            UnitOfWorkNh.Session.Clear();

            var processosDeCotacao = ObjectFactory.GetInstance <IProcessosDeCotacao>();
            IList <ProcessoDeCotacao> processosConsultados = processosDeCotacao.DescricaoDoProdutoContendo(produto2.Descricao).List();

            Assert.AreEqual(1, processosConsultados.Count());
            Assert.AreEqual(produto2.Descricao, processosConsultados.First().Itens.First().Produto.Descricao);
        }
        public void ConsigoPersistirEConsultarUmProcessoDeCotacaoComCotacoes()
        {
            ProcessoDeCotacaoDeFrete processo = DefaultObjects.ObtemProcessoDeCotacaoDeFrete();

            Fornecedor fornecedor = DefaultObjects.ObtemFornecedorPadrao();

            processo.AdicionarFornecedor(fornecedor);

            processo.Abrir(DefaultObjects.ObtemUsuarioPadrao());
            processo.InformarCotacao(fornecedor.Codigo, 120, 100, "obs fornec");

            DefaultPersistedObjects.PersistirProcessoDeCotacaoDeFrete(processo);

            UnitOfWorkNh.Session.Clear();

            var processosDeCotacaoDeMaterial = ObjectFactory.GetInstance <IProcessosDeCotacao>();

            Console.WriteLine("Consultando Cotacao - INICIO");
            var processoConsultado = (ProcessoDeCotacaoDeFrete)processosDeCotacaoDeMaterial.BuscaPorId(processo.Id).Single();

            Assert.AreEqual(processo.FornecedoresParticipantes.Count(x => x.Cotacao != null), processoConsultado.FornecedoresParticipantes.Count(x => x.Cotacao != null));
            Console.WriteLine("Consultando Cotacao - FIM");
        }
        public void ConsigoConsultarCotacaoResumidaDosFornecedoresDeUmProcessoDeCotacaoDeFrete()
        {
            ProcessoDeCotacaoDeFrete processo = DefaultObjects.ObtemProcessoDeCotacaoDeFreteComCotacaoNaoSelecionada();

            DefaultPersistedObjects.PersistirProcessoDeCotacaoDeFrete(processo);
            FornecedorParticipante fornecedorParticipante = processo.FornecedoresParticipantes.Single();
            Fornecedor             fornecedor             = fornecedorParticipante.Fornecedor;
            CotacaoItem            cotacaoItem            = fornecedorParticipante.Cotacao.Itens.Single();

            var         consulta    = ObjectFactory.GetInstance <IConsultaProcessoDeCotacaoDeFrete>();
            KendoGridVm kendoGridVm = consulta.CotacoesDosFornecedoresResumido(processo.Id);

            Assert.AreEqual(1, kendoGridVm.QuantidadeDeRegistros);
            ProcessoCotacaoFornecedorVm vm = kendoGridVm.Registros.Cast <ProcessoCotacaoFornecedorVm>().Single();

            Assert.AreEqual(fornecedor.Codigo, vm.Codigo);
            Assert.AreEqual(fornecedor.Nome, vm.Nome);
            Assert.AreEqual(fornecedorParticipante.Id, vm.IdFornecedorParticipante);
            Assert.AreEqual(cotacaoItem.QuantidadeDisponivel, vm.QuantidadeDisponivel);
            Assert.AreEqual("Não", vm.Selecionado);
            Assert.AreEqual(cotacaoItem.ValorComImpostos, vm.ValorComImpostos);
            Assert.AreEqual(cotacaoItem.Preco, vm.ValorLiquido);
        }