public void ForecastDefaultsToGlasgow()
 {
     //Assert
     Assert.IsTrue(WeatherPage.TitleHeader.Displayed, "Unable to find header");
     Assert.AreEqual("Glasgow", WeatherPage.GetCurrentCity()
                     , "Unexpected city found on initial page open.");
 }
Exemple #2
0
        public async Task GetCities_WeatherInfo_Success()
        {
            // Arrange
            var testDayDate = new DateTime(2019, 8, 9, 0, 0, 0);
            var tempDay     = 18;
            var tempNight   = -20;
            var comment     = "Небольшой дождь";

            var requestProviderMock = new Mock <IRequestProvider>();

            requestProviderMock.Setup(x => x.GetAsync(It.IsAny <Uri>())).Returns(Task.FromResult(_pageFull));
            var page = new WeatherPage(new Uri("https://yandex.ru/pogoda/saint-petersburg"), requestProviderMock.Object);

            // Act
            await page.LoadPageAsync();

            var weather = page.GetWeather().ToList();

            // Assert
            var specialDay = weather.First(d => d.Date.Date == testDayDate.Date);

            Assert.Equal(tempDay, specialDay.TempDay);
            Assert.Equal(tempNight, specialDay.TempNight);
            Assert.Equal(comment, specialDay.Comment);
        }
Exemple #3
0
 public void displayWeather(WeatherData weather)
 {
     window.Dispatcher.BeginInvoke((Action)(() =>
     {
         WeatherPage page = new WeatherPage(weather);
         window.NavigationService.Navigate(page);
         window.isInHelpPage = false;
     }));
 }
Exemple #4
0
        public void Button_should_be_disabled_when_search_query_is_empty()
        {
            // Act
            var page = new WeatherPage(_app)
                       .TapSearchButton();

            // Assert
            page.HasElementNotVisible(page.Icon);
        }
Exemple #5
0
        public void Entering_valid_city_name_should_show_progress_bar()
        {
            // Act
            var page = new WeatherPage(_app)
                       .EnterSearchQuery("London")
                       .TapSearchButton();

            // Assert
            page.HasElementVisible(page.ProgressBar);
        }
Exemple #6
0
        public void Entering_valid_city_name_should_display_weather_info(string query)
        {
            // Act
            var page = new WeatherPage(_app)
                       .EnterSearchQuery(query)
                       .TapSearchButton();

            // Assert
            page.HasElementVisible(c => c.Marked(query));
        }
Exemple #7
0
        public void Entering_invalid_city_name_should_display_error_message()
        {
            // Act
            var page = new WeatherPage(_app)
                       .EnterSearchQuery("InvalidCity")
                       .TapSearchButton();

            // Assert
            page.HasElementVisible(c => c.Marked("Weather for city InvalidCity not found."));
        }
Exemple #8
0
        public App()
        {
            InitializeComponent();

            //MainPage = new MainPage();

            //Arrancamos desde WeatherPage

            MainPage = new WeatherPage();
        }
Exemple #9
0
        public void FindHighTempOnWeather()
        {
            IndexPage page = new IndexPage(driver);

            page.Navigate();
            DetailPage  detPage = page.NavigateToDetail();
            WeatherPage wetPage = detPage.NavigateToWeather();

            Assert.AreEqual("62", wetPage.HighTemp.Text);
        }
        private void VerifyForecastRow(int rowNum)
        {
            var row       = WeatherPage.ForecastDay(rowNum);
            int collIndex = rowNum - 1;

            Assert.AreEqual(ExpectedData.Edinburgh5Day["MaxTemp"][collIndex], row.MaxTemp.Text, "Max Temperature was not updated.");
            Assert.AreEqual(ExpectedData.Edinburgh5Day["MinTemp"][collIndex], row.MinTemp.Text, "Min Temperature was not updated.");
            Assert.AreEqual(ExpectedData.Edinburgh5Day["WindSpeed"][collIndex], row.WindSpeed.Text, "Wind Speed was not updated.");
            Assert.AreEqual(ExpectedData.Edinburgh5Day["Rainfall"][collIndex], row.RainFall.Text, "Rain was not updated.");
            Assert.AreEqual(ExpectedData.Edinburgh5Day["Pressure"][collIndex], row.Pressure.Text, "Pressure was not updated.");
        }
        public void ErrorIsShownWhenCityIsNotInUK()
        {
            //Setup

            //Execute
            WeatherPage.UpdateCity("Madrid");

            //Assert
            Assert.IsTrue(WeatherPage.ErrorMessage.Displayed, "Error message is not visible");
            Assert.AreEqual("Error retrieving the forecast", WeatherPage.ErrorMessage.Text, "Error message is incorrect");
        }
        //Helpers
        private void VerifyForecastDetail(int rowNum, int hourRow)
        {
            var row       = WeatherPage.ForecastDetail(rowNum, hourRow);
            int collIndex = hourRow - 1;

            Assert.AreEqual(ExpectedData.EdinburghDay1Forecast["Time"][collIndex], row.Hour.Text, "Time is incorrect.");
            Assert.AreEqual(ExpectedData.EdinburghDay1Forecast["MaxTemp"][collIndex], row.MaxTemp.Text, "Max Temperature was not updated.");
            Assert.AreEqual(ExpectedData.EdinburghDay1Forecast["MinTemp"][collIndex], row.MinTemp.Text, "Min Temperature was not updated.");
            Assert.AreEqual(ExpectedData.EdinburghDay1Forecast["WindSpeed"][collIndex], row.WindSpeed.Text, "Wind Speed was not updated.");
            Assert.AreEqual(ExpectedData.EdinburghDay1Forecast["Rainfall"][collIndex], row.RainFall.Text, "Rain was not updated.");
            Assert.AreEqual(ExpectedData.EdinburghDay1Forecast["Pressure"][collIndex], row.Pressure.Text, "Pressure was not updated.");
        }
        //  [DeploymentItem("Resources\\Edinburgh.csv")]
        //  [DataSource("Microsoft.VisualStudio.TestTools.DataSource.CSV", "Resources\\Edinburgh.csv", "Edinburgh#csv", DataAccessMethod.Sequential)]
        public void ForecastIsUpdatedWhenCityIsChanged()
        {
            //Setup

            //Execute
            WeatherPage.UpdateCity("Edinburgh");

            //Assert
            for (int i = 1; i <= 5; i++)
            {
                VerifyForecastRow(i);
            }
        }
Exemple #14
0
        public void SeeifTheTempChangedToCelcius()
        {
            IndexPage page = new IndexPage(driver);

            page.Navigate();
            DetailPage  detPage = page.NavigateToDetail();
            WeatherPage wetPage = detPage.NavigateToWeather();

            Assert.AreEqual("62", wetPage.HighTemp.Text);

            WeatherPage newwetPage = wetPage.ClickCelcius();

            Assert.AreEqual("17", newwetPage.HighTemp.Text);
        }
        [TestMethod] //This will expect actual integration to service
        public void ForecastShowsNext5Days()
        {
            //Setup
            var now = DateTime.Now;

            //Assert
            for (int i = 0; i < 5; i++)
            {
                string      expectedWeekDay = now.AddDays(i).DayOfWeek.ToString().Substring(0, 3);
                int         expectedDate    = now.AddDays(i).Day;
                ForecastRow forecastRow     = WeatherPage.ForecastDay(i + 1);
                Assert.AreEqual(expectedWeekDay, forecastRow.DayOfWeek.Text, "Day of week is incorrect in row " + i);
                Assert.AreEqual(expectedDate, forecastRow.DayOfMonth.Text, "Day of month is incorrect in row " + i);
            }
        }
        public void DetailedForecastIsShownWhenClickingOnToday()
        {
            //Setup
            int rowNum   = 1;
            var todayRow = WeatherPage.ForecastDay(rowNum);

            //Execute
            WeatherPage.UpdateCity("Edinburgh");
            todayRow.DayOfWeek.Click();

            //Assert
            for (int i = 1; i <= 4; i++)
            {
                VerifyForecastDetail(rowNum, i);
            }
        }
Exemple #17
0
        public async Task GetCities_CorruptedPage_Success()
        {
            // Arrange
            var requestProviderMock = new Mock <IRequestProvider>();

            requestProviderMock.Setup(x => x.GetAsync(It.IsAny <Uri>())).Returns(Task.FromResult("Corrupted page"));
            var page = new WeatherPage(new Uri("https://yandex.ru/pogoda/saint-petersburg"), requestProviderMock.Object);

            // Act
            await page.LoadPageAsync();

            var weather = page.GetWeather().ToList();

            // Assert
            Assert.Empty(weather);
        }
Exemple #18
0
        public void OnInitialized(IContainerProvider containerProvider)
        {
            if (weather.GetApiKey())
            {
                var btn = new Button();
                btn.Click += Btn_Click;
                btn.SetBinding(Button.ContentProperty, new Binding("CurrentName"));

                weatherElement           = new SideBarElement();
                weatherElement.FullName  = Properties.Resources.WeatherSideBarName;
                weatherElement.ShortName = "☁";
                btn.DataContext          = weatherElement;

                weatherPage = new WeatherPage(weather);

                Chern_App.ModuleManager.AddButtonRequest(btn);
            }
        }
Exemple #19
0
        public async Task <IEnumerable <Domain.Models.Weather> > GetWeatherAsync(string cityUrl)
        {
            if (cityUrl == null)
            {
                throw new ArgumentNullException(nameof(cityUrl));
            }

            try
            {
                var weatherPage = new WeatherPage(new Uri(cityUrl), _requestProvider);
                await weatherPage.LoadPageAsync();

                var weatherData = weatherPage.GetWeather();
                return(weatherData.Select(w => new Domain.Models.Weather(w.Date, w.TempDay, w.TempNight, w.Comment)));
            }
            catch (Exception e)
            {
                throw new Domain.Exceptions.WeatherProviderServiceException(e.Message, e);
            }
        }
Exemple #20
0
 public App()
 {
     Barrel.ApplicationId = "WeatherApp";
     InitializeComponent();
     MainPage = new WeatherPage();
 }
Exemple #21
0
        public App()
        {
            InitializeComponent();

            MainPage = new WeatherPage();
        }
 public void Setup()
 {
     WeatherPage.Navigate();
 }
 public WeatherController(WeatherPage view)
 {
     this.view = view;
 }
 public void Only5DaysExistInForecast()
 {
     //Assert
     Assert.IsFalse(WeatherPage.ForecastDay(6).Exists());
 }
Exemple #25
0
        public void TestInit()
        {
            Driver.Url = $"http://{DEFAULT_HOST}:{DEFAULT_PORT}/";

            WeatherPage = new WeatherPage();
        }
 public App()
 {
     MainPage = new WeatherPage ();
     MainPage.BindingContext = new WeatherViewModel ();
 }
Exemple #27
0
 public App()
 {
     MainPage = new WeatherPage();
 }
 private WeatherPageSteps()
 {
     weatherPage = new WeatherPage();
 }