コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }