Ejemplo n.º 1
0
        public void GetWeatherWithValidCity()
        {
            var fc = new ForecastController(new ForecastManager(new OpenWeather()));
            var r  = fc.GetForecast("London,GB");

            Assert.That(r.StatusCode == HttpStatusCode.OK, "Failed to retrieve Forecast for London GB");
        }
Ejemplo n.º 2
0
        public void GetWeatherWithInvalidCity()
        {
            var fc = new ForecastController(new ForecastManager(new OpenWeather()));
            var r  = fc.GetForecast("InvalidCity,InvalidCountry");

            // now we can test the exception itself
            Assert.That(r.StatusCode == HttpStatusCode.InternalServerError);
        }
        public void when_calling_GetCities_should_return_bad_request_object_if_exception_is_thrown()
        {
            var foreCastService = new Mock <IForecastService>();

            foreCastService.Setup(m => m.GetCities(It.IsAny <string>()))
            .Throws <Exception>();
            var logger = new Mock <IWeatherAppLogger <ForecastController> >();

            _forecastController = new ForecastController(logger.Object, foreCastService.Object);
            var result       = _forecastController.Get();
            var objectResult = result as BadRequestObjectResult;

            Assert.IsInstanceOf <BadRequestObjectResult>(objectResult);
        }
        public void SetUp()
        {
            var foreCastService = new Mock <IForecastService>();

            foreCastService.Setup(m => m.GetCities(It.IsAny <string>()))
            .Returns(new List <CityViewModel>());
            foreCastService.Setup(m => m.GetWeatherForecast(It.IsAny <int>()))
            .Returns(Task.FromResult(new Domain.WeatherForecast()));

            var logger = new Mock <IWeatherAppLogger <ForecastController> >();

            logger.Setup(m => m.LogError(It.IsAny <string>(), "abcd")).Verifiable();

            _forecastController = new ForecastController(logger.Object, foreCastService.Object);
        }
Ejemplo n.º 5
0
        public MainWindow()
        {
            InitializeComponent();

            fc = new ForecastController();



            //WeeklyDisplayData wdd = fc.GetWeeklyData();
            //HourlyDisplayData hdd = fc.GetHourlyData();
            //for (int i = 0; i <= 5;i++)
            //{
            //    WeeklyDisplayData.DayData day = wdd.GetNextDayInfo();
            //    StackPanel sp = new StackPanel { Orientation = Orientation.Horizontal };
            //    TextBox tb = new TextBox { Name = "TemperatureWeekDay" + i, MinHeight = 100, MinWidth = 100 };
            //    TextBox tb1 = new TextBox { Name = "ProbabilityWeekDay" + i, MinHeight = 100, MinWidth = 100 };
            //    TextBox tb2 = new TextBox { Name = "ProbabilityWeekDay" + i, MinHeight = 100, MinWidth = 100 };
            //    Image ikonica = new Image { Name = "Ikonica" + i};
            //    tb.Text = day.Temperature;
            //    tb1.Text = day.Probability;
            //    tb2.Text = day.DateLabel;
            //    sp.Children.Add(tb);
            //    sp.Children.Add(tb1);
            //    sp.Children.Add(tb2);
            //    tab3.Children.Add(sp);
            //}

            //for (int i = 0; i <= 2; i++)
            //{
            //    HourlyDisplayData.HourData hour = hdd.GetNextHourInfo();
            //    StackPanel sp = new StackPanel { Orientation = Orientation.Horizontal };
            //    TextBox tb = new TextBox { Name = "TemperatureHour" + i, MinHeight = 100, MinWidth = 100 };
            //    TextBox tb1 = new TextBox { Name = "ProbabilityHour" + i, MinHeight = 100, MinWidth = 100 };
            //    TextBox tb2 = new TextBox { Name = "TimeHour" + i, MinHeight = 100, MinWidth=100};
            //    Image ikonica = new Image { Name = "Ikonica" + i };
            //    tb.Text = hour.Time;
            //    tb1.Text = hour.Temperature;
            //    tb2.Text = hour.Probability;

            //    sp.Children.Add(tb);
            //    sp.Children.Add(tb1);
            //    sp.Children.Add(tb2);
            //    sp.Children.Add(ikonica);
            //    tab2.Children.Add(sp);
            //}

            RefreshData();
        }
        public void when_calling_GetCities_error_is_logged_when_exception_happened()
        {
            var foreCastService = new Mock <IForecastService>();

            foreCastService.Setup(m => m.GetCities(It.IsAny <string>()))
            .Throws <Exception>();

            var logger = new Mock <IWeatherAppLogger <ForecastController> >();

            logger.Setup(m => m.LogError(It.IsAny <string>())).Verifiable();

            _forecastController = new ForecastController(logger.Object, foreCastService.Object);
            var result = _forecastController.Get();

            logger.Verify(m => m.LogError(It.IsAny <string>()), Times.Once);
        }
Ejemplo n.º 7
0
        public void GetWeatherWithNoCity()
        {
            // Given that city is not supplied
            // When calling GetForecast
            // Then Expect a response of OK with an empty forecast object and an error collection of 1
            var fc = new ForecastController(new ForecastManager(new OpenWeather()));
            var r  = fc.GetForecast(string.Empty);

            Assert.That(r.StatusCode == HttpStatusCode.OK, "Even when the city is not supplied the API should return an empty object");

            // Test that the error collection is populated
            System.Threading.Tasks.Task <string> s = r.Content.ReadAsStringAsync();
            s.Wait();
            var wf = Helper.JsonHelper <WeatherForecast> .JsonDeserialize(s.Result);

            Assert.That(wf.ErrorMessages.Contains("City name was not specified"), "The controller returned an incorrect error message");
        }
        public HourlyDisplayWindow()
        {
            InitializeComponent();

            ForecastController fc = new ForecastController();
            HourlyDisplayData  hh = fc.GetHourlyData();

            for (int i = 0; i < hh.GetDisplayHourCount(); i++)
            {
                HourlyDisplayData.HourData h = hh.GetNextHourInfo();
                switch (i)
                {
                case 0:
                    _Time1                   = h.Time;
                    Vreme1.DataContext       = this;
                    _TemperatureInfo1        = h.Temperature;
                    Temperatura1.DataContext = this;
                    _Probability1            = h.Probability;
                    Verovatnoca1.DataContext = this;
                    break;

                case 1:
                    _Time2                   = h.Time;
                    Vreme2.DataContext       = this;
                    _TemperatureInfo2        = h.Temperature;
                    Temperatura2.DataContext = this;
                    _Probability2            = h.Probability;
                    Verovatnoca2.DataContext = this;
                    break;

                case 2:
                    _Time3                   = h.Time;
                    Vreme3.DataContext       = this;
                    _TemperatureInfo3        = h.Temperature;
                    Temperatura3.DataContext = this;
                    _Probability3            = h.Probability;
                    Verovatnoca3.DataContext = this;
                    break;

                default:
                    break;
                }
            }
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Перерисовака графика
        /// </summary>
        private void CreateChart()
        {
            int WidthDifference  = pbChart.Location.X + chart.Indent + 5;
            int HeightDifference = pbChart.Location.Y + chart.Indent + 10;

            pbChart.Size = new Size(this.Size.Width - WidthDifference, this.Size.Height - HeightDifference);
            StateClass stateClass =
                CalculationDefectsController.GetCurrentStateClass(StateClassController.GetShaft(cbMachines.SelectedItem as Machine),
                                                                  (cbMachines.SelectedItem as Machine).Head);
            List <ResultDiagnostics> resultDiagnostics = new List <ResultDiagnostics>();
            List <Repairs>           repairs           = RepairsController.GetRepairs((cbMachines.SelectedItem as Machine));
            List <ResultForecast>    forecasts         = new List <ResultForecast>();

            if (rbBearing.Checked)
            {
                resultDiagnostics = DiagnosticResultController.GetBearingResult(cbMachines.SelectedItem as Machine);
            }
            else
            {
                resultDiagnostics = DiagnosticResultController.GetShaftResult(cbMachines.SelectedItem as Machine);
            }
            if (rbStandartForecast.Checked)
            {
                forecasts =
                    ForecastController.GetStandartForecast(resultDiagnostics,
                                                           stateClass,
                                                           (cbMachines.SelectedItem as Machine));
            }
            else
            {
                forecasts =
                    ForecastController.GetSimpleForecast(resultDiagnostics,
                                                         stateClass,
                                                         (cbMachines.SelectedItem as Machine));
            }

            chart = new Chart(pbChart.ClientRectangle, resultDiagnostics, forecasts, stateClass, repairs);
            pbChart.Invalidate();
        }
Ejemplo n.º 10
0
        public void TestForecastController()
        {
            var city     = "London,GB";
            var errorMsg = string.Empty;

            // Given a forecast controller
            // When a forecast manager is not passed into the constructor
            // Then throw an argument null exception
            Assert.Throws <ArgumentNullException>(() => { new ForecastController(null); }, "Forecast Controller should not permit instantiation without a valid ForecastManager");

            var fMgr         = new Mock <IForecastManager>();
            var fakeForecast = getFakeForecastObject();

            fMgr.Setup(fcst => fcst.GetForecastByCity(It.IsAny <string>(), It.IsAny <string>())).Returns(fakeForecast);
            var fc          = new ForecastController(fMgr.Object);
            var responseObj = fc.GetForecast(city);

            fMgr.Verify(mgr => mgr.GetForecastByCityJson(city, out errorMsg), Times.Once, "GetForecastByCityJson method not called from ForecastManager class");
            fMgr.Verify(mgr => mgr.GetForecastByCity(It.IsAny <string>(), city), Times.Once, "GetForecastByCity method not called from ForecastManager class");

            Assert.That(responseObj.StatusCode == HttpStatusCode.OK, "The response returned indicated an error");

            // Test that the error collection is populated
            System.Threading.Tasks.Task <string> s = responseObj.Content.ReadAsStringAsync();
            s.Wait();
            var wf = Helper.JsonHelper <WeatherForecast> .JsonDeserialize(s.Result);

            var wf2 = getFakeForecastObject();

            // Compare both objects to ensure they're identical in terms of value rather than reference
            string wf1Json = JsonConvert.SerializeObject(wf);
            string wf2Json = JsonConvert.SerializeObject(wf2);

            Assert.AreEqual(wf1Json, wf2Json, "The result received from the controller was incorrect");
            Assert.That(wf.ErrorMessages.Count == 1, "An error should be present in the returned forecast object");
        }
Ejemplo n.º 11
0
        public WeeklyDisplayWindow()
        {
            InitializeComponent();

            ForecastController fc  = new ForecastController();
            WeeklyDisplayData  wdd = fc.GetWeeklyData();

            for (int i = 0; i < wdd.GetDisplayDayCount(); i++)
            {
                //Console.WriteLine(i);
                WeeklyDisplayData.DayData d = wdd.GetNextDayInfo();
                switch (i)
                {
                case 0:
                    _Date = d.DateLabel;
                    DanasnjiDatum1.DataContext = this;
                    _TemperatureInfo           = d.Temperature;
                    Temperatura1.DataContext   = this;
                    _Probability             = d.Probability;
                    Verovatnoca1.DataContext = this;
                    break;

                case 1:
                    _Date2 = d.DateLabel;
                    DanasnjiDatum2.DataContext = this;
                    _TemperatureInfo2          = d.Temperature;
                    Temperatura2.DataContext   = this;
                    _Probability2            = d.Probability;
                    Verovatnoca2.DataContext = this;
                    break;

                case 2:
                    _Date3 = d.DateLabel;
                    DanasnjiDatum3.DataContext = this;
                    _TemperatureInfo3          = d.Temperature;
                    Temperatura3.DataContext   = this;
                    _Probability3            = d.Probability;
                    Verovatnoca3.DataContext = this;
                    break;

                case 3:
                    _Date4 = d.DateLabel;
                    DanasnjiDatum4.DataContext = this;
                    _TemperatureInfo4          = d.Temperature;
                    Temperatura4.DataContext   = this;
                    _Probability4            = d.Probability;
                    Verovatnoca4.DataContext = this;
                    break;

                case 4:
                    _Date5 = d.DateLabel;
                    DanasnjiDatum5.DataContext = this;
                    _TemperatureInfo5          = d.Temperature;
                    Temperatura5.DataContext   = this;
                    _Probability5            = d.Probability;
                    Verovatnoca5.DataContext = this;
                    break;

                case 5:
                    _Date6 = d.DateLabel;
                    DanasnjiDatum6.DataContext = this;
                    _TemperatureInfo6          = d.Temperature;
                    Temperatura6.DataContext   = this;
                    _Probability6            = d.Probability;
                    Verovatnoca6.DataContext = this;
                    break;

                case 6:
                    _Date7 = d.DateLabel;
                    DanasnjiDatum7.DataContext = this;
                    _TemperatureInfo7          = d.Temperature;
                    Temperatura7.DataContext   = this;
                    _Probability7            = d.Probability;
                    Verovatnoca7.DataContext = this;
                    break;

                default:
                    break;
                }
            }
        }
 public void Setup()
 {
     _mockService = Substitute.For <IWeatherForecastService>();
     _mockLogger  = Substitute.For <ILogger <ForecastController> >();
     _controller  = new ForecastController(_mockLogger, _mockService);
 }
Ejemplo n.º 13
0
 public void RunBeforeEachTest()
 {
     ContextMock = new Mock <ForecastContext>();
     ServiceMock = new Mock <IForecastService>();
     Controller  = new ForecastController(ServiceMock.Object, ContextMock.Object);
 }