public void QuandoUsuarioNaoPossuirPerfilDeAgendadorDeCargasNaoPermiteEditar()
        {
            AgendamentoDeCarga agendamento = DefaultObjects.ObtemAgendamentoDeCarregamentoComPesoEspecifico(
                DefaultObjects.ObtemQuotaDeCarregamentoComDataEspecifica(DateTime.Today.AddDays(1)), 100);

            Usuario usuario = DefaultObjects.ObtemUsuarioPadrao();

            var verificaSePodeEditarAgendamento = ObjectFactory.GetInstance <IVerificaPermissaoAgendamento>();

            Assert.IsFalse(verificaSePodeEditarAgendamento.PermiteEditar(agendamento, usuario));
        }
        public void QuandoUsuarioPossuirPerfilDeAgendadorDeCargaADataForMenorQueADataDoAgendamentoEoAgendamentoNaoEstiverRealizadoPermiteEditar()
        {
            AgendamentoDeCarga agendamento = DefaultObjects.ObtemAgendamentoDeCarregamentoComPesoEspecifico(
                DefaultObjects.ObtemQuotaDeCarregamentoComDataEspecifica(DateTime.Today.AddDays(1)), 100);

            Usuario usuario = DefaultObjects.ObtemUsuarioPadrao();

            usuario.AdicionarPerfil(Enumeradores.Perfil.AgendadorDeCargas);

            var verificaSePodeEditarAgendamento = ObjectFactory.GetInstance <IVerificaPermissaoAgendamento>();

            Assert.IsTrue(verificaSePodeEditarAgendamento.PermiteEditar(agendamento, usuario));
        }
        public void QuandoDataDoAgendamentoNaoForPosteriorADataAtualNaoPermiteEditar()
        {
            AgendamentoDeCarga agendamento = DefaultObjects.ObtemAgendamentoDeCarregamentoComPesoEspecifico(
                DefaultObjects.ObtemQuotaDeCarregamentoComDataEspecifica(DateTime.Today), 100);

            Usuario usuario = DefaultObjects.ObtemUsuarioPadrao();

            usuario.AdicionarPerfil(Enumeradores.Perfil.AgendadorDeCargas);

            var verificaSePodeEditarAgendamento = ObjectFactory.GetInstance <IVerificaPermissaoAgendamento>();

            Assert.IsFalse(verificaSePodeEditarAgendamento.PermiteEditar(agendamento, usuario));
        }
        public void QuandoAgendamentoJaEstiverRealizadoNaoPermiteRealizarNovamente()
        {
            AgendamentoDeCarga agendamento = DefaultObjects.ObtemAgendamentoDeCarregamentoComPesoEspecifico(
                DefaultObjects.ObtemQuotaDeCarregamentoComDataEspecifica(DateTime.Today.AddDays(1)), 100);

            agendamento.Realizar();
            Usuario usuario = DefaultObjects.ObtemUsuarioPadrao();

            usuario.AdicionarPerfil(Enumeradores.Perfil.ConferidorDeCargas);

            var verificaSePodeEditarAgendamento = ObjectFactory.GetInstance <IVerificaPermissaoAgendamento>();

            Assert.IsFalse(verificaSePodeEditarAgendamento.PermiteRealizar(agendamento, usuario));
        }