public void QuandoInformarMaisDeUmAgendamentoDeDescarregamentoNaoRealizadoParaMesmaPlacaDeveGerarExcecao()
        {
            Quota quota = DefaultObjects.ObtemQuotaDeDescarregamento();

            quota.InformarAgendamento(new AgendamentoDeDescarregamentoSalvarVm()
            {
                IdQuota       = quota.Id,
                IdAgendamento = 0,
                Placa         = "IMN2420",
                NotasFiscais  = new List <NotaFiscalVm>
                {
                    DefaultObjects.ObtemNotaFiscalVmComPesoEspecifico(50),
                    DefaultObjects.ObtemNotaFiscalVmComPesoEspecifico(51)
                }
            });

            quota.InformarAgendamento(new AgendamentoDeDescarregamentoSalvarVm()
            {
                IdQuota       = quota.Id,
                IdAgendamento = 0,
                Placa         = "IMn2420",
                NotasFiscais  = new List <NotaFiscalVm>
                {
                    DefaultObjects.ObtemNotaFiscalVmComPesoEspecifico(52),
                    DefaultObjects.ObtemNotaFiscalVmComPesoEspecifico(53)
                }
            });
        }
        public void PermiteAdicionarUmSegundoAgendamentoDeDescarregamentoParaMesmaPlacaSeOPrimeiroEstiverRealizado()
        {
            Quota quota = DefaultObjects.ObtemQuotaDeDescarregamento();
            AgendamentoDeDescarregamento agendamentoDeDescarregamento = quota.InformarAgendamento(new AgendamentoDeDescarregamentoSalvarVm()
            {
                IdQuota       = quota.Id,
                IdAgendamento = 0,
                Placa         = "IMN2420",
                NotasFiscais  = new List <NotaFiscalVm>
                {
                    DefaultObjects.ObtemNotaFiscalVmComPesoEspecifico(50),
                    DefaultObjects.ObtemNotaFiscalVmComPesoEspecifico(51)
                }
            });

            agendamentoDeDescarregamento.Realizar();

            quota.InformarAgendamento(new AgendamentoDeDescarregamentoSalvarVm()
            {
                IdQuota       = quota.Id,
                IdAgendamento = 0,
                Placa         = "IMN2420",
                NotasFiscais  = new List <NotaFiscalVm>
                {
                    DefaultObjects.ObtemNotaFiscalVmComPesoEspecifico(52),
                    DefaultObjects.ObtemNotaFiscalVmComPesoEspecifico(53)
                }
            });

            Assert.AreEqual(2, quota.Agendamentos.Count);
            Assert.AreEqual(2, quota.Agendamentos.Count(x => x.Placa == "IMN2420"));
        }
        public void QuandoPesoAgendadoSuperiorPesoDaQuotaDeveDispararExcecao()
        {
            //peso total é 850
            Quota quota = DefaultObjects.ObtemQuotaDeDescarregamento();

            quota.InformarAgendamento(new AgendamentoDeDescarregamentoSalvarVm()
            {
                IdQuota       = quota.Id,
                IdAgendamento = 0,
                Placa         = "IMN2420",
                NotasFiscais  = new List <NotaFiscalVm>
                {
                    DefaultObjects.ObtemNotaFiscalVmComPesoEspecifico(450),
                    DefaultObjects.ObtemNotaFiscalVmComPesoEspecifico(401)
                }
            });
        }
        public void QuandoAdicionoAgendamentosCalculaOPesoAgendadoCorretamente()
        {
            //peso total é 850
            Quota quota = DefaultObjects.ObtemQuotaDeDescarregamento();

            quota.InformarAgendamento(new AgendamentoDeDescarregamentoSalvarVm()
            {
                IdQuota       = quota.Id,
                IdAgendamento = 0,
                Placa         = "IMN2420",
                NotasFiscais  = new List <NotaFiscalVm>
                {
                    DefaultObjects.ObtemNotaFiscalVmComPesoEspecifico(180),
                    DefaultObjects.ObtemNotaFiscalVmComPesoEspecifico(230)
                }
            });
            Assert.AreEqual(410, quota.PesoAgendado);
        }