Esempio n. 1
0
        [InlineData()]         //Retorna 3 tabelas
        public void TestQTDAMENOR()
        {
            FiltroPedidoDomain filtro = new FiltroPedidoDomain();

            filtro.pedido         = "123456";
            filtro.status         = "APROVADO";
            filtro.valorAprovado  = 20;
            filtro.itensAprovados = 2;

            PedidoDomain pedido = new PedidoDomain();
            ItemDomain   item   = new ItemDomain();

            pedido.itens  = new List <ItemDomain>();
            pedido.pedido = "123456";

            item.descricao     = "Item A";
            item.precoUnitario = 10;
            item.qtd           = 1;
            pedido.itens.Add(item);
            item               = new ItemDomain();
            item.descricao     = "Item B";
            item.precoUnitario = 5;
            item.qtd           = 2;
            pedido.itens.Add(item);

            var domain  = provider.GetService <ISelecionarStatusDomain>();
            var retorno = domain.RegraStatus(pedido, filtro);

            Assert.Equal("APROVADO_QTD_A_MENOR", retorno.status.First().status);
        }
Esempio n. 2
0
        public void TestPEDIDOINVALIDO(FiltroPedidoDomain filtro, PedidoDomain pedido)
        {
            var domain  = provider.GetService <ISelecionarStatusDomain>();
            var retorno = domain.RegraStatus(pedido, filtro);

            Assert.Equal("CODIGO_PEDIDO_INVALIDO", retorno.status.First().status);
        }
        public PedidoDomain Execute(FiltroPedidoDomain filtro)
        {
            PedidoDomain           pedido       = new PedidoDomain();
            SelecionarPedidoDomain domainPedido = new SelecionarPedidoDomain();

            pedido = domainPedido.Execute(filtro.pedido);
            return(this.RegraStatus(pedido, filtro));
        }
        private static FiltroPedidoDomain ConvertToModelView(vmFiltroPedido v)
        {
            var item = new FiltroPedidoDomain
            {
                pedido         = v.pedido,
                itensAprovados = v.itensAprovados,
                status         = v.status,
                valorAprovado  = v.valorAprovado,
            };

            return(item);
        }
Esempio n. 5
0
            public IEnumerator <object[]> GetEnumerator()
            {
                //Invalido
                FiltroPedidoDomain filtroPedidoInvalido = new FiltroPedidoDomain();

                filtroPedidoInvalido.pedido         = "123456";
                filtroPedidoInvalido.status         = "APROVADO";
                filtroPedidoInvalido.valorAprovado  = 0;
                filtroPedidoInvalido.itensAprovados = 0;
                PedidoDomain pedidoInvalido = new PedidoDomain();



                yield return(new object[] { filtroPedidoInvalido, pedidoInvalido });
            }
        public PedidoDomain RegraStatus(PedidoDomain pedido, FiltroPedidoDomain filtro)
        {
            PedidoDomain retorno = new PedidoDomain();

            retorno.status = new List <StatusDomain>();
            StatusDomain status;
            int          qtdItens   = 0;
            decimal      valorTotal = 0;

            retorno.pedido = pedido.pedido;

            if (pedido.pedido == null)
            {
                status        = new StatusDomain();
                status.status = "CODIGO_PEDIDO_INVALIDO";
                retorno.status.Add(status);
                return(retorno);
            }

            foreach (var item in pedido.itens)
            {
                qtdItens   = qtdItens + item.qtd;
                valorTotal = valorTotal + (item.qtd * item.precoUnitario);
            }

            if (filtro.status == "REPROVADO" || qtdItens == 0 && valorTotal == 0)
            {
                status        = new StatusDomain();
                status.status = "REPROVADO";
                retorno.status.Add(status);
                return(retorno);
            }

            if (filtro.itensAprovados == qtdItens && filtro.valorAprovado == valorTotal &&
                filtro.status == "APROVADO")
            {
                status        = new StatusDomain();
                status.status = "APROVADO";
                retorno.status.Add(status);
            }

            if (filtro.valorAprovado < valorTotal && filtro.status == "APROVADO")
            {
                status        = new StatusDomain();
                status.status = "APROVADO_VALOR_A_MENOR";
                retorno.status.Add(status);
            }

            if (filtro.itensAprovados < qtdItens && filtro.status == "APROVADO")
            {
                status        = new StatusDomain();
                status.status = "APROVADO_QTD_A_MENOR";
                retorno.status.Add(status);
            }

            if (filtro.valorAprovado > valorTotal && filtro.status == "APROVADO")
            {
                status        = new StatusDomain();
                status.status = "APROVADO_VALOR_A_MAIOR";
                retorno.status.Add(status);
            }

            if (filtro.itensAprovados > qtdItens && filtro.status == "APROVADO")
            {
                status        = new StatusDomain();
                status.status = "APROVADO_QTD_A_MAIOR";
                retorno.status.Add(status);
            }



            return(retorno);
        }