public void CallPlayerServiceSearchPlayer_WithPage1_WhenPageIsNull()
        {
            // Arrange
            var searchWord    = "Mes";
            var sortBy        = "probablyInvalidProperty"; //then default sorting by player's last name kicks in
            var chosenTeamIds = new List <int> {
                2, 4
            };
            var playersPerPage = 3;

            var mockedPlayerService = new Mock <IPlayerService>();
            var mockedTeamService   = new Mock <ITeamService>();
            var mockedMapper        = new Mock <IMapperAdapter>();
            var submitModel         = new SearchSubmitModel()
            {
                SearchWord    = searchWord,
                SortBy        = sortBy,
                ChosenTeamIds = chosenTeamIds
            };

            mockedPlayerService.Setup(x => x.SearchPlayers(searchWord, chosenTeamIds, sortBy, 1, playersPerPage)).Verifiable();

            var controller = new SearchController(mockedPlayerService.Object, mockedTeamService.Object, mockedMapper.Object);

            // Act
            controller.SearchPlayers(submitModel, null);

            // Assert
            mockedPlayerService.Verify(x => x.SearchPlayers(searchWord, chosenTeamIds, sortBy, 1, playersPerPage), Times.Once);
        }
        public void CallPlayerService_GetPlayersCount_WithCorrectParams()
        {
            // Arrange
            var searchWord    = "Messi";
            var chosenTeamIds = new List <int> {
                3, 4
            };

            var mockedPlayerService = new Mock <IPlayerService>();
            var mockedTeamService   = new Mock <ITeamService>();
            var mockedMapper        = new Mock <IMapperAdapter>();
            var submitModel         = new SearchSubmitModel()
            {
                SearchWord    = searchWord,
                ChosenTeamIds = chosenTeamIds
            };

            mockedPlayerService.Setup(x => x.GetPlayersCount(searchWord, chosenTeamIds)).Verifiable();

            var controller = new SearchController(mockedPlayerService.Object, mockedTeamService.Object, mockedMapper.Object);

            // Act
            controller.SearchPlayers(submitModel, null);

            // Assert
            mockedPlayerService.Verify(x => x.GetPlayersCount(searchWord, chosenTeamIds), Times.Once);
        }
        public void CallPlayerServiceSearchPlayer_WithCorrectParams()
        {
            // Arrange
            var searchWord    = "Mes";
            var chosenTeamIds = new List <int> {
                2, 3
            };
            var sortBy         = "FirstName";
            var page           = 2;
            var playersPerPage = 3; // TODO magic..

            var mockedPlayerService = new Mock <IPlayerService>();
            var mockedTeamService   = new Mock <ITeamService>();
            var mockedMapper        = new Mock <IMapperAdapter>();
            var submitModel         = new SearchSubmitModel()
            {
                SearchWord    = searchWord,
                SortBy        = sortBy,
                ChosenTeamIds = chosenTeamIds
            };

            mockedPlayerService.Setup(x => x.SearchPlayers(searchWord, chosenTeamIds, sortBy, page, playersPerPage)).Verifiable();

            var controller = new SearchController(mockedPlayerService.Object, mockedTeamService.Object, mockedMapper.Object);

            // Act
            controller.SearchPlayers(submitModel, page);

            // Assert
            mockedPlayerService.Verify(x => x.SearchPlayers(searchWord, chosenTeamIds, sortBy, page, playersPerPage), Times.Once);
        }
        public void CallBooksServiceSearchBooksWithPage1WhenPageIsNull()
        {
            // Arrange
            var searchWord      = "abcv";
            var sortBy          = "property";
            var chosenGenresIds = new List <int> {
                1, 7
            };

            var mockedBooksService  = new Mock <IBooksService>();
            var mockedGenresService = new Mock <IGenresService>();
            var mockedMapper        = new Mock <IMapperAdapter>();
            var submitModel         = new SearchSubmitModel()
            {
                SearchWord      = searchWord,
                SortBy          = sortBy,
                ChosenGenresIds = chosenGenresIds
            };

            mockedBooksService.Setup(x => x.SearchBooks(searchWord, chosenGenresIds, sortBy, 1, Constants.BooksPerPage)).Verifiable();

            var controller = new SearchController(mockedBooksService.Object, mockedGenresService.Object, mockedMapper.Object);

            // Act
            controller.SearchBooks(submitModel, null);

            // Assert
            mockedBooksService.Verify(x => x.SearchBooks(searchWord, chosenGenresIds, sortBy, 1, Constants.BooksPerPage), Times.Once);
        }
        public void CallBooksServiceGetBooksCountWithCorrectParams()
        {
            // Arrange
            var searchWord      = "abcv";
            var chosenGenresIds = new List <int> {
                1, 7
            };

            var mockedBooksService  = new Mock <IBooksService>();
            var mockedGenresService = new Mock <IGenresService>();
            var mockedMapper        = new Mock <IMapperAdapter>();
            var submitModel         = new SearchSubmitModel()
            {
                SearchWord      = searchWord,
                ChosenGenresIds = chosenGenresIds
            };

            mockedBooksService.Setup(x => x.GetBooksCount(searchWord, chosenGenresIds)).Verifiable();

            var controller = new SearchController(mockedBooksService.Object, mockedGenresService.Object, mockedMapper.Object);

            // Act
            controller.SearchBooks(submitModel, null);

            // Assert
            mockedBooksService.Verify(x => x.GetBooksCount(searchWord, chosenGenresIds), Times.Once);
        }
예제 #6
0
        private PartialViewResult ExecuteSearch(SearchSubmitModel submitModel, int page)
        {
            var result = this.booksService.SearchBooks(submitModel.SearchWord, submitModel.ChosenGenresIds, submitModel.SortBy, page, Constants.BooksPerPage);
            var count  = this.booksService.GetBooksCount(submitModel.SearchWord, submitModel.ChosenGenresIds);

            var resultViewModel = new SearchResultsViewModel();

            resultViewModel.BooksCount  = count;
            resultViewModel.SubmitModel = submitModel;
            resultViewModel.Pages       = (int)Math.Ceiling((double)count / Constants.BooksPerPage);
            resultViewModel.Page        = page;
            resultViewModel.Books       = this.mapper.Map <IEnumerable <BookViewModel> >(result);

            return(this.PartialView("_ResultsPartial", resultViewModel));
        }
        public void ReturnViewModel_WithCorrectSubmitModel()
        {
            // Arrange
            var mockedPlayerService = new Mock <IPlayerService>();
            var mockedTeamService   = new Mock <ITeamService>();
            var mockedMapper        = new Mock <IMapperAdapter>();
            var submitModel         = new SearchSubmitModel();

            var controller = new SearchController(mockedPlayerService.Object, mockedTeamService.Object, mockedMapper.Object);

            // Act & Assert
            controller.WithCallTo(c => c.SearchPlayers(submitModel, null))
            .ShouldRenderPartialView("_ResultsPartial")
            .WithModel <SearchResultsViewModel>(x => x.SubmitModel == submitModel);
        }
        public PartialViewResult SearchPlayers(SearchSubmitModel submitModel, int?page)
        {
            int actualPage     = page ?? 1;
            int playersPerPage = 3;

            var result = this.playerService.SearchPlayers(submitModel.SearchWord, submitModel.ChosenTeamIds, submitModel.SortBy, actualPage, playersPerPage);
            var count  = this.playerService.GetPlayersCount(submitModel.SearchWord, submitModel.ChosenTeamIds);

            var resultViewModel = new SearchResultsViewModel();

            resultViewModel.PlayersCount = count;
            resultViewModel.SubmitModel  = submitModel;
            resultViewModel.Pages        = (int)Math.Ceiling((double)count / playersPerPage);

            resultViewModel.Players = mapper.Map <IEnumerable <PlayerViewModel> >(result);

            return(this.PartialView("_ResultsPartial", resultViewModel));
        }
예제 #9
0
        public PartialViewResult SearchBooks(SearchSubmitModel submitModel, int?page)
        {
            int actualPage = page ?? 1;

            return(this.ExecuteSearch(submitModel, actualPage));
        }