private void EditGame() { try { try { ValidateDataEntry(); } catch (DataValidationException ex) { _sharedService.ShowExceptionMessage(ex); return; } var seasonID = WpfGlobals.SelectedSeason; // Edit selected row of Games table. var oldGame = MapOldGameValues(); var newGame = MapNewGameValues(); _controlService.EditGame(oldGame, newGame); if (IsFindGameFilterApplied) { ApplyFindGameFilter(); } else { Games = new ReadOnlyCollection <Game>( _controlService.GetGames((int)WpfGlobals.SelectedSeason).ToList()); } } catch (Exception ex) { _sharedService.ShowExceptionMessage(ex); } }
public void EditGameCommand_IsFindGameFilterApplied_CallsApplyFindGameFilter() { // Arrange // Instantiate class under test. var viewModel = new GamesWindowViewModel(_sharedService, _controlService, _gameFinderWindow) { // Set up needed infrastructure of class under test. IsFindGameFilterApplied = true, SelectedGame = new Game { SeasonID = (int)WpfGlobals.SelectedSeason, Week = 1, GuestName = "Guest", GuestScore = 0, HostName = "Host", HostScore = 0, IsPlayoffGame = false, Notes = "Notes" } }; // Set up needed infrastructure of class under test. var selectedGame = viewModel.SelectedGame; var oldGame = new Game { ID = selectedGame.ID, SeasonID = (int)WpfGlobals.SelectedSeason, Week = selectedGame.Week, GuestName = selectedGame.GuestName, GuestScore = selectedGame.GuestScore, HostName = selectedGame.HostName, HostScore = selectedGame.HostScore, IsPlayoffGame = selectedGame.IsPlayoffGame, Notes = selectedGame.Notes }; var newGame = new Game { SeasonID = (int)WpfGlobals.SelectedSeason, Week = selectedGame.Week, GuestName = selectedGame.GuestName, GuestScore = selectedGame.GuestScore, HostName = selectedGame.HostName, HostScore = selectedGame.HostScore, IsPlayoffGame = selectedGame.IsPlayoffGame, Notes = selectedGame.Notes }; // Act viewModel.EditGameCommand.Execute(null); // Assert A.CallTo(() => _controlService.EditGame(A <Game> .That.IsEqualTo(oldGame), A <Game> .That.IsEqualTo(newGame))) .MustHaveHappenedOnceExactly(); var dataContext = viewModel.GameFinder.DataContext as IGameFinderWindowViewModel; A.CallTo(() => _controlService.GetGames((int)WpfGlobals.SelectedSeason, dataContext.GuestName, dataContext.HostName)).MustHaveHappenedOnceExactly(); Assert.IsInstanceOf <ReadOnlyCollection <Game> >(viewModel.Games); Assert.IsTrue(viewModel.IsFindGameFilterApplied); }