Example #1
0
        public void Get15DaysWeatherById_When_Parameter_IsNull_OrEmpty_Returns_BadRequest(string city, string state)
        {
            var request = new ParameterRequest()
            {
                City = null, State = null
            };

            if (city == null && state == null)
            {
                request = null;
            }
            else
            {
                request.City  = city;
                request.State = state;
            }

            var result = new ErrorResponse();

            result.Message = "Cidade ou Estado Inválidos";
            var controller = new WeatherController(_service);
            var response   = controller.Get15daysWeatherById(request);

            response.Should().BeEquivalentTo(new BadRequestObjectResult(result));
        }
Example #2
0
        public void GetCurrentWeatherByCity_When_Parameter_IsIncorrect_Returns_BadRequest(bool hasValue, string errorMessage)
        {
            var request = new ParameterRequest()
            {
                City = "maue", State = "SP"
            };

            var httpResponse = new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK
            };

            httpResponse.Content = !hasValue ? null : new StringContent("vazio");

            _client.GetAsync($"{_host}/locale/city?name={request.City}&state={request.State}&{_token}").ReturnsForAnyArgs(httpResponse);

            var result = _service.GetCurrentWeatherByCity(request);

            var response = new CityResponse();

            response.Detail     = errorMessage;
            response.StatusCode = HttpStatusCode.BadRequest;

            result.Should().BeEquivalentTo(response);
        }
Example #3
0
        public ActionResult GetCurrentWeatherByCity([FromRoute] ParameterRequest request)
        {
            if (request == null || string.IsNullOrEmpty(request.City) || string.IsNullOrEmpty(request.State))
            {
                var result = new ErrorResponse();
                result.Message = "Cidade ou Estado Inválidos";
                return(new BadRequestObjectResult(result));
            }

            try
            {
                var result = _service.GetCurrentWeatherByCity(request);

                if (result == null)
                {
                    var errorResponse = new ErrorResponse();
                    errorResponse.Message = "Cidade invalida, verifique.";
                    return(new BadRequestObjectResult(errorResponse));
                }

                return(new OkObjectResult(result));
            }
            catch (Exception)
            {
                return(new StatusCodeResult(StatusCodes.Status500InternalServerError));
            }
        }
Example #4
0
        public void GetCurrentWeatherByCity_When_Has_OK_Returns_Success()
        {
            var request = new ParameterRequest();

            request.City  = "Mauá";
            request.State = "SP";

            var response = new CityResponse()
            {
                StatusCode = HttpStatusCode.OK,
                Detail     = "Falha de comunicação.",
                Id         = 3954,
                Name       = "Nublado",
                State      = "SP",
                Country    = "Brasil",
            };

            _service.GetCurrentWeatherByCity(request).Returns(response);

            var controller = new WeatherController(_service);

            var result = controller.GetCurrentWeatherByCity(request);

            result.Should().BeEquivalentTo(new OkObjectResult(response));
        }
Example #5
0
        public void Get15DaysWeatherById_When_CustomerService_Throws_Exceptions_Returns_InternalServerError()
        {
            var parameterRequest = new ParameterRequest()
            {
                City = "Mauá", State = "SP"
            };
            var controller = new WeatherController(_service);

            _service.Get15DaysWeather(parameterRequest).Throws(new Exception());
            var result = controller.Get15daysWeatherById(parameterRequest);

            result.Should().BeEquivalentTo(new StatusCodeResult(StatusCodes.Status500InternalServerError));
        }
        /// <summary> Adds pObjRecord. </summary>
        /// <remarks> Ranaya, 08/05/2017. </remarks>
        /// <param name="pObjRecord"> The Object record to add. </param>
        /// <returns> An int. </returns>
        public int Add(ParameterRequest pObjRecord)
        {
            int lIntResult = 0;

            //CREAR
            if (!mObjPermissionsDAO.ExistRequest(pObjRecord.RequestId))
            {
                lIntResult = mObjParameterRequestDAO.Add(pObjRecord);
                if (lIntResult == 0)
                {
                    LogService.WriteSuccess("[ParameterRequest CREATE]");

                    if (mObjPermissionsDAO.IsRequestPreparedToCreateSaleOrder(pObjRecord.RequestId))
                    {
                        lIntResult = mObjPermissionsDAO.CreateSaleOrder(pObjRecord.RequestId);
                    }
                }
                else
                {
                    LogService.WriteError("[ParameterRequest NO CREATE]");
                }
            }

            /*
             * //EDITAR
             * else
             * {
             * try
             * {
             *  pObjRecord.RowCode = mObjPermissionsDAO.GetRowCode("[@UG_PE_WS_PARE]", pObjRecord.RequestId);
             *  lIntResult = mObjParameterRequestDAO.Update(pObjRecord);
             *
             *  if (lIntResult == 0)
             *  {
             *      LogService.WriteSuccess("[ParameterRequest UPDATE]");
             *      lIntResult = mObjPermissionsDAO.UpdateSaleOrder(pObjRecord.RequestId);
             *  }
             *  else
             *  {
             *      LogService.WriteError("ERROR:[ParameterRequest UPDATE]");
             *  }
             * }
             * catch (Exception ex)
             * {
             *  LogService.WriteError("ERROR:[ParameterRequest UPDATE] - " + ex.Message);
             * }
             *
             * }
             */
            return(lIntResult);
        }
Example #7
0
        public void GetCurrentWeatherByCity_When_Success_Returns_CityResponse()
        {
            var request = new ParameterRequest()
            {
                City = "Mauá", State = "SP"
            };

            var baseM = _fixture.Build <BaseListModel>()
                        .With(x => x.Id, 1234)
                        .With(x => x.Name, "Mauá")
                        .With(x => x.State, "SP")
                        .With(x => x.Country, "BR")
                        .CreateMany(1);

            var response = new CityResponse()
            {
                StatusCode = HttpStatusCode.OK,
                Detail     = "Falha de comunicação.",
                Id         = 1234,
                Name       = "Nublado",
                State      = "SP",
                Country    = "Brasil",
            };

            var cityID = 1234;

            var httpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK);
            var jsonfile            = JsonConvert.SerializeObject(baseM);

            httpResponseMessage.Content = new StringContent(jsonfile);
            httpResponseMessage.Content.Headers.ContentType.MediaType = "application/json";
            _client.GetAsync($"{_host}/locale/city?name={request.City}&state={request.State}&{_token}").Returns(httpResponseMessage);

            var httpResponse = new HttpResponseMessage(HttpStatusCode.OK);
            var httpRequest  = new HttpRequestMessage();

            httpRequest.Content = new StringContent($"localeId[]={cityID}");
            httpRequest.Content.Headers.ContentType.MediaType = "application/x-www-form-urlencoded";
            _client.PutAsync("http://apiadvisor.climatempo.com.br/api-manager/user-token/f444ae97bad0cadc04e972d4566220f1/locales", httpRequest.Content).ReturnsForAnyArgs(httpResponse);

            var httpResponseMessageResult = new HttpResponseMessage(HttpStatusCode.OK);

            jsonfile = JsonConvert.SerializeObject(response);
            httpResponseMessageResult.Content = new StringContent(jsonfile);
            httpResponseMessageResult.Content.Headers.ContentType.MediaType = "application/json";
            _client.GetAsync($"{_host}/weather/locale/1234/current?{_token}").Returns(httpResponseMessageResult);

            var result = _service.GetCurrentWeatherByCity(request);

            result.Should().BeEquivalentTo(response);
        }
        /// <summary> Updates the given pObjRecord. </summary>
        /// <remarks> Ranaya, 08/05/2017. </remarks>
        /// <param name="pObjRecord"> The Object record to add. </param>
        /// <returns> An int. </returns>

        public int Update(ParameterRequest pObjRecord)
        {
            int lIntResult = 0;

            lIntResult = mObjParameterRequestDAO.Update(pObjRecord);

            if (lIntResult == 0 &&
                mObjPermissionsDAO.ExistsSaleOrder(pObjRecord.RequestId))
            {
                lIntResult = mObjPermissionsDAO.UpdateSaleOrder(pObjRecord.RequestId);
            }

            return(lIntResult);
        }
Example #9
0
        public void Get15DaysWeatherById_When_Has_OK_Returns_Success()
        {
            var request = new ParameterRequest()
            {
                City = "Mauá", State = "SP"
            };
            var controller = new WeatherController(_service);
            var response   = Substitute.For <DaysResponse>();

            _service.Get15DaysWeather(request).Returns(response);
            var result = controller.Get15daysWeatherById(request);

            result.Should().BeEquivalentTo(new OkObjectResult(response));
        }
Example #10
0
        public void Get72hrWeatherById_When_Success_Returns_HourResponse()
        {
            var request = new ParameterRequest()
            {
                City = "Mauá", State = "SP"
            };
            var baseM = _fixture.Build <BaseListModel>().With(x => x.Country, "BR")
                        .With(x => x.Id, 1234)
                        .With(x => x.Name, "Mauá")
                        .With(x => x.State, "SP").CreateMany(2);

            var cityID   = 1234;
            var response = _fixture.Create <HourResponse>();

            response.StatusCode = HttpStatusCode.OK;

            var httpResponseMessage = new HttpResponseMessage(HttpStatusCode.OK);

            var jsonfile = JsonConvert.SerializeObject(baseM);

            httpResponseMessage.Content = new StringContent(jsonfile);
            httpResponseMessage.Content.Headers.ContentType.MediaType = "application/json";

            _client.GetAsync($"{_host}/locale/city?name={request.City}&state={request.State}&{_token}").Returns(httpResponseMessage);


            var httpResponse = new HttpResponseMessage(HttpStatusCode.OK);

            var httpRequest = new HttpRequestMessage();

            httpRequest.Content = new StringContent($"localeId[]={cityID}");
            httpRequest.Content.Headers.ContentType.MediaType = "application/x-www-form-urlencoded";

            _client.PutAsync($"{_hostPut}/{_token}/locales", httpRequest.Content).ReturnsForAnyArgs(httpResponse);

            var httpResponseMessageResult = new HttpResponseMessage(HttpStatusCode.OK);

            jsonfile = JsonConvert.SerializeObject(response);
            httpResponseMessageResult.Content = new StringContent(jsonfile);
            httpResponseMessageResult.Content.Headers.ContentType.MediaType = "application/json";

            _client.GetAsync($"{_host}/forecast/locale/1234/hours/72?{_token}").Returns(httpResponseMessageResult);

            var result = _service.Get72hrWeatherById(request);

            result.Should().BeEquivalentTo(response);
        }
Example #11
0
        public void GetCurrentWeatherByCity_When_ThrowsException_Returns_ErrorResponse()
        {
            var request = new ParameterRequest()
            {
                City = "Mauá", State = "SP"
            };

            _client.GetAsync($"{_host}/locale/city?name={request.City}&state={request.State}&{_token}").Throws(new Exception());

            var result = _service.GetCurrentWeatherByCity(request);

            var errorMessage = new CityResponse {
                StatusCode = HttpStatusCode.BadGateway, Detail = "Falha de comunicação."
            };

            result.Should().BeEquivalentTo(errorMessage);
        }
Example #12
0
        public void Get72hrWeatherById_When_ThrowsException_Returns_ErrorResponse()
        {
            var request = new ParameterRequest()
            {
                City = "Mauá", State = "SP"
            };

            _client.GetAsync($"{_host}/locale/city?name={request.City}&state={request.State}&{_token}").Throws(new Exception());

            var result = _service.Get72hrWeatherById(request);

            var errorMessage = _fixture.Build <HourResponse>().With(x => x.StatusCode, HttpStatusCode.BadGateway)
                               .With(x => x.Data, (List <Hour>)null)
                               .With(x => x.Detail, "Falha de comunicação.").Create();

            result.Should().BeEquivalentTo(errorMessage);
        }
Example #13
0
        public void GetCurrentWeatherByCity_When_Parameters_IsNull_OrEmpty_Returns_BadRequest(string city, string state)
        {
            ParameterRequest request = null;

            if (city != null || state != null)
            {
                request = new ParameterRequest {
                    City = city, State = state
                }
            }
            ;

            var result = new ErrorResponse();

            result.Message = "Cidade ou Estado Inválidos";
            var controller = new WeatherController(_service);
            var response   = controller.GetCurrentWeatherByCity(request);

            response.Should().BeEquivalentTo(new BadRequestObjectResult(result));
        }
Example #14
0
        public void Get15DaysWeatherById_When_InvalidCity_Returns_BadRequest()
        {
            var request = new ParameterRequest()
            {
                City = "Mauaaa", State = "SP"
            };
            var errorMessage = new ErrorResponse()
            {
                Message = "Cidade invalida, verifique."
            };

            DaysResponse response = null;

            _service.Get15DaysWeather(request).Returns(response);

            var controller = new WeatherController(_service);

            var result = controller.Get15daysWeatherById(request);

            result.Should().BeEquivalentTo(new BadRequestObjectResult(errorMessage));
        }
        public bool UpdateByName([FromBody] ParameterRequest updateModel)
        {
            var result = _parameterService.UpdateParameter(updateModel);

            return(result);
        }
Example #16
0
        public CityResponse GetCurrentWeatherByCity(ParameterRequest parameterRequest)
        {
            CityResponse response;

            if (parameterRequest == null || parameterRequest.State == null || parameterRequest.City == null)
            {
                response = new CityResponse()
                {
                    Detail     = "Parâmetros Inválidos",
                    StatusCode = HttpStatusCode.BadRequest
                };
                return(response);
            }

            try
            {
                var result = _httpClient.GetAsync($"{_host}/locale/city?name={parameterRequest.City}&state={parameterRequest.State}&{_token}").Result;

                if (result.Content == null)
                {
                    return(new CityResponse()
                    {
                        Detail = "Cidade ou Estado inválidos.",
                        StatusCode = HttpStatusCode.BadRequest
                    });
                }

                var baseModel = result.Content.ReadAsAsync <IEnumerable <BaseListModel> >().Result;

                if (baseModel == null || !baseModel.Any())
                {
                    return(new CityResponse()
                    {
                        Detail = "Cidade ou Estado inválidos.",
                        StatusCode = HttpStatusCode.BadRequest
                    });
                }

                var cityID = baseModel.First().Id;

                var request = new HttpRequestMessage();
                request.Content = new StringContent($"localeId[]={cityID}");
                request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/x-www-form-urlencoded");
                result = _httpClient.PutAsync($"{_hostPut}/{_token}/locales", request.Content)?.Result;

                if (result.StatusCode != HttpStatusCode.OK)
                {
                    return(new CityResponse()
                    {
                        Detail = "Não foi possível executar a operação, verifique os " +
                                 "Parametros informados e tente novamente.",

                        StatusCode = HttpStatusCode.BadRequest
                    });
                }

                var resultIdSearch = _httpClient.GetAsync($"{_host}/weather/locale/{cityID}/current?{_token}")?.Result;
                var finalResult    = resultIdSearch.Content.ReadAsAsync <CityResponse>().Result;
                finalResult.StatusCode = resultIdSearch.StatusCode;

                return(finalResult);
            }
            catch (UnsupportedMediaTypeException)
            {
                return(new CityResponse()
                {
                    Detail = "Não foi possível executar a operação, verifique os " +
                             "Parametros informados e tente novamente.",
                    StatusCode = HttpStatusCode.BadRequest
                });
            }
            catch (Exception ex)
            {
                return(new CityResponse()
                {
                    StatusCode = HttpStatusCode.BadGateway,
                    Detail = "Falha de comunicação."
                });
            }
        }