示例#1
0
        public async Task Should_CallCorrectServiceMethodAsync()
        {
            //arrange/act
            await GetController().Get();

            //assert
            MockMovieService.Verify(s => s.TopMoviesAsync(It.IsAny <byte>()), Times.Once);
        }
示例#2
0
        public void OnInitShouldFillGenresList()
        {
            //Arrange
            var movieService          = new MockMovieService();
            var genreService          = new MockGenreService();
            var searchMoviesViewModel = new SearchMoviesViewModel(movieService, genreService);
            var genres = genreService.GetAllAsync("en-US").Result;

            //Act
            searchMoviesViewModel.Init(genres);

            //Assert
            Assert.AreEqual(searchMoviesViewModel.Genres, genres);
        }
示例#3
0
        public async Task GetGenresAsyncShouldFillGenresList()
        {
            //Arrange
            var movieService            = new MockMovieService();
            var genreService            = new MockGenreService();
            var upcomingMoviesViewModel = new UpcomingMoviesViewModel(movieService, genreService);

            upcomingMoviesViewModel.Genres.Clear();

            //Act
            await upcomingMoviesViewModel.GetGenresAsync();

            //Assert
            Assert.IsNotEmpty(upcomingMoviesViewModel.Genres);
        }
示例#4
0
        public async Task LoadMoreItemsAsyncShouldFillMoviesList()
        {
            //Arrange
            var movieService          = new MockMovieService();
            var genreService          = new MockGenreService();
            var searchMoviesViewModel = new SearchMoviesViewModel(movieService, genreService);

            searchMoviesViewModel.Movies.Clear();

            //Act
            await searchMoviesViewModel.LoadMoreItemsAsync();

            //Assert
            Assert.IsNotEmpty(searchMoviesViewModel.Movies);
        }
示例#5
0
        public void Should_ReturnJsonResult()
        {
            //arrange
            MockMovieService.Setup(s => s.TopMoviesAsync(It.IsAny <byte>())).Returns(Task.FromResult(new List <dto.Movie> {
                new dto.Movie()
            }));

            //act
            var asyncResult = GetController().Get();

            //assert
            var result = asyncResult.Result;

            Assert.IsInstanceOf <JsonResult>(result);
        }
示例#6
0
        public async Task LoadMoreItemsAsyncShouldNotFillMoviesListWhenGetMoreResultsPropertyIsFalse()
        {
            //Arrange
            var movieService          = new MockMovieService();
            var genreService          = new MockGenreService();
            var searchMoviesViewModel = new SearchMoviesViewModel(movieService, genreService);

            searchMoviesViewModel.Movies.Clear();
            searchMoviesViewModel.GetMoreResults = false;

            //Act
            await searchMoviesViewModel.LoadMoreItemsAsync();

            //Assert
            Assert.IsEmpty(searchMoviesViewModel.Movies);
        }
示例#7
0
        public void WhenCalling_SaveRating_WithInvalidMovieRating_ExceptException(int movieId, bool movieExists, int userId, bool userExists)
        {
            //arrange
            var movieRating = new MovieRating
            {
                MovieId = movieId,
                UserId  = userId,
                Rating  = 1
            };

            MockMovieService.Setup(s => s.MovieExistsAsync(movieId)).Returns(Task.FromResult(movieExists));
            MockUserService.Setup(s => s.UserExistsAsync(userId)).Returns(Task.FromResult(userExists));

            //act/assert
            Assert.That(() => GetService().SaveRatingAsync(movieRating), Throws.ArgumentException);
        }
示例#8
0
        public void Should_ReturnJson()
        {
            //arrange
            MockMovieService.Setup(s => s.ValidateSearchCriteria(It.IsAny <MovieSearchCriteria>())).Returns(MovieSearchValidationResults.OK);
            MockMovieService.Setup(s => s.SearchMoviesAsync(It.IsAny <MovieSearchCriteria>())).Returns(Task.FromResult(new List <dto.Movie> {
                new dto.Movie()
            }));

            //act
            var jsonAsyncResult = GetController().Get(new MovieSearchCriteria());

            //assert
            var jsonResult = jsonAsyncResult.Result;

            Assert.IsInstanceOf <JsonResult>(jsonResult);
        }
示例#9
0
        public void WhenCalling_ValidateMovieRating_WithInvalidMovieRating_ExpectResultReturned(int movieId, bool movieExists, int userId, bool userExists, MovieRatingSaveValidationResults expectedResult)
        {
            //arrange
            var movieRating = new MovieRating
            {
                MovieId = movieId,
                UserId  = userId,
                Rating  = 1
            };

            MockUserService.Setup(s => s.UserExistsAsync(userId)).Returns(Task.FromResult(userExists));
            MockMovieService.Setup(s => s.MovieExistsAsync(movieId)).Returns(Task.FromResult(movieExists));

            //act
            var result = GetService().ValidateMovieRatingAsync(movieRating);

            //assert
            Assert.AreEqual(expectedResult, result.Result);
        }
示例#10
0
        public void WhenCalling_SaveRating_WithValidMovieRating_RepositoryMethodCalled(int movieId, int userId, byte rating)
        {
            //arrange
            var movieRating = new MovieRating
            {
                MovieId = movieId,
                UserId  = userId,
                Rating  = rating
            };

            MockMovieService.Setup(s => s.MovieExistsAsync(movieId)).Returns(Task.FromResult(true));
            MockUserService.Setup(s => s.UserExistsAsync(userId)).Returns(Task.FromResult(true));

            //act
            var result = GetService().SaveRatingAsync(movieRating);

            //assert
            MockRatingRepository.Verify(s => s.SaveRatingAsync(It.Is <MovieRating>(p => p.MovieId == movieId && p.UserId == userId && p.Rating == rating)), Times.Once);
        }
示例#11
0
        public void Should_ReturnNotFound_IfMoviesAreNullOrEmpty(bool isNull)
        {
            //arrange
            if (isNull)
            {
                MockMovieService.Setup(s => s.TopMoviesAsync(It.IsAny <byte>())).Returns(Task.FromResult(null as List <dto.Movie>));
            }
            else
            {
                MockMovieService.Setup(s => s.TopMoviesAsync(It.IsAny <byte>())).Returns(Task.FromResult(new List <dto.Movie>()));
            }

            //act
            var asyncResult = GetController().Get();

            //assert
            var result = asyncResult.Result;

            Assert.IsInstanceOf <NotFoundResult>(result);
        }
示例#12
0
        public void Should_ReturnOKStatus_WhenMovieIsSaved(bool isSaved)
        {
            //arrange
            MockMovieService.Setup(s => s.SaveMovieAsync(It.IsAny <dto.Movie>())).Returns(Task.FromResult(isSaved));

            //act
            var asyncResult = GetController().Post(new dto.Movie());

            //assert
            var result = asyncResult.Result;

            if (isSaved)
            {
                Assert.IsInstanceOf <OkResult>(result);
            }
            else
            {
                Assert.IsInstanceOf <BadRequestObjectResult>(result);
            }
        }
示例#13
0
        public void Should_ReturnNotFoundWhen_ResultIsNullOrEmpty(bool isNull)
        {
            //arrange
            MockMovieService.Setup(s => s.ValidateSearchCriteria(It.IsAny <MovieSearchCriteria>())).Returns(MovieSearchValidationResults.OK);
            if (isNull)
            {
                MockMovieService.Setup(s => s.SearchMoviesAsync(It.IsAny <MovieSearchCriteria>())).Returns(Task.FromResult(null as List <dto.Movie>));
            }
            else
            {
                MockMovieService.Setup(s => s.SearchMoviesAsync(It.IsAny <MovieSearchCriteria>())).Returns(Task.FromResult(new List <dto.Movie>()));
            }

            //act
            var asyncResult = GetController().Get(new MovieSearchCriteria());

            //assert
            var result = asyncResult.Result;

            Assert.IsInstanceOf <NotFoundResult>(result);
        }
示例#14
0
        public void Should_ReturnExpectedResponseWhen_Invalid(MovieSearchValidationResults validationResult)
        {
            //arrange
            MockMovieService.Setup(s => s.ValidateSearchCriteria(It.IsAny <MovieSearchCriteria>())).Returns(validationResult);

            //act
            var asycResult = GetController().Get(new MovieSearchCriteria());

            //assert
            var result = asycResult.Result;

            switch (validationResult)
            {
            case MovieSearchValidationResults.InvalidCriteria:
            case MovieSearchValidationResults.NoCriteria:
                Assert.IsInstanceOf <BadRequestObjectResult>(result);
                var badRequest = result as BadRequestObjectResult;
                Assert.AreEqual(validationResult.ToString(), badRequest.Value);
                break;
            }
        }