public void QuandoInformarNotaParaUmAgendamentoDeCarregamentoDeveGerarExcecao()
        {
            Quota quota   = DefaultObjects.ObtemQuotaDeCarregamento();
            var   factory = new AgendamentoDeCarregamentoFactory(150);

            factory.AdicionarNotaFiscal(DefaultObjects.ObtemNotaFiscalVmPadrao());
            factory.Construir(quota, "IOQ5335");
        }
        public void QuandoCrioUmAgendamentoAsPropriedadesFicamCorretas()
        {
            Quota quota   = DefaultObjects.ObtemQuotaDeDescarregamento();
            var   factory = new AgendamentoDeDescarregamentoFactory();

            factory.AdicionarNotaFiscal(DefaultObjects.ObtemNotaFiscalVmPadrao());
            var agendamento = (AgendamentoDeDescarregamento)factory.Construir(quota, "IOQ5338");

            Assert.AreEqual(DateTime.Today.AddDays(1), agendamento.Quota.Data);
            Assert.AreEqual("1000", agendamento.Quota.CodigoTerminal);
            Assert.AreEqual("IOQ5338", agendamento.Placa);
            Assert.AreEqual(1, agendamento.NotasFiscais.Count);
        }
        public void QuandoTentoRealizarUmAgendamentoQueJaFoiRealizadoGeraExcecao()
        {
            Quota quota = DefaultObjects.ObtemQuotaDeDescarregamento();

            quota.InformarAgendamento(new AgendamentoDeDescarregamentoSalvarVm
            {
                IdQuota      = quota.Id,
                Placa        = "IOQ5338",
                NotasFiscais = new List <NotaFiscalVm>
                {
                    DefaultObjects.ObtemNotaFiscalVmPadrao()
                }
            });

            quota.RealizarAgendamento(0);
            quota.RealizarAgendamento(0);
        }
        public void PesoTotalDoDescarregamentoEaSomaDosPesosDasNotas()
        {
            Quota        quota   = DefaultObjects.ObtemQuotaDeDescarregamento();
            var          factory = new AgendamentoDeDescarregamentoFactory();
            NotaFiscalVm nota1   = DefaultObjects.ObtemNotaFiscalVmPadrao();

            nota1.Peso = 120;
            NotaFiscalVm nota2 = DefaultObjects.ObtemNotaFiscalVmPadrao();

            nota2.Peso = 140;

            factory.AdicionarNotaFiscal(nota1);
            factory.AdicionarNotaFiscal(nota2);
            var agendamento = (AgendamentoDeDescarregamento)factory.Construir(quota, "IOQ5338");

            Assert.AreEqual(260, agendamento.PesoTotal);
        }
        public void QuandoRealizoUmAgendamentoFicaRealizado()
        {
            Quota quota = DefaultObjects.ObtemQuotaDeDescarregamento();

            quota.InformarAgendamento(new AgendamentoDeDescarregamentoSalvarVm
            {
                IdQuota      = quota.Id,
                Placa        = "IOQ5338",
                NotasFiscais = new List <NotaFiscalVm>
                {
                    DefaultObjects.ObtemNotaFiscalVmPadrao()
                }
            });

            quota.RealizarAgendamento(0);

            Assert.IsTrue(quota.Agendamentos.First().Realizado);
        }
        public void QuandoRealizaUmAgendamentoPesoDoAgendamentoESomadoNoPesoRealizadoDaQuota()
        {
            Quota quota = DefaultObjects.ObtemQuotaDeDescarregamento();

            quota.InformarAgendamento(new AgendamentoDeDescarregamentoSalvarVm
            {
                IdQuota      = quota.Id,
                Placa        = "IOQ5338",
                NotasFiscais = new List <NotaFiscalVm>
                {
                    DefaultObjects.ObtemNotaFiscalVmPadrao()
                }
            });

            Assert.AreEqual(0, quota.PesoRealizado);
            quota.RealizarAgendamento(0);
            Assert.AreEqual(50, quota.PesoRealizado);
        }