public void GetTyrePlacementOnSameAxleAsTest() { var currentSelectionViewModel = new CurrentSelectionViewModel(_mockedIHasListTyresDetails, new WeatherService(new OpenWeatherMapApiConsumer(new WebClientConsumer()))); var tyrePlacement = currentSelectionViewModel.GetTyrePlacementOnSameAxleAs(currentSelectionViewModel.FrontLeft); Assert.AreEqual(currentSelectionViewModel.FrontRight, tyrePlacement); }
public void GetTyrePlacementOnSameAxleAsTest_ValidPlacement() { var currentSelectionViewModel = new CurrentSelectionViewModel(_mockedIHasListTyresDetails, new WeatherService(new OpenWeatherMapApiConsumer(new WebClientConsumer()))); var tyrePlacementOnSameAxleViewModel = currentSelectionViewModel.GetTyrePlacementOnSameAxleAs(currentSelectionViewModel.FrontLeft); Assert.IsTrue(tyrePlacementOnSameAxleViewModel != null); Assert.AreEqual(TyrePlacement.FR, tyrePlacementOnSameAxleViewModel.TyrePlacementTitle); Assert.AreNotEqual(TyrePlacement.RL, tyrePlacementOnSameAxleViewModel.TyrePlacementTitle); }
public async Task IsNewTyreOnSameAxleSameFamilyTest_DifferentFamily() { var dataManager = new DataManager(); await dataManager.LoadAndParseData(); var currentSelectionViewModel = new CurrentSelectionViewModel(_mockedIHasListTyresDetails, new WeatherService(new OpenWeatherMapApiConsumer(new WebClientConsumer()))); currentSelectionViewModel.FrontLeft.SelectedTyre = new TyreDetailsViewModel(dataManager.Tyres.First(a => a.Family == "F1" && a.Placement == "FL")); currentSelectionViewModel.FrontRight.SelectedTyre = new TyreDetailsViewModel(dataManager.Tyres.First(a => a.Family == "F2" && a.Placement == "FR")); // Changing the family for FrontRight, should void the selection for FrontLeft since it's on the same Axle. This is one of the validation rules. Assert.IsTrue(currentSelectionViewModel.FrontLeft.SelectedTyre == null); Assert.IsFalse(currentSelectionViewModel.FrontRight.SelectedTyre == null); }
public async Task IsNewTyreOnSameAxleSameFamilyTest_SameFamily() { var dataManager = new DataManager(); await dataManager.LoadAndParseData(); var currentSelectionViewModel = new CurrentSelectionViewModel(_mockedIHasListTyresDetails, new WeatherService(new OpenWeatherMapApiConsumer(new WebClientConsumer()))); currentSelectionViewModel.FrontLeft.SelectedTyre = new TyreDetailsViewModel(dataManager.Tyres.First(t => t.Family == "F1" && t.Placement == "FL")); currentSelectionViewModel.FrontRight.SelectedTyre = new TyreDetailsViewModel(dataManager.Tyres.First(t => t.Family == "F1" && t.Placement == "FR")); var isTyreOnSameAxleSameFamily = currentSelectionViewModel.IsNewTyreOnSameAxleSameFamily(currentSelectionViewModel.FrontLeft); Assert.IsTrue(isTyreOnSameAxleSameFamily); }
public async Task IsNewTyreSameTypeAsOthers_SameType() { var dataManager = new DataManager(); await dataManager.LoadAndParseData(); var currentSelectionViewModel = new CurrentSelectionViewModel(_mockedIHasListTyresDetails, new WeatherService(new OpenWeatherMapApiConsumer(new WebClientConsumer()))); currentSelectionViewModel.FrontLeft.SelectedTyre = new TyreDetailsViewModel(dataManager.Tyres.First(t => t.Type == "SuperSoft" && t.Placement == "FL")); currentSelectionViewModel.FrontRight.SelectedTyre = new TyreDetailsViewModel(dataManager.Tyres.First(t => t.Type == "SuperSoft" && t.Placement == "FR")); currentSelectionViewModel.RearLeft.SelectedTyre = new TyreDetailsViewModel(dataManager.Tyres.First(t => t.Type == "SuperSoft" && t.Placement == "RL")); currentSelectionViewModel.RearRight.SelectedTyre = new TyreDetailsViewModel(dataManager.Tyres.First(t => t.Type == "SuperSoft" && t.Placement == "RR")); var isTyreSameTypeAsOthers = currentSelectionViewModel.IsNewTyreSameTypeAsOthers(currentSelectionViewModel.FrontLeft); Assert.IsTrue(isTyreSameTypeAsOthers); }
public async Task IsNewTyreSameTypeAsOthers_DifferentType() { var dataManager = new DataManager(); await dataManager.LoadAndParseData(); var currentSelectionViewModel = new CurrentSelectionViewModel(_mockedIHasListTyresDetails, new WeatherService(new OpenWeatherMapApiConsumer(new WebClientConsumer()))); currentSelectionViewModel.FrontLeft.SelectedTyre = new TyreDetailsViewModel(dataManager.Tyres.First(t => t.Type == "SuperSoft" && t.Placement == "FL")); currentSelectionViewModel.FrontRight.SelectedTyre = new TyreDetailsViewModel(dataManager.Tyres.First(t => t.Type == "SuperSoft" && t.Placement == "FR")); currentSelectionViewModel.RearLeft.SelectedTyre = new TyreDetailsViewModel(dataManager.Tyres.First(t => t.Type == "SuperSoft" && t.Placement == "RL")); currentSelectionViewModel.RearRight.SelectedTyre = new TyreDetailsViewModel(dataManager.Tyres.First(t => t.Type == "Medium" && t.Placement == "RR")); //Changing RR to be Medium, should void the others. This is one of the validation rules. Assert.IsTrue(currentSelectionViewModel.FrontLeft.SelectedTyre == null); Assert.IsTrue(currentSelectionViewModel.FrontRight.SelectedTyre == null); Assert.IsTrue(currentSelectionViewModel.RearLeft.SelectedTyre == null); Assert.IsFalse(currentSelectionViewModel.RearRight.SelectedTyre == null); }
public async Task UpdateTemperatureTest_SelectedTrack() { var dataManager = new DataManager(); await dataManager.LoadAndParseData(); var currentSelectionViewModel = new CurrentSelectionViewModel(_mockedIHasListTyresDetails, new WeatherService(new OpenWeatherMapApiConsumer(new WebClientConsumer()))); var trackDetails = new Mock <TrackDetailsViewModel>(dataManager.Tracks[0]); currentSelectionViewModel.SelectedTrack = trackDetails.Object; currentSelectionViewModel.UpdateTemperature(); double temperature = 0.0; var weatherService = new WeatherService(new OpenWeatherMapApiConsumer(new WebClientConsumer())); weatherService.GetTemperatureForLocationAsync(currentSelectionViewModel.SelectedTrack.Location, (object sender, EventArgs e) => { if (e is TemperatureUpdatedEventArgs temperatureArgs) { temperature = temperatureArgs.NewTemperature; } }); Assert.AreEqual(temperature, currentSelectionViewModel.SelectedTrackTemperature); }
public void UpdateTemperatureTest_NoSelectedTrack() { var currentSelectionViewModel = new CurrentSelectionViewModel(_mockedIHasListTyresDetails, new WeatherService(new OpenWeatherMapApiConsumer(new WebClientConsumer()))); currentSelectionViewModel.UpdateTemperature(); }