public void QuandoAtualizoUmaCotacaoDeFreteAsPropriedadesSaoAlteradas()
        {
            ProcessoDeCotacaoDeFrete processo = DefaultObjects.ObtemProcessoDeCotacaoDeFrete();

            Produto         produto         = DefaultObjects.ObtemProdutoPadrao();
            UnidadeDeMedida unidadeDeMedida = DefaultObjects.ObtemUnidadeDeMedidaPadrao();
            Itinerario      itinerario      = DefaultObjects.ObtemItinerarioPadrao();

            var dataLimiteDeRetorno = DateTime.Today.AddDays(15);
            var dataValidadeInicial = DateTime.Today.AddMonths(2);
            var dataValidadeFinal   = DateTime.Today.AddMonths(3);


            processo.Atualizar("requisitos alterados", "1500", dataLimiteDeRetorno,
                               dataValidadeInicial, dataValidadeFinal, itinerario);

            processo.AtualizarItem(produto, 1500, unidadeDeMedida);

            var item = processo.Itens.First();

            //Assert.AreSame(produto, processo.Produto);
            //Assert.AreEqual(1500, processo.Quantidade);
            //Assert.AreSame(unidadeDeMedida, processo.UnidadeDeMedida);
            Assert.AreSame(produto, item.Produto);
            Assert.AreEqual(1500, item.Quantidade);
            Assert.AreSame(unidadeDeMedida, item.UnidadeDeMedida);
            Assert.AreEqual("requisitos alterados", processo.Requisitos);
            Assert.AreEqual("1500", processo.NumeroDoContrato);
            Assert.AreEqual(dataLimiteDeRetorno, processo.DataLimiteDeRetorno);
            Assert.AreEqual(dataValidadeInicial, processo.DataDeValidadeInicial);
            Assert.AreEqual(dataValidadeFinal, processo.DataDeValidadeFinal);
            Assert.AreSame(itinerario, processo.Itinerario);
        }
        public void QuandoCrioUmProcessoDeCotacaoDeFreteAsPropriedadesFicamCorretas()
        {
            Produto         produto             = DefaultObjects.ObtemProdutoPadrao();
            UnidadeDeMedida unidadeDeMedida     = DefaultObjects.ObtemUnidadeDeMedidaPadrao();
            Itinerario      itinerario          = DefaultObjects.ObtemItinerarioPadrao();
            var             dataLimiteDeRetorno = DateTime.Today.AddDays(10);
            var             dataValidadeInicial = DateTime.Today.AddMonths(1);
            var             dataValidadeFinal   = DateTime.Today.AddMonths(2);
            var             processo            = new ProcessoDeCotacaoDeFrete("Requisitos do Processo de Cotação de Fretes",
                                                                               "10001", dataLimiteDeRetorno, dataValidadeInicial, dataValidadeFinal, itinerario);

            processo.AdicionarItem(produto, 100, unidadeDeMedida);

            var item = processo.Itens.First();

            //Assert.AreSame(produto, processo.Produto);
            //Assert.AreEqual(100, processo.Quantidade);
            //Assert.AreSame(unidadeDeMedida, processo.UnidadeDeMedida);
            Assert.AreSame(produto, item.Produto);
            Assert.AreEqual(100, item.Quantidade);
            Assert.AreSame(unidadeDeMedida, item.UnidadeDeMedida);

            Assert.AreEqual("Requisitos do Processo de Cotação de Fretes", processo.Requisitos);
            Assert.AreEqual("10001", processo.NumeroDoContrato);
            Assert.AreEqual(dataLimiteDeRetorno, processo.DataLimiteDeRetorno);
            Assert.AreEqual(dataValidadeInicial, processo.DataDeValidadeInicial);
            Assert.AreEqual(dataValidadeFinal, processo.DataDeValidadeFinal);
            Assert.AreSame(itinerario, processo.Itinerario);
        }
        public void QuandoPersistoUmItinerarioComSucessoConsigoConsultarPosteriormente()
        {
            UnitOfWorkNh.BeginTransaction();
            Itinerario itinerario = DefaultObjects.ObtemItinerarioPadrao();

            UnitOfWorkNh.Session.Save(itinerario);
            UnitOfWorkNh.Commit();
            UnitOfWorkNh.Session.Clear();

            var        itinerarios          = ObjectFactory.GetInstance <IItinerarios>();
            Itinerario itinerarioConsultado = itinerarios.BuscaPeloCodigo(itinerario.Codigo).Single();

            Assert.IsNotNull(itinerarioConsultado);
            Assert.AreEqual(itinerario.Codigo, itinerarioConsultado.Codigo);
            Assert.AreEqual(itinerario.Descricao, itinerarioConsultado.Descricao);
        }
        public void ConsigoCadastrarUmItinerarioComAcentuacaoEspeciaisNaDescricao()
        {
            UnitOfWorkNh.BeginTransaction();
            Itinerario itinerario = DefaultObjects.ObtemItinerarioPadrao();

            itinerario.AtualizaDescricao("RS Rio Grande -> AL Olho D Água Das Flor");
            UnitOfWorkNh.Session.Save(itinerario);
            UnitOfWorkNh.Commit();
            UnitOfWorkNh.Session.Clear();

            var        itinerarios          = ObjectFactory.GetInstance <IItinerarios>();
            Itinerario itinerarioConsultado = itinerarios.BuscaPeloCodigo(itinerario.Codigo).Single();

            Assert.IsNotNull(itinerarioConsultado);
            Assert.AreEqual(itinerario.Codigo, itinerarioConsultado.Codigo);
            Assert.AreEqual(itinerario.Descricao, itinerarioConsultado.Descricao);
        }
        public void QuandoFiltroPorListaDeCodigoTemQueRetornarItinerariosCorrespondenteAosCodigos()
        {
            UnitOfWorkNh.BeginTransaction();
            Itinerario itinerario1 = DefaultObjects.ObtemItinerarioPadrao();
            Itinerario itinerario2 = DefaultObjects.ObtemItinerarioPadrao();
            Itinerario itinerario3 = DefaultObjects.ObtemItinerarioPadrao();

            UnitOfWorkNh.Session.Save(itinerario1);
            UnitOfWorkNh.Session.Save(itinerario2);
            UnitOfWorkNh.Session.Save(itinerario3);
            UnitOfWorkNh.Commit();
            UnitOfWorkNh.Session.Clear();

            var itinerarios = ObjectFactory.GetInstance <IItinerarios>();
            IList <Itinerario> itinerariosConsultados = itinerarios.FiltraPorListaDeCodigos(new[] { itinerario1.Codigo, itinerario2.Codigo }).List();

            Assert.AreEqual(2, itinerariosConsultados.Count);
            Assert.AreEqual(1, itinerariosConsultados.Count(x => x.Codigo == itinerario1.Codigo));
            Assert.AreEqual(1, itinerariosConsultados.Count(x => x.Codigo == itinerario2.Codigo));
        }