public void HabilitarServicoSucessoOSBSucessoCRM()
        {
            (new CRMContext()).EnableAction(Actions.PrSvEnableServiceAc);

            var response = new ProdutosServiceClient().HabilitarServico(
                new HabilitarServicoRequest()
                {
                    CodigoCliente = 10011001,
                    CodigoServico = "8",
                    ArvoreAssunto = "Habilitar Serviço",
                    CanalDeAtendimento = "Telefone",
                    CaseType = "Solicitação",
                    Cliente = "99367d71-08ad-4aec-8e73-55ae151614f9",
                    ParentCaseId = "32321b5c-8138-e511-80fa-000d3ac01597",
                    IlhaDeAtendimento = "ab4d2b05-1a32-e511-80ce-000d3ac01090",
                    IdDemanda = new Guid("08bf8be4-163a-e511-80f3-000d3ac01607"),
                    IdMotivo = new Guid("eb974b25-553f-e511-80cb-000d3ac00701"),
                    TituloOcorrencia = "0000222",
                    UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
                }
            );

            Assert.AreEqual(ExecutionStatus.Success, response.Status);
            Assert.AreEqual(new DateTime(2015, 08, 24), response.DataSLA);
        }
        public void DesabilitarProdutoSucessoOSBSucessoCRM()
        {
            (new CRMContext()).EnableAction(Actions.PrSvDisableProductAc);

            var response = new ProdutosServiceClient().DesabilitarProduto(
                new DesabilitarProdutoRequest()
                {
                    Protocolo = "0000222",
                    CodigoCliente = 10011001,
                    CodigoProduto = 3,
                    NomeSolicitante = "Cielo",
                    Origem = "Dynamics CRM",
                    TelefoneSolicitante = "985435678",
                    CodigoEmpresa = "123456",
                    MotivoSolicitacao = "Nova demanda",
                    IlhaDeAtendimento = "ab4d2b05-1a32-e511-80ce-000d3ac01090",
                    ParentCaseId = "32321b5c-8138-e511-80fa-000d3ac01597",
                    RequestReasonId = new Guid("9ce30986-573f-e511-80cb-000d3ac00701"),
                    DemandId = new Guid("f8be8be4-163a-e511-80f3-000d3ac01607"),
                    UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
                }
            );

            Assert.AreEqual(ExecutionStatus.Success, response.Status);
        }
        public void DesabilitarServico()
        {
            var requestData = new ConsultarDetalheProdutoElegivelClienteRequest();

            requestData.CodigoCliente = 1;
            requestData.CodigoProduto = "001";
            requestData.UserId = new Guid();

            ProdutosServiceClient client = new ProdutosServiceClient();
            var response = client.ConsultarDetalheProdutoElegivelCliente(requestData);
        }
        public void TestServicoDemandaNaoExiste()
        {
            var svc = new ProdutosServiceClient();
            var response = svc.GetRequestReason(new GetRequestReasonRequest()
            {
                DemandId = Guid.Empty,
                UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
            });

            Assert.AreEqual(ExecutionStatus.BusinessError, response.Status);
            Assert.AreEqual(0, response.Reasons.Count);
        }
        public void TestServicoDemanda100MotivosCadastrados()
        {
            var svc = new ProdutosServiceClient();
            var response = svc.GetRequestReason(new GetRequestReasonRequest()
            {
                DemandId = new Guid("f6be8be4-163a-e511-80f3-000d3ac01607"), //Demanda: Habilitar Produto
                UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
            });

            Assert.AreEqual(ExecutionStatus.Success, response.Status);
            Assert.AreEqual(100, response.Reasons.Count);
        }
        public void ConsultarDetalheProdutoElegivelClienteSuccess()
        {
            var requestData = new ConsultarDetalheProdutoElegivelClienteRequest()
            {
                CodigoCliente = 1,
                CodigoProduto = "001",
                UserId = Guid.NewGuid()
            };

            var client = new ProdutosServiceClient();
            var response = client.ConsultarDetalheProdutoElegivelCliente(requestData);
            client.Close();
        }
        public void TestDesabilitarServicoInexistente()
        {
            var svc = new ProdutosServiceClient();
            var response = svc.DesabilitarServico(new DesabilitarServicoRequest()
            {
                CodigoCliente = 10011001,
                CodigoServico = string.Empty,
                UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
            });

            Assert.IsNotNull(response);
            Assert.IsTrue(response.Status == Foundation.ExecutionStatus.BusinessError);
        }
        public void Sucess_ListaVazia()
        {
            var response = new ProdutosServiceClient().ConsultarProdutosPrazoFlexivel(
                 new ConsultarProdutosPrazoFlexivelRequest()
                 {
                     CodigoCliente = 3,
                     UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
                 }
             );

            //Resultados de acordo com o mock gerado
            Assert.AreEqual(22, response.CodigoGrupoPrazoFlexivel);
            Assert.IsTrue(response.Status == ExecutionStatus.Success);
            Assert.IsNull(response.ErrorCode);
            Assert.IsNull(response.ErrorMessage);
        }
        public void Success_ListaVazia()
        {
            var response = new ProdutosServiceClient().ConsultarPrazosTaxasPrazoFlexivel(
                new ConsultarPrazosTaxasPrazoFlexivelRequest()
                {
                    CodigoCliente = 1,
                    CodigoGrupoPrazoFlexivel = 1,
                    UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
                }
            );

            Assert.AreEqual(response.Status, ExecutionStatus.Success);
            Assert.AreEqual(response.GruposProdutoPrazoFlexivel.Count, 1);
            Assert.AreEqual(response.GruposProdutoPrazoFlexivel[0].DadosTarifasGrupoProdutoPrazoFlexivel.Count, 0);
            Assert.AreEqual(response.GruposProdutoPrazoFlexivel[0].IndicadorHabilitado, "H");
            Assert.AreEqual(response.GruposProdutoPrazoFlexivel[0].CodigoGrupoPrazoFlexivel, 1);
            Assert.AreEqual(response.GruposProdutoPrazoFlexivel[0].DescricaoGrupoPrazoFlexivel, "Grupo com retorno vazio");
        }
        public void DesabilitarVendaDigitadaSucessoOSBErroCRM()
        {
            (new CRMContext()).DisableAction(Actions.PrSvDisableTypedSaleAc);

            var response = new ProdutosServiceClient().HabilitarDesabilitarVendaDigitada(
                new HabilitarDesabilitarVendaDigitadaRequest()
                {
                    CodigoCliente = 10011001,
                    IndicaOperacao = "D",
                    TituloDaOcorrencia = "0000222",
                    CanalDeAtendimento = "Telefone",
                    CaseType = "Solicitação",
                    ArvoreDeAssunto = "Desabilitação de Venda Digitada",
                    Cliente = "99367d71-08ad-4aec-8e73-55ae151614f9",
                    ParentCaseId = "32321b5c-8138-e511-80fa-000d3ac01597",
                    IlhaDeAtendimento = "ab4d2b05-1a32-e511-80ce-000d3ac01090",
                    IdDemanda = new Guid("febe8be4-163a-e511-80f3-000d3ac01607"),
                    IdMotivo = new Guid("92e30986-573f-e511-80cb-000d3ac00701"),
                    DadosVendaDigitada = new List<HabilitarDesabilitarVendaDigitadaDTO>
                    {
                        new HabilitarDesabilitarVendaDigitadaDTO()
                        {
                            CodigoProduto = "01",
                            NomeProduto = "Presentation"
                        },
                        new HabilitarDesabilitarVendaDigitadaDTO()
                        {
                            CodigoProduto = "02",
                            NomeProduto = "Presentation"
                        },
                        new HabilitarDesabilitarVendaDigitadaDTO()
                        {
                            CodigoProduto = "03",
                            NomeProduto = "Presentation"
                        }
                    },
                    UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
                }
            );

            Assert.AreEqual(ExecutionStatus.TechnicalError, response.Status);
        }
        public void TestDesabilitarServicoSucesso()
        {
            var svc = new ProdutosServiceClient();
            var response = svc.DesabilitarServico(new DesabilitarServicoRequest()
            {
                CodigoCliente = 10011001,
                CodigoServico = "12",
                TituloDaOcorrencia = "0000222",
                Cliente = "be12ef3a-000f-e511-80c0-00155d0ef405",
                IlhaDeAtendimento = "Ilha de Atendimento",
                CanalDeAtendimento = "Telefone",
                CaseType = "Solicitação",
                ArvoreDeAssunto = "Desabilitar Serviço",
                ParentCaseId = "na10ev7a-010d-g541-81f0-01275d0ik193",
                UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
            });

            Assert.IsNotNull(response);
            Assert.IsTrue(response.Status == Foundation.ExecutionStatus.Success);
        }
        public void DesabServico()
        {
            var request = new DesabilitarServicoRequest()
            {
                CanalDeAtendimento = "CanalDeAtendimentoTest",
                CaseType = "CaseTypeTest",
                Cliente = "ClienteTest",
                CodigoCliente = 10011001,
                CodigoServico = "CodigoServicoTest",
                CorrelationId = new Guid("00000000-0000-0000-0000-000000000000"),
                IlhaDeAtendimento = "IlhaDeAtendimentoTest",
                ParentCaseId = "32321b5c-8138-e511-80fa-000d3ac01597", //Ocorrencia que criei para testes
                UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
            };
            var srv = new ProdutosServiceClient();
            var response = srv.DesabilitarServico(request);

            Assert.IsNotNull(response);
            Assert.AreEqual(ExecutionStatus.Success, response.Status);
        }
        public void Success_ListaUmElemento()
        {
            var response = new ProdutosServiceClient().ConsultarPrazosTaxasPrazoFlexivel(
                new ConsultarPrazosTaxasPrazoFlexivelRequest()
                {
                    CodigoCliente = 2,
                    CodigoGrupoPrazoFlexivel = 2,
                    UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
                }
            );

            Assert.AreEqual(response.Status, ExecutionStatus.Success);
            Assert.AreEqual(response.GruposProdutoPrazoFlexivel.Count, 1);
            Assert.AreEqual(response.GruposProdutoPrazoFlexivel[0].IndicadorHabilitado, "H");
            Assert.AreEqual(response.GruposProdutoPrazoFlexivel[0].CodigoGrupoPrazoFlexivel, 2);
            Assert.AreEqual(response.GruposProdutoPrazoFlexivel[0].DescricaoGrupoPrazoFlexivel, "Grupo com retorno de um elemento");
            Assert.AreEqual(response.GruposProdutoPrazoFlexivel[0].DadosTarifasGrupoProdutoPrazoFlexivel.Count, 1);
            Assert.AreEqual(response.GruposProdutoPrazoFlexivel[0].DadosTarifasGrupoProdutoPrazoFlexivel[0].PercentualTaxaGrupoPrazoFlexivel, 3d);
            Assert.AreEqual(response.GruposProdutoPrazoFlexivel[0].DadosTarifasGrupoProdutoPrazoFlexivel[0].QuantidadeDiasGrupoPrazoFlexivel, 4);

        }
        public void Sucess_ListaVinteElementos()
        {
            var response = new ProdutosServiceClient().ConsultarProdutosPrazoFlexivel(
                 new ConsultarProdutosPrazoFlexivelRequest()
                 {
                     CodigoCliente = 2,
                     UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
                 }
             );

            //Resultados de acordo com o mock gerado
            Assert.AreEqual(3, response.CodigoGrupoPrazoFlexivel);
            Assert.AreEqual(222, response.Produtos[0].CodigoProduto);
            Assert.AreEqual("Produto Retorno de grupo com 20 elementos", response.Produtos[0].NomeProduto);
            Assert.AreEqual(899, response.Produtos[0].CodigoBandeira);
            Assert.AreEqual("Visa", response.Produtos[0].NomeBandeira);
            Assert.AreEqual(15, response.Produtos[0].QuantidadeDiasPrazo);
            Assert.AreEqual(2.5, response.Produtos[0].PercentualTaxaGarantia);
            Assert.IsTrue(response.Status == ExecutionStatus.Success);
            Assert.IsNull(response.ErrorCode);
            Assert.IsNull(response.ErrorMessage);
        }
        public void HabServico()
        {
            var request = new HabilitarServicoRequest()
            {
                ArvoreAssunto = "ArvoreAssuntoTest",
                CanalDeAtendimento = "CanalDeAtendimentoTest",
                CaseType = "CaseTypeTest",
                Cliente = "ClienteTest",
                CodigoCliente = 10011001, //Tem que ser esse, pra conseguir achar o GUID desse cara no CRM
                CodigoServico = "CodigoServicoTest",
                CorrelationId = new Guid("00000000-0000-0000-0000-000000000000"),
                EstabelecimentoComercial = "EstabelecimentoComercialTest",
                IlhaDeAtendimento = "IlhaDeAtendimentoTest",
                ParentCaseId = "32321b5c-8138-e511-80fa-000d3ac01597", //Ocorrencia que criei para testes
                TituloOcorrencia = "Minha Primeira Ocorrência",
                UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
            };
            var srv = new ProdutosServiceClient();
            var response = srv.HabilitarServico(request);

            Assert.IsNotNull(response);
            Assert.AreEqual(ExecutionStatus.Success, response.Status);
        }
        public void DesabilitarServicoErroTecnicoOSBErroCRM()
        {
            (new CRMContext()).DisableAction(Actions.PrSvDisableServiceAc);

            var response = new ProdutosServiceClient().DesabilitarServico(new DesabilitarServicoRequest()
            {
                CodigoCliente = 10011001,
                CodigoServico = "15",
                TituloDaOcorrencia = "0000222",
                Cliente = "99367d71-08ad-4aec-8e73-55ae151614f9",
                IlhaDeAtendimento = "ab4d2b05-1a32-e511-80ce-000d3ac01090",
                CanalDeAtendimento = "Telefone",
                CaseType = "Solicitação",
                ArvoreDeAssunto = "Desabilitar Serviço",
                ParentCaseId = "32321b5c-8138-e511-80fa-000d3ac01597",
                IdMotivo = new Guid("ef974b25-553f-e511-80cb-000d3ac00701"),
                IdDemanda = new Guid("0abf8be4-163a-e511-80f3-000d3ac01607"),
                UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
            });

            Assert.AreEqual(ExecutionStatus.TechnicalError, response.Status);
        }
        public void SolicitarNegociacaoTaxaSucessoOSBErroCRM()
        {
            (new CRMContext()).DisableAction(Actions.PrSvRateChengNegotiationRequestAc);

            var response = new ProdutosServiceClient().SolicitarNegociacaoTaxaProdutoComercial(
                new SolicitarNegociacaoTaxaRequest()
                {
                    CelularContato = null,
                    CodigoCliente = 10011001,
                    CodigoProduto = "6",
                    NomeContato = "Cielo",
                    PercentualTaxaPropostaConcorrente = Convert.ToDecimal(1.5),
                    Protocolo = "0000222",
                    TelefoneContato = null,
                    ArvoreDeAssunto = "Negociação de Taxa",
                    CanalDeAtendimento = "Telefone",
                    CaseType = "Solicitação",
                    TituloDaOcorrencia = "Titulo de ocorrencia",
                    Cliente = "99367d71-08ad-4aec-8e73-55ae151614f9",
                    ParentCaseId = "32321b5c-8138-e511-80fa-000d3ac01597",
                    IlhaDeAtendimento = "9f54f2d3-5335-e511-80e5-000d3ac01b55",
                    IdDemanda = new Guid("00bf8be4-163a-e511-80f3-000d3ac01607"),
                    IdMotivo = new Guid("94e30986-573f-e511-80cb-000d3ac00701"),
                    UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
                }
            );

            Assert.AreEqual(ExecutionStatus.TechnicalError, response.Status);
            Assert.AreEqual("Sistema Legado fake", response.SistemaLegado);
            Assert.AreEqual("Status Retorno fake", response.StatusRetorno);
        }
        public void SolicitarNegociacaoTaxaErroNegocioOSB()
        {
            var response = new ProdutosServiceClient().SolicitarNegociacaoTaxaProdutoComercial(
                new SolicitarNegociacaoTaxaRequest()
                {
                    CelularContato = null,
                    CodigoCliente = 10011001,
                    CodigoProduto = "5",
                    NomeContato = "Cielo",
                    PercentualTaxaPropostaConcorrente = Convert.ToDecimal(1.5),
                    Protocolo = "0000222",
                    TelefoneContato = null,
                    ArvoreDeAssunto = "Negociação de Taxa",
                    CanalDeAtendimento = "Telefone",
                    CaseType = "Solicitação",
                    TituloDaOcorrencia = "Titulo de ocorrencia",
                    Cliente = "99367d71-08ad-4aec-8e73-55ae151614f9",
                    ParentCaseId = "32321b5c-8138-e511-80fa-000d3ac01597",
                    IlhaDeAtendimento = "ab4d2b05-1a32-e511-80ce-000d3ac01090",
                    IdDemanda = new Guid("00bf8be4-163a-e511-80f3-000d3ac01607"),
                    IdMotivo = new Guid("94e30986-573f-e511-80cb-000d3ac00701"),
                    UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
                });

            Assert.AreEqual(ExecutionStatus.BusinessError, response.Status);
        } 
        public void Error_ListaTechnicalError()
        {
            var response = new ProdutosServiceClient().ConsultarProdutosPrazoFlexivel(
                new ConsultarProdutosPrazoFlexivelRequest()
                {
                    CodigoCliente = 5,
                    UserId = new Guid("C243440B-1A32-E511-80CE-000D3AC01090")
                }
            );

            Assert.AreEqual(response.Status, ExecutionStatus.TechnicalError);
        }