예제 #1
0
        public void IniciarTestes()
        {
            _testeProcesso    = InjetorDependencias.InjetorDependencias.ObterInstancia <ITesteProcesso>();
            _contratoProcesso = InjetorDependencias.InjetorDependencias.ObterInstancia <IContratoProcesso>();
            _pedidoProcesso   = InjetorDependencias.InjetorDependencias.ObterInstancia <IPedidoProcesso>();

            _testeProcesso.IniciarTestes();

            _contratoProcesso.InserirContrato(new ContratoDto()
            {
                ContratoId         = 1,
                VolumeDisponivel   = 100,
                DataInicioVigencia = ExtensaoDateTime.DataInicioMesAtual(),
                DataFimVigencia    = ExtensaoDateTime.DataFimMesAtual(),
                Ativo = true
            });

            _pedidoProcesso.InserirPedido(new PedidoDto()
            {
                PedidoId   = 1,
                ContratoId = 1,
                Volume     = 5,
                DataPedido = ExtensaoDateTime.DataAtual(),
                Atendido   = false
            });
        }
예제 #2
0
        public void Teste_ObterContratos_UmContrato()
        {
            _contratoProcesso.InserirContrato(new ContratoDto()
            {
                ContratoId         = 1,
                VolumeDisponivel   = 100,
                DataInicioVigencia = ExtensaoDateTime.DataInicioMesAtual(),
                DataFimVigencia    = ExtensaoDateTime.DataFimMesAtual(),
                Ativo = true
            });

            _pedidoProcesso.InserirPedido(new PedidoDto()
            {
                PedidoId   = 1,
                ContratoId = 1,
                Volume     = 5,
                DataPedido = ExtensaoDateTime.DataAtual(),
                Atendido   = false
            });

            var pedidos = _pedidoProcesso.ObterPedidos(1);

            Assert.AreEqual(1, pedidos.Count);
            Assert.AreEqual(1, pedidos.First().PedidoId);
        }
예제 #3
0
        public void Teste_DeletarPedido_NaoAtendido()
        {
            _pedidoProcesso.InserirPedido(new PedidoDto()
            {
                PedidoId   = 1,
                ContratoId = 1,
                Volume     = 5,
                DataPedido = ExtensaoDateTime.DataAtual(),
                Atendido   = false
            });

            _pedidoProcesso.DeletarPedido(1, 1);

            var pedido = _pedidoProcesso.ObterPedido(1, 1);

            Assert.IsNull(pedido);
        }
예제 #4
0
        public void Erro3001()
        {
            var pedido = new PedidoDto()
            {
                PedidoId   = 1,
                ContratoId = 1,
                Volume     = 0.5f,
                DataPedido = ExtensaoDateTime.DataAtual()
            };

            _pedidoProcesso.InserirPedido(pedido);
        }
예제 #5
0
        public void TesteInserirPedido_Sucesso()
        {
            var contratoId = 1;
            var volume     = 5;
            var dataPedido = DateTime.Now.AddDays(1);

            var contratoOriginal = _contratoProcesso.ObterListaContrato().FirstOrDefault(c => c.ContratoId == contratoId);

            _pedidoProcesso.InserirPedido(new PedidoDto()
            {
                ContratoId = contratoId,
                DataPedido = dataPedido,
                Volume     = volume
            });

            var listaPedidoConsulta = _pedidoProcesso.ObterListaPedidoPorContratoId(contratoId);

            Assert.IsNotNull(listaPedidoConsulta);
            Assert.AreEqual(1, listaPedidoConsulta.Count);
            Assert.AreEqual(volume, listaPedidoConsulta.FirstOrDefault().Volume);
            Assert.AreEqual(dataPedido, listaPedidoConsulta.FirstOrDefault().DataPedido);

            var contratoAposCriacao = _contratoProcesso.ObterListaContrato().FirstOrDefault(c => c.ContratoId == contratoId);

            Assert.AreEqual(contratoOriginal.VolumeDisponivel, contratoAposCriacao.VolumeDisponivel + volume);
        }
예제 #6
0
        public void Erro3006()
        {
            var pedido = new PedidoDto()
            {
                PedidoId   = 1,
                ContratoId = 1,
                Volume     = 999,
                DataPedido = ExtensaoDateTime.DataAtual(),
                Atendido   = false
            };

            _pedidoProcesso.InserirPedido(pedido);
        }
예제 #7
0
 public IHttpActionResult InserirPedido(int contratoId, [FromBody] PedidoDto pedidoDto)
 {
     try
     {
         _pedidoProcesso.InserirPedido(pedidoDto);
         return(Ok());
     }
     catch (ExcecaoRegraNegocio e)
     {
         return(BadRequest(e.Message));
     }
     catch (Exception e)
     {
         return(InternalServerError(e));
     }
 }
예제 #8
0
        public IHttpActionResult InserirPedido(int contratoId, [FromBody] PedidoDto pedido)
        {
            try
            {
                if (pedido.ContratoId != contratoId)
                {
                    return(Conflict());
                }

                var pedidoId = _pedidoProcesso.InserirPedido(pedido);

                return(Created(Request.RequestUri + pedidoId.ToString(), pedidoId));
            }
            catch (RegraNegocioException e)
            {
                return(Content(HttpStatusCode.PreconditionFailed, e.Serializar()));
            }
            catch (Exception e)
            {
                return(InternalServerError(e));
            }
        }