예제 #1
0
        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);
        }
예제 #2
0
 private GameContext BuildGameContext(MockGameRepository mockGameRepository         = null,
                                      MockCategoryRepository mockCategoryRepository = null, MockGameMapper mockGameMapper             = null,
                                      MockCategoryMapper mockCategoryMapper         = null, MockPlayedDateMapper mockPlayedGameMapper = null)
 {
     mockGameRepository     = mockGameRepository ?? new MockGameRepository();
     mockCategoryRepository = mockCategoryRepository ?? new MockCategoryRepository();
     mockGameMapper         = mockGameMapper ?? new MockGameMapper();
     mockCategoryMapper     = mockCategoryMapper ?? new MockCategoryMapper();
     mockPlayedGameMapper   = mockPlayedGameMapper ?? new MockPlayedDateMapper();
     return(new GameContext(mockGameRepository, mockCategoryRepository, mockGameMapper, mockCategoryMapper, mockPlayedGameMapper));
 }