public void ContextBuildsAViewModelWithNewGame() { var category = new Category { Id = 1, Description = "Category 1" }; var categories = new List <Category> { category }; var item = new SelectListItem { Value = "1", Text = "Category 1" }; var categorySelectListItems = new List <SelectListItem> { item }; var electedCategories = new List <CategoryViewModel>(); var playedDates = new List <PlayedDateViewModel>(); var game = new Game(); var gameViewModel = new GameViewModel { Categories = categorySelectListItems, ElectedCategories = electedCategories, PlayedDates = playedDates }; var mockGameRepository = new MockGameRepository().StubGetByToReturn(game); var mockCategoryRepository = new MockCategoryRepository().StubGetAllToReturn(categories); var mockGameMapper = new MockGameMapper().StubMapWithCategoriesToReturn(gameViewModel); var mockCategoryMapper = new MockCategoryMapper().StubSelectMapToReturn(item); var gameContext = BuildGameContext(mockGameRepository, mockCategoryRepository, mockGameMapper, mockCategoryMapper); var viewModel = gameContext.BuildViewModel(game.Id); Assert.NotNull(viewModel); Assert.Equal(1, viewModel.Categories.Count()); mockGameRepository.VerifyGetByCalledWith(game.Id); mockCategoryRepository.VerifyGetAllCalled(); mockGameMapper.VerifyMapCalledWith(game, categorySelectListItems, electedCategories, playedDates); mockCategoryMapper.VerifySelectMapCalledWith(category); }
public void ContextBuildsAViewModelWithEditedGame() { var category = new Category { Id = 1, Description = "Category 1" }; var categories = new List <Category> { category }; var item = new SelectListItem { Value = "1", Text = "Category 1" }; var categorySelectListItems = new List <SelectListItem> { item }; var categoryViewModel = new CategoryViewModel { Id = 1, Description = "Category 1" }; var electedCategories = new List <CategoryViewModel> { categoryViewModel }; var playedDateViewModel = new PlayedDateViewModel { Id = 1, FormattedPlayedDate = "1/1/2016" }; var playedDates = new List <PlayedDateViewModel> { playedDateViewModel }; var game = new Game { Id = 2, Name = "Game 2", Description = "This is game 2" }; var gamePlayedDate = new GamePlayedDate { Id = 1, GameId = game.Id, Game = game, PlayedDate = new DateTime(2016, 1, 1) }; var gamePlayedDates = new List <GamePlayedDate> { gamePlayedDate }; var gameViewModel = new GameViewModel { Id = 2, Name = "Game 2", Description = "This is game 2", Categories = categorySelectListItems, ElectedCategories = electedCategories, PlayedDates = playedDates }; var mockGameRepository = new MockGameRepository() .StubGetAllCategoriesByToReturn(categories) .StubGetAllPlayedDatesByToReturn(gamePlayedDates) .StubGetByToReturn(game); var mockCategoryRepository = new MockCategoryRepository() .StubGetAllToReturn(categories); var mockGameMapper = new MockGameMapper() .StubMapWithCategoriesToReturn(gameViewModel); var mockCategoryMapper = new MockCategoryMapper() .StubMapToReturn(categoryViewModel) .StubSelectMapToReturn(item); var mockPlayedDateMapper = new MockPlayedDateMapper() .StubMapToReturn(playedDateViewModel); var gameContext = BuildGameContext(mockGameRepository, mockCategoryRepository, mockGameMapper, mockCategoryMapper, mockPlayedDateMapper); var viewModel = gameContext.BuildViewModel(game.Id); Assert.NotNull(viewModel); Assert.Equal(1, viewModel.Categories.Count()); Assert.Equal(1, viewModel.ElectedCategories.Count()); Assert.Equal(1, viewModel.PlayedDates.Count()); mockGameRepository.VerifyGetByCalledWith(game.Id); mockGameRepository.VerifyGetAllCategoriesByCalledWith(game.Id); mockGameRepository.VerifyGetAllPlayedDatesByCalledWith(game.Id); mockCategoryRepository.VerifyGetAllCalled(); mockGameMapper.VerifyMapCalledWith(game, categorySelectListItems, electedCategories, playedDates); mockCategoryMapper.VerifySelectMapCalledWith(category); mockCategoryMapper.VerifyMapCalledWith(category); mockPlayedDateMapper.VerifyMapCalledWith(gamePlayedDate); }