public async Task <ActionResult> PrevisaoTempo(string id)
        {
            if (string.IsNullOrWhiteSpace(id))
            {
                return(Json(new
                {
                    sucesso = false,
                    mensagem = "Id da cidade é obrigatório.",
                    status = HttpStatusCode.BadRequest
                }, JsonRequestBehavior.AllowGet));
            }

            var previsaoTempoVM = await _previsaoTempoCidadeAppService
                                  .BuscarPrevisaoTempoCidadeAsync(id);

            if (previsaoTempoVM == null || !previsaoTempoVM.Any())
            {
                return(Json(new
                {
                    sucesso = false,
                    mensagem = "Previsão do tempo não encontrada para cidade.",
                    status = HttpStatusCode.NotFound
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                sucesso = true,
                conteudo = previsaoTempoVM,
                status = HttpStatusCode.OK
            }, JsonRequestBehavior.AllowGet));
        }
예제 #2
0
        public async Task ConsigoBuscarPrevisaoTempoCidade()
        {
            _previsaoTempoCidadeAppServiceMock
            .Setup(p => p.BuscarAsync <PrevisaoTempoDTO>(It.IsAny <string>()))
            .ReturnsAsync(new PrevisaoTempoDTO
            {
                PrevisaoTempoDataHoraDTO = new List <PrevisaoTempoDataHoraDTO>
                {
                    new PrevisaoTempoDataHoraDTO
                    {
                        Temperatura = new TemperaturaDTO
                        {
                            TemperaturaMinima = 10.05,
                            TemperaturaMaxima = 20.35,
                            Umidade           = 70
                        },
                        Clima = new List <ClimaDTO>
                        {
                            new ClimaDTO
                            {
                                Descricao = "nublado",
                                Icone     = "teste"
                            },
                            new ClimaDTO
                            {
                                Descricao = "chuva fraca",
                                Icone     = "teste2"
                            }
                        },
                        DataHora = new DateTime(2019, 8, 1, 18, 0, 0)
                    },
                    new PrevisaoTempoDataHoraDTO
                    {
                        Temperatura = new TemperaturaDTO
                        {
                            TemperaturaMinima = 13,
                            TemperaturaMaxima = 19,
                            Umidade           = 50
                        },
                        Clima = new List <ClimaDTO>
                        {
                            new ClimaDTO
                            {
                                Descricao = "nuvens dispersas",
                                Icone     = "teste3"
                            }
                        },
                        DataHora = new DateTime(2019, 8, 1, 21, 0, 0)
                    }
                }
            });

            var previsao = await _previsaoTempoCidadeAppService.BuscarPrevisaoTempoCidadeAsync("123");

            Assert.NotNull(previsao);
            Assert.Single(previsao);

            var prev = previsao.First();

            Assert.Equal("quinta-feira, 01 agosto", prev.Data);
            Assert.Equal(2, prev.PrevisaoHoras.Count);

            var prevHora = prev.PrevisaoHoras.First();

            Assert.Equal("15:00", prevHora.Hora);
            Assert.Equal("nublado", prevHora.Descricao);
            Assert.Equal("teste", prevHora.Icone);
            Assert.Equal(10.05, prevHora.TemperaturaMinima);
            Assert.Equal(20.35, prevHora.TemperaturaMaxima);
            Assert.Equal(70, prevHora.Umidade);

            prevHora = prev.PrevisaoHoras.Last();
            Assert.Equal("18:00", prevHora.Hora);
            Assert.Equal("nuvens dispersas", prevHora.Descricao);
            Assert.Equal("teste3", prevHora.Icone);
            Assert.Equal(13, prevHora.TemperaturaMinima);
            Assert.Equal(19, prevHora.TemperaturaMaxima);
            Assert.Equal(50, prevHora.Umidade);

            _previsaoTempoCidadeAppServiceMock.Verify(p => p.BuscarAsync <PrevisaoTempoDTO>(It.IsAny <string>()), Times.Once);
        }