public void CodigoClienteNaoExistente()
        {
            var request = new HabilitarProdutoRequest();
            request.FaixasTaxaSegmentado = new List<HabilitarProdutoFaixaTaxaSegmentadoDTO>();

            var FaixaTaxaSegmentado = new HabilitarProdutoFaixaTaxaSegmentadoDTO()
            {
                PercentualTaxaFaixa = 1.5d,
                NumeroInicialParcelaFaixa = "1",
                NumeroFinalParcelaFaixa= "4",
                CodigoFaixa = "089",
            };

            request.Protocolo = "101010";
            request.CodigoCliente = -1;
            request.CodigoProduto = "008";
            request.QuantidadeParcelas = "3";
            request.PercentualTaxa = 1.5m;
            request.NomeSolicitante = "Felipe";
            request.Origem = "CRM";
            request.TelefoneSolicitante = "99999000";
            request.CodigoEmpresa = "002";

            request.FaixasTaxaSegmentado.Add(FaixaTaxaSegmentado);


            var business = new HabilitarProdutoBL();

            var response = business.Execute(request);

            Assert.IsNotNull(response);
            Assert.IsFalse(response.Status == Foundation.ExecutionStatus.Success);
            Assert.AreEqual("9999", response.ErrorCode);
            Assert.AreEqual("RECORD NOT FOUND", response.ErrorMessage);
        }
        public void Success_TaxaDeParcelas()
        {
            var requestData = new HabilitarProdutoRequest
            {
                Protocolo = "123456",
                CodigoCliente = 1000020140,
                CodigoProduto = "43",
                QuantidadeParcelas = "12",
                PercentualTaxa = 1.99M,
                NomeSolicitante = "SOLICITANTE",
                Origem = "CRM",
                TelefoneSolicitante = "99999-9999",
                CodigoEmpresa = "1",
                FaixasTaxaSegmentado = new List<HabilitarProdutoFaixaTaxaSegmentadoDTO>
                {
                    new HabilitarProdutoFaixaTaxaSegmentadoDTO
                    {
                        CodigoFaixa = "0",
                        NumeroFinalParcelaFaixa = "0",
                        NumeroInicialParcelaFaixa = "0",
                        PercentualTaxaFaixa = 0
                    }
                }
            };
            var dao = DAOFactory.GetDAO<HabilitarProdutoDAO, HabilitarProdutoRequest, HabilitarProdutoResponse>();
            var response = dao.Execute(requestData);

            Assert.IsNotNull(response, "Response is null");
            Assert.AreEqual(response.Status, ExecutionStatus.Success, "Response.Status is not Success");
        }
        public void TechnicalErro_AccessError()
        {
            var requestData = new HabilitarProdutoRequest
            {
                Protocolo = "123456",
                CodigoCliente = 99999999,
                CodigoProduto = "70",
                QuantidadeParcelas = "0",
                PercentualTaxa = 1.5M,
                NomeSolicitante = "SOLICITANTE",
                Origem = "CRM",
                TelefoneSolicitante = "99999-9999",
                CodigoEmpresa = "1",
                FaixasTaxaSegmentado = new List<HabilitarProdutoFaixaTaxaSegmentadoDTO>
                {
                    new HabilitarProdutoFaixaTaxaSegmentadoDTO
                    {
                        CodigoFaixa = "0",
                        NumeroFinalParcelaFaixa = "0",
                        NumeroInicialParcelaFaixa = "0",
                        PercentualTaxaFaixa = 0
                    }
                }
            };
            var dao = DAOFactory.GetDAO<HabilitarProdutoDAO, HabilitarProdutoRequest, HabilitarProdutoResponse>();
            var response = dao.Execute(requestData);

            Assert.IsNotNull(response, "Response is null");
            Assert.AreEqual(response.Status, ExecutionStatus.TechnicalError, "Response.Status is not TechnicalError");
            Assert.AreEqual(response.ErrorCode, ErrorCodes.DAO_OSB_CALL_NAME_RESOLUTION_FAILURE_ERROR, "Response.ErrorCode is not DAO_OSB_CALL_NAME_RESOLUTION_FAILURE_ERROR");
        }
        public void BasicData()
        {
            var mockSets = new List<MockSet<HabilitarProdutoRequest, HabilitarProdutoResponse>>();

            var request = new HabilitarProdutoRequest();
            request.CodigoCliente = 1;
            request.CodigoEmpresa = "002";
            request.CodigoProduto = "008";
            request.Protocolo = "101010";
            request.QuantidadeParcelas = "3";
            request.PercentualTaxa = 1.5m;
            request.Origem = "CRM";
            request.NomeSolicitante = "Felipe";
            request.TelefoneSolicitante = "99999000";
            request.FaixasTaxaSegmentado = new List<HabilitarProdutoFaixaTaxaSegmentadoDTO>();
            request.FaixasTaxaSegmentado.Add(new HabilitarProdutoFaixaTaxaSegmentadoDTO()
            {
                CodigoFaixa = "089",
                PercentualTaxaFaixa = 1.5d,
                NumeroInicialParcelaFaixa = "1",
                NumeroFinalParcelaFaixa = "4",
            });

            var response = new HabilitarProdutoResponse();
            response.Status = ExecutionStatus.Success;
            response.StatusRetorno = "1";
            response.SistemaLegado = "OSB";

            response.SolicitacaoCentralAtendimento = new HabilitarProdutoSolicitacaoCentralAtendimentoDTO
            {
                CodigoSolicitacao = "33",
                DataPrevistaConclusaoSolicitacao = DateTime.Today,
            };

            var mockSet = new MockSet<HabilitarProdutoRequest, HabilitarProdutoResponse>();
            mockSet.request = request;
            mockSet.response = response;

            mockSets.Add(mockSet);

            this.WriteObject(@"..\..\Generated\HabilitarProdutoMock.xml", mockSets);

        }
        public void Sucesso()
        {
            var request = new HabilitarProdutoRequest();
            request.FaixasTaxaSegmentado = new List<HabilitarProdutoFaixaTaxaSegmentadoDTO>();

            var FaixaTaxaSegmentado = new HabilitarProdutoFaixaTaxaSegmentadoDTO()
            {
                PercentualTaxaFaixa = 1.5d,
                NumeroInicialParcelaFaixa = "1",
                NumeroFinalParcelaFaixa = "4",
                CodigoFaixa = "089",
            };

            request.Protocolo = "101010";
            request.CodigoCliente = 1;
            request.CodigoProduto = "008";
            request.QuantidadeParcelas = "3";
            request.PercentualTaxa = 1.5m;
            request.NomeSolicitante = "Felipe";
            request.Origem = "CRM";
            request.TelefoneSolicitante = "99999000";
            request.CodigoEmpresa = "002";

            request.FaixasTaxaSegmentado.Add(FaixaTaxaSegmentado);

            var business = new HabilitarProdutoBL();

            var response = business.Execute(request);

            //Resultados de acordo com o mock gerado
            Assert.IsNotNull(response);
            Assert.IsTrue(response.Status == Foundation.ExecutionStatus.Success);
            Assert.AreEqual("OSB", response.SistemaLegado);
            Assert.AreEqual(33, response.SolicitacaoCentralAtendimento.CodigoSolicitacao);
            Assert.AreEqual(DateTime.Today, response.SolicitacaoCentralAtendimento.DataPrevistaConclusaoSolicitacao);

        }
 public HabilitarProdutoResponse HabilitarProduto(HabilitarProdutoRequest requestData)
 {
     var business = new HabilitarProdutoBL();
     var response = this.ExecuteBusiness(business, requestData);
     return response;
 }
        public void BusinessError_FaixaInvalida()
        {
            var requestData = new HabilitarProdutoRequest
            {
                Protocolo = "123456",
                CodigoCliente = 8000102429,
                CodigoProduto = "12",
                QuantidadeParcelas = "0",
                PercentualTaxa = 1.5M,
                NomeSolicitante = "SOLICITANTE",
                Origem = "CRM",
                TelefoneSolicitante = "99999-9999",
                CodigoEmpresa = "1",
                FaixasTaxaSegmentado = new List<HabilitarProdutoFaixaTaxaSegmentadoDTO>
                {
                    new HabilitarProdutoFaixaTaxaSegmentadoDTO
                    {
                        CodigoFaixa = "1",
                        NumeroFinalParcelaFaixa = "1",
                        NumeroInicialParcelaFaixa = "2",
                        PercentualTaxaFaixa = 1.1
                    },
                    new HabilitarProdutoFaixaTaxaSegmentadoDTO
                    {
                        CodigoFaixa = "2",
                        NumeroFinalParcelaFaixa = "5",
                        NumeroInicialParcelaFaixa = "6",
                        PercentualTaxaFaixa = 2.2
                    }
                }
            };
            var dao = DAOFactory.GetDAO<HabilitarProdutoDAO, HabilitarProdutoRequest, HabilitarProdutoResponse>();
            var response = dao.Execute(requestData);

            Assert.IsNotNull(response, "Response is null");
            Assert.AreEqual(response.Status, ExecutionStatus.BusinessError, "Response.Status is not BusinessError");
        }
        public void Success_TaxaDeParcelasSegmentadas()
        {
            var requestData = new HabilitarProdutoRequest
            {
                Protocolo = "123456",
                CodigoCliente = 10011003,
                CodigoProduto = "72",
                QuantidadeParcelas = "6",
                PercentualTaxa = 0M,
                NomeSolicitante = "SOLICITANTE",
                Origem = "CRM",
                TelefoneSolicitante = "99999-9999",
                CodigoEmpresa = "1",
                FaixasTaxaSegmentado = new List<HabilitarProdutoFaixaTaxaSegmentadoDTO>
                {
                    new HabilitarProdutoFaixaTaxaSegmentadoDTO
                    {
                        CodigoFaixa = "1",
                        NumeroInicialParcelaFaixa = "1",
                        NumeroFinalParcelaFaixa = "3",
                        PercentualTaxaFaixa = 1.11
                    },
                    new HabilitarProdutoFaixaTaxaSegmentadoDTO
                    {
                        CodigoFaixa = "2",
                        NumeroInicialParcelaFaixa = "4",
                        NumeroFinalParcelaFaixa = "6",
                        PercentualTaxaFaixa = 2.22
                    }
                }
            };
            var dao = DAOFactory.GetDAO<HabilitarProdutoDAO, HabilitarProdutoRequest, HabilitarProdutoResponse>();
            var response = dao.Execute(requestData);

            Assert.IsNotNull(response, "Response is null");
            Assert.AreEqual(response.Status, ExecutionStatus.Success, "Response.Status is not Success");
            Assert.IsNotNull(response.SolicitacaoCentralAtendimento, "Response.SolicitacaoCentralAtendimento is null");
            Assert.IsNotNull(response.SolicitacaoCentralAtendimento.DataPrevistaConclusaoSolicitacao, "Response.SolicitacaoCentralAtendimento.DataPrevistaConclusaoSolicitacao is null");
        }