public void ErrorData()
        {
            var response = new SolicitarExclusaoProdutoResponse();
            response.Status = ExecutionStatus.TechnicalError;
            response.ErrorCode = "007";
            response.ErrorMessage = "INVALID ACCOUNT(N-H)";

            this.WriteObject(@"..\..\Generated\SolicitarExclusaoProdutoMockError.xml", response);
        }
        public void BasicData()
        {
            var mockSets = new List<MockSet<SolicitarExclusaoProdutoRequest, SolicitarExclusaoProdutoResponse>>();

            var request = new SolicitarExclusaoProdutoRequest()
            {
                Protocolo = "101010",
                CodigoCliente = 1,
                CodigoProduto = "008",
                NomeSolicitante = "Andre",
                Origem = "CRM",
                TelefoneSolicitante = "99999000",
                CodigoEmpresa = "002",
                MotivoSolicitacao = "Teste"
                
            };

            var response = new SolicitarExclusaoProdutoResponse();

            response.Status = ExecutionStatus.Success;
            response.SistemaLegado = "OSB";
            response.StatusRetorno = "StatusRetorno";

            response.SolicitacaoCentralAtendimento = new SolicitarExclusaoProdutoDTO();

            response.SolicitacaoCentralAtendimento.CodigoSolicitacao = "1111";
            response.SolicitacaoCentralAtendimento.DataPrevistaConclusaoSolicitacao = DateTime.Today;

            var mockSet = new MockSet<SolicitarExclusaoProdutoRequest, SolicitarExclusaoProdutoResponse>();
            mockSet.request = request;
            mockSet.response = response;

            mockSets.Add(mockSet);

            this.WriteObject(@"..\..\Generated\SolicitarExclusaoProdutoMock.xml", mockSets);
        }
        public void TesteDAOErro()
        {
            var requestData = new SolicitarExclusaoProdutoRequest()
            {
                Protocolo = "101010",
                CodigoCliente = 1,
                CodigoProduto = "008",
                NomeSolicitante = "Andre",
                Origem = "CRM",
                TelefoneSolicitante = "99999000",
                CodigoEmpresa = "002",
                MotivoSolicitacao = "Teste"

            };

            var response = new SolicitarExclusaoProdutoResponse();

            //[Rule]: Chamada ao serviço ConsultarProdutosClienteHabilitados do barramento
            Produto client = new Produto();

            //[Rule]: Recuperação dos dados de credenciais no CredentialManager
            
            //Variaveis para armazenar o retorno do barramento
            string mensagemRetorno = null;
            string statusRetorno = null;
            string sistemaLegado = null;
            SolicitacaoCentralAtendimento solicitacaoCentralAtendimento = new SolicitacaoCentralAtendimento();

            try
            {
                //Chama a operacao "desabilitarProduto" do barramento e armazena o retorno no "codigoRetorno"
                //var codigoRetorno = client.desabilitarProduto(
                //    protocolo: requestData.Protocolo,
                //    codigoCliente: requestData.CodigoCliente,
                //    codigoProduto: requestData.CodigoProduto,
                //    nomeSolicitante: requestData.NomeSolicitante,
                //    origem: requestData.Origem,
                //    telefoneSolicitante: requestData.TelefoneSolicitante,
                //    codigoEmpresa: requestData.CodigoEmpresa,
                //    motivoSolicitacao: requestData.MotivoSolicitacao,
                //    descricaoRetornoMensagem: out mensagemRetorno,
                //    statusRetorno: out statusRetorno,
                //    sistemaLegado: out sistemaLegado,
                //    solicitacaoCentralAtendimento: out solicitacaoCentralAtendimento
                //   );
                var codigoRetorno = "99";

                //[Rule]: Business Error: Returns immediately
                if (codigoRetorno != "00")
                {
                    response.ErrorCode = codigoRetorno;
                    response.ErrorMessage = mensagemRetorno;
                    response.Status = ExecutionStatus.BusinessError;
                }
                else
                {
                    response.Status = ExecutionStatus.Success;
                }

                //Faz o "de/para" do retorno do barramento para a "newResponse" a ser retornada
                response.SistemaLegado = sistemaLegado;
                response.StatusRetorno = statusRetorno;
                response.SolicitacaoCentralAtendimento.CodigoSolicitacao = solicitacaoCentralAtendimento.codigoSolicitacao;
                response.SolicitacaoCentralAtendimento.DataPrevistaConclusaoSolicitacao = solicitacaoCentralAtendimento.dataPrevistaConclusaoSolicitacao;
            }
            finally
            {
            //    if (client != null)
            //        client.Dispose();
            }

            //return response;
        }