public MockSet<ConsultarProdutoHabilitadoClienteRequest, ConsultarProdutoHabilitadoClienteResponse> GetMocksetforCustomer(long codigoCliente, string[] codigosProdutos)
        {
            var request = new ConsultarProdutoHabilitadoClienteRequest()
            {
                CodigoCliente = codigoCliente
            };

            var response = new ConsultarProdutoHabilitadoClienteResponse();
            response.Status = ExecutionStatus.Success;
            response.DataUltimaTransacao = DateTime.Now.AddDays(-2);

            response.Produtos = new List<ConsultarProdutoHabilitadoClienteProdutoDTO>();

            if (codigosProdutos != null)
            {
                var produtos = from produto in GetFullProductList()
                               where codigosProdutos.Contains(produto.CodigoProduto)
                               select produto;

                response.Produtos.AddRange(produtos);
            }
            else
            {
                response.Produtos.AddRange(GetFullProductList());
            }

            response.NumeroTotalRegistros = response.Produtos.Count;

            var mockSet = new MockSet<ConsultarProdutoHabilitadoClienteRequest, ConsultarProdutoHabilitadoClienteResponse>();
            mockSet.request = request;
            mockSet.response = response;

            return mockSet;
        }
        public void Success_ParceladoSegmentado()
        {
            var requestData = new ConsultarProdutoHabilitadoClienteRequest()
            {
                CodigoCliente = 10011002,
            };
            var dao = DAOFactory.GetDAO<ConsultarProdutoHabilitadoClienteDAO, ConsultarProdutoHabilitadoClienteRequest, ConsultarProdutoHabilitadoClienteResponse>();
            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.Produtos, "Response.Produtos is null");

            response.Produtos.ForEach(
                produto =>
                {
                    Assert.IsNotNull(produto.PercentualTaxa, "PercentualTaxa is null");
                    Assert.IsFalse(string.IsNullOrEmpty(produto.CodigoProduto), "CodigoProduto is null or empty");
                    Assert.IsFalse(string.IsNullOrEmpty(produto.TipoGrupoProduto), "TipoGrupoProduto is null or empty");

                    int ordemApresentacao;
                    Assert.IsTrue(int.TryParse(produto.OrdemApresentacao, out ordemApresentacao), "OrdemApresentacao is not numeric");
                }
            );
            Assert.IsTrue(response.Produtos.Any(produto => produto.TipoGrupoProduto == "4"));
        }
        public void BusinessError_EcInexistente()
        {
            var requestData = new ConsultarProdutoHabilitadoClienteRequest()
            {
                CodigoCliente = 10011005
            };
            var dao = DAOFactory.GetDAO<ConsultarProdutoHabilitadoClienteDAO, ConsultarProdutoHabilitadoClienteRequest, ConsultarProdutoHabilitadoClienteResponse>();
            var response = dao.Execute(requestData);

            Assert.IsNotNull(response, "Response is null");
            Assert.AreEqual(response.Status, ExecutionStatus.BusinessError, "Response.Status is not BusinessError");
        }
        public void TechnicalErro_AccessError()
        {
            var requestData = new ConsultarProdutoHabilitadoClienteRequest()
            {
                CodigoCliente = 99999999,
            };
            var dao = DAOFactory.GetDAO<ConsultarProdutoHabilitadoClienteDAO, ConsultarProdutoHabilitadoClienteRequest, ConsultarProdutoHabilitadoClienteResponse>();
            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 ConsultarProdutoHabilitadoClienteResponse ConsultarProdutoHabilitadoCliente(ConsultarProdutoHabilitadoClienteRequest requestData)
 {
     var business = new ConsultarProdutoHabilitadoClienteBL();
     var response = this.ExecuteBusiness(business, requestData);
     return response;
 }
        public MockSet<ConsultarProdutoHabilitadoClienteRequest, ConsultarProdutoHabilitadoClienteResponse> GetErrorMocksetforCustomer(long codigoCliente, string typeError)
        {
            var request = new ConsultarProdutoHabilitadoClienteRequest()
            {
                CodigoCliente = codigoCliente
            };

            var response = new ConsultarProdutoHabilitadoClienteResponse();

            switch (typeError)
            {
                case "BusinessError":
                    response.Status = ExecutionStatus.BusinessError;
                    break;

                case "TechnicalError":
                    response.Status = ExecutionStatus.TechnicalError;
                    break;


                case "DetalhesError":
                    response.Status = ExecutionStatus.Success;
                    response.Produtos = new List<ConsultarProdutoHabilitadoClienteProdutoDTO>();

                    response.Produtos.AddRange(GetErrorProductList());
                    response.NumeroTotalRegistros = response.Produtos.Count;
                    break;


                //   case "BusinessError":
                //       response.Status = ExecutionStatus.BusinessError;
                //       break;
                //
            }

            var mockSet = new MockSet<ConsultarProdutoHabilitadoClienteRequest, ConsultarProdutoHabilitadoClienteResponse>();
            mockSet.request = request;
            mockSet.response = response;

            return mockSet;
        }
        public void TechnicalErro_OSB()
        {
            var requestData = new ConsultarProdutoHabilitadoClienteRequest()
            {
                CodigoCliente = 10011007
            };
            var dao = DAOFactory.GetDAO<ConsultarProdutoHabilitadoClienteDAO, ConsultarProdutoHabilitadoClienteRequest, ConsultarProdutoHabilitadoClienteResponse>();
            var response = dao.Execute(requestData);

            Assert.IsNotNull(response, "Response is null");
            Assert.AreEqual(response.Status, ExecutionStatus.TechnicalError, "Response.Status is not TechnicalError");
        }
        private bool GetEnabledProducts()
        {
            _enabledProductsModelInstance = new EnabledProductsModel();

            long clientIdNumber = new long();
            if (!long.TryParse(GetCrmContextValue(Constants.CONTEXTOCRM_CLIENTID), out clientIdNumber))
            {
                ErrorMessage = "Código do cliente inválido";
                ErrorId = Trace.CorrelationManager.ActivityId.ToString("D", CultureInfo.InvariantCulture);
                ViewState = ViewStates.LoadingError;
                _logger.LogError(ErrorMessage);
                return false;
            }

            ConsultarProdutoHabilitadoClienteRequest requestEnabledProducts = new ConsultarProdutoHabilitadoClienteRequest();
            requestEnabledProducts.CodigoCliente = clientIdNumber;
            _enabledProductsModelInstance.Request = requestEnabledProducts;

            _enabledProductsModelInstance.Execute();
            return true;
        }