public Form1() { InitializeComponent(); //Instantiate sub+obs ws = new WeatherSubject(); tObs = new TemperatureObserver(lbTemp, ws); aObs = new AverageObserver(lbAverages, ws); fObs = new ForeCastObserver(lbForecast, ws); }
public void ForecastObs_UpdateValues_ReturnsExpected() { //Create needed objects ListBox lb = new ListBox(); WeatherSubject ws = new WeatherSubject(); ForeCastObserver fcObs = new ForeCastObserver(lb,ws); //Update tobs with some values fcObs.Update(1, 1, 1); //Just test on temperature, for full code coverage id need: //~3 tests to cover each branch of temperature-related strings //*3 for the amount of forecast options (temp,humid,baro) string expected = "Nippy"; string actual = fcObs.Temp; Assert.AreEqual(expected, actual); }
public void ObserverList_AddObserver_ReturnsExpected() { //Create needed objects ListBox lb = new ListBox(); WeatherSubject ws = new WeatherSubject(); List<IWeatherObserver> obList = new List<IWeatherObserver>(); //Make 2 observers, do not manually add these //Their ctor adds them to the passed subject ForeCastObserver fcObs1 = new ForeCastObserver(lb, ws); ForeCastObserver fcObs2 = new ForeCastObserver(lb, ws); //Expected size of list int expected = 2; int actual = ws.ObsList.Count; //Check observer was added to observer list properly Assert.AreEqual(expected, actual); }
public void ObserverList_RemoveObserver_ReturnsExpected() { //Create needed objects ListBox lb = new ListBox(); WeatherSubject ws = new WeatherSubject(); List<IWeatherObserver> obList = new List<IWeatherObserver>(); //Make 2 observers, do not manually add these //Their ctor adds them to the passed subject ForeCastObserver fcObs1 = new ForeCastObserver(lb, ws); ForeCastObserver fcObs2 = new ForeCastObserver(lb, ws); //Remove one from the list, decoupling the observer //this makes it essentially inactive ws.RemoveObserver(fcObs2); //Expected size of list int expected = 1; int actual = ws.ObsList.Count; //Check observer was added to observer list properly Assert.AreEqual(expected, actual); }