Ejemplo n.º 1
0
        public async Task Succeed_WhenUserNotVoted()
        {
            var options = TestUtils.GetOptions(nameof(Succeed_WhenUserNotVoted));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Users.AddAsync(TestHelper.TestUser2());

                await arrangeContext.Movies.AddAsync(TestHelper.TestMovie1());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ReviewService(assertContext);

                var review = await sut.AddReviewToMovieAsync(1, TestHelper.TestUser2().Id, "Perfect movie.", 5);

                var movie = review.Movie;
                Assert.IsTrue(movie.TotalRating == 10);
                Assert.IsTrue(movie.AverageRating == 5);
                Assert.IsTrue(movie.NumberOfVotes == 2);
                Assert.IsTrue(assertContext.Reviews.Count() == 1);
            }
        }
        public async Task Succeed_ReturnCollection()
        {
            var options = TestUtils.GetOptions(nameof(Succeed_ReturnCollection));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Genres.AddAsync(TestHelper.TestGenre1());

                await arrangeContext.Movies.AddAsync(TestHelper.TestMovie100());

                await arrangeContext.Movies.AddAsync(TestHelper.TestMovie200());

                await arrangeContext.MoviesGenres.AddAsync(TestHelper.MoviesGenres1());

                await arrangeContext.MoviesGenres.AddAsync(TestHelper.MoviesGenres2());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new GenreService(assertContext);

                var moviesByGenre = await sut.ShowMoviesByGenreAsync("Drama");

                Assert.AreEqual(moviesByGenre.Count, 2);
            }
        }
Ejemplo n.º 3
0
        public async Task Succeed_ReturnCollection()
        {
            var options = TestUtils.GetOptions(nameof(Succeed_ReturnCollection));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Movies.AddAsync(TestHelper.TestMovie100());

                await arrangeContext.Actors.AddAsync(TestHelper.TestActor100());

                await arrangeContext.Actors.AddAsync(TestHelper.TestActor200());

                await arrangeContext.MoviesActors.AddAsync(TestHelper.TestMoviesActors100());

                await arrangeContext.MoviesActors.AddAsync(TestHelper.TestMoviesActors200());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new MovieService(assertContext);

                var allActorsByMovie = await sut.AllActorsByMovieAsync(100);

                Assert.AreEqual(allActorsByMovie.Count, 2);
            }
        }
Ejemplo n.º 4
0
        public async Task ReturnCorrect_RatingIsNotSet()
        {
            var options = TestUtils.GetOptions(nameof(ReturnCorrect_RatingIsNotSet));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Reviews.AddAsync(TestHelper.TestReview3());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ReviewService(assertContext);

                var rating = await sut.AddReviewToMovieAsync(TestHelper.TestMovie2().Id, TestHelper.TestUser1().Id, "Perfect movie!", 3);

                var movie = rating.Movie;

                Assert.AreEqual(8, movie.TotalRating);
                Assert.IsTrue(movie.AverageRating == 4);
                Assert.IsTrue(movie.NumberOfVotes == 2);
                Assert.IsTrue(assertContext.Reviews.Count() == 1);
            }
        }
Ejemplo n.º 5
0
        public async Task Succeed_ReturnMovie()
        {
            var options = TestUtils.GetOptions(nameof(Succeed_ReturnMovie));

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new MovieService(assertContext);

                DateTime releaseDate = DateTime.Now;

                var movie = await sut.CreateMovieAsync("Movie 01", "Trailer", "Poster", null, "Description", releaseDate, "3c57e188 - 409f - 447b - a55d - 37e450df359e");

                var user = new ApplicationUser()
                {
                    UserName = "******"
                };

                movie.User = user;

                Assert.AreEqual(movie.Title, "Movie 01");
                Assert.AreEqual(movie.Trailer, "Trailer");
                Assert.AreEqual(movie.Poster, "Poster");
                Assert.AreEqual(movie.Description, "Description");
                Assert.AreEqual(movie.User.UserName, "peter");
                Assert.AreEqual(movie.ReleaseDate, releaseDate);
            }
        }
        public async Task Return_Null()
        {
            var options = TestUtils.GetOptions(nameof(Return_Null));

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ReviewService(assertContext);

                var review = await sut.GetReviewByIdAsync(1);

                Assert.IsNull(review);
            }
        }
Ejemplo n.º 7
0
        public async Task Succeed_ReturnGenre()
        {
            var options = TestUtils.GetOptions(nameof(Succeed_ReturnGenre));

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new GenreService(assertContext);

                var genre = await sut.CreateGenreAsync("drama");

                Assert.AreEqual(genre.Name, "drama");
            }
        }
Ejemplo n.º 8
0
        public async Task Return_Null()
        {
            var options = TestUtils.GetOptions(nameof(Return_RightActor));

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ActorService(assertContext);

                var actor = await sut.FindActorByNameAsync("Brad", "Pit");

                Assert.IsNull(actor);
            }
        }
Ejemplo n.º 9
0
        public async Task Return_Null()
        {
            var options = TestUtils.GetOptions(nameof(Return_Null));

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var mockedService = new Mock <IServiceProvider>();
                var sut           = new UserService(assertContext, mockedService.Object);

                var user = await sut.GetUserByIdAsync(TestHelper.TestUser1().Id);

                Assert.IsNull(user);
            }
        }
        public async Task Succeed_ReturnActor()
        {
            var options = TestUtils.GetOptions(nameof(Succeed_ReturnActor));

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ActorService(assertContext);

                var actor = await sut.CreateActorAsync("Brad", "Pit", null, "Very good actor");

                Assert.AreEqual(actor.FirstName, "Brad");
                Assert.AreEqual(actor.LastName, "Pit");
                Assert.AreEqual(actor.Biography, "Very good actor");
            }
        }
        public async Task Return_True()
        {
            var options = TestUtils.GetOptions(nameof(Return_True));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                arrangeContext.Reviews.Add(TestHelper.TestReview1());
                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ReviewService(assertContext);
                Assert.IsTrue(await sut.DidUserAlreadyVoteForMovieAsync
                                  (1, TestHelper.TestUser1().Id));
            }
        }
        public async Task Return_Null()
        {
            var options = TestUtils.GetOptions(nameof(Return_RightActor));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                arrangeContext.Actors.Add(TestHelper.TestActor1());
                arrangeContext.SaveChanges();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ActorService(assertContext);

                var actor = await sut.GetActorByIdAsync(TestHelper.TestActor1().Id);

                Assert.AreEqual(actor.Id, TestHelper.TestActor1().Id);
            }
        }
        public async Task Return_RightReview()
        {
            var options = TestUtils.GetOptions(nameof(Return_RightReview));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Reviews.AddAsync(TestHelper.TestReview1());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ReviewService(assertContext);

                var review = await sut.GetReviewByIdAsync(1);

                Assert.AreEqual(review.Id, 1);
            }
        }
        public async Task ThrowExeption_ReviewIsDeleted()
        {
            var options = TestUtils.GetOptions(nameof(ThrowExeption_ReviewIsDeleted));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Reviews.AddAsync(TestHelper.TestReview3());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ReviewService(assertContext);

                var ex = await Assert.ThrowsExceptionAsync <ArgumentException>(() => sut.EditReviewAsync(TestHelper.TestReview3(), TestHelper.TestUser2().Id, 3, "very nice movie"));

                Assert.AreEqual(ex.Message, string.Format(ServicesConstants.ReviewNotPresent));
            }
        }
Ejemplo n.º 15
0
        public async Task Succeed_ReturnCheck()
        {
            var options = TestUtils.GetOptions(nameof(Succeed_ReturnCheck));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Movies.AddAsync(TestHelper.TestMovie100());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new MovieService(assertContext);

                var isMovieExists = await sut.IsMovieExistAsync("Movie 100");

                Assert.IsTrue(isMovieExists);
            }
        }
Ejemplo n.º 16
0
        public async Task Return_Succeed()
        {
            var options = TestUtils.GetOptions(nameof(Return_Succeed));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Reviews.AddAsync(TestHelper.TestReview1());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ReviewService(assertContext);

                var review = await sut.DeleteReviewAsync(TestHelper.TestReview1().Id, TestHelper.TestUser1().Id);

                Assert.IsTrue(review.IsDeleted);
            }
        }
        public async Task Succeed_Return()
        {
            var options = TestUtils.GetOptions(nameof(Succeed_Return));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Movies.AddAsync(TestHelper.TestMovie100());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new MovieService(assertContext);

                var getMovieById = await sut.GetMovieByIdAsync(100);

                Assert.AreEqual(getMovieById.Title, "Movie 100");
            }
        }
        public async Task Return_RightCollection()
        {
            var options = TestUtils.GetOptions(nameof(Return_RightCollection));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Actors.AddAsync(TestHelper.TestActor1());

                await arrangeContext.MoviesActors.AddAsync(TestHelper.MoviesActors4());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut    = new ActorService(assertContext);
                var actors = await sut.ShowActorMoviesAsync(TestHelper.TestActor1().Id);

                Assert.AreEqual(actors.Count, 1);
            }
        }
Ejemplo n.º 19
0
        public async Task Succeed_ReturnActor()
        {
            var options = TestUtils.GetOptions(nameof(Succeed_ReturnActor));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Actors.AddAsync(TestHelper.TestActor1());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ActorService(assertContext);

                var actor = await sut.UpdateActorAsync(TestHelper.TestActor1(), "image1.jpg", "Very nice one");

                Assert.AreEqual(actor.Biography, "Very nice one");
                Assert.AreEqual(actor.Picture, "image1.jpg");
            }
        }
Ejemplo n.º 20
0
        public async Task ThrowExeption_WhenUserIsVoted()
        {
            var options = TestUtils.GetOptions(nameof(ThrowExeption_WhenUserIsVoted));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Reviews.AddAsync(TestHelper.TestReview1());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ReviewService(assertContext);

                var ex = await Assert.ThrowsExceptionAsync <ArgumentException>(() => sut.AddReviewToMovieAsync(TestHelper.TestMovie1().Id, TestHelper.TestUser1().Id, "Perfect movie!", 3));

                Assert.AreEqual(ex.Message, string.Format(ServicesConstants.UserAlreadyVoted,
                                                          TestHelper.TestUser1().UserName, TestHelper.TestMovie1().Title));
            }
        }
        public async Task ThrowsExeption_WhenActorExistInMovie()
        {
            var options = TestUtils.GetOptions(nameof(ThrowsExeption_WhenActorExistInMovie));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.MoviesActors.AddAsync(TestHelper.MoviesActors1());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ActorService(assertContext);

                await Assert.ThrowsExceptionAsync <ArgumentException>(() => sut.AddActorToMovieAsync(TestHelper.TestMovie1().Id, TestHelper.TestActor1().Id));

                //Assert.AreEqual(ex.Message, string.Format(ServicesConstants.UserAlreadyVoted,
                //                                           TestHelper.TestUser1().UserName, TestHelper.TestMovie1().Title));
            }
        }
Ejemplo n.º 22
0
        public async Task Return_RightUser()
        {
            var options = TestUtils.GetOptions(nameof(Return_RightUser));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Users.AddAsync(TestHelper.TestUser1());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var mockedService = new Mock <IServiceProvider>();
                var sut           = new UserService(assertContext, mockedService.Object);

                var user = await sut.GetUserByIdAsync(TestHelper.TestUser1().Id);

                Assert.AreEqual(user.Id, TestHelper.TestUser1().Id);
            }
        }
        public async Task Succeed_AddActorWhenDoesNotExistInMovie()
        {
            var options = TestUtils.GetOptions(nameof(Succeed_AddActorWhenDoesNotExistInMovie));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Actors.AddAsync(TestHelper.TestActor1());

                await arrangeContext.Movies.AddAsync(TestHelper.TestMovie1());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ActorService(assertContext);

                var movie = await sut.AddActorToMovieAsync(TestHelper.TestMovie1().Id, TestHelper.TestActor1().Id);

                Assert.AreEqual(movie.MoviesActors.Count, 1);
            }
        }
Ejemplo n.º 24
0
        public async Task Return_RightCollection()
        {
            var options = TestUtils.GetOptions(nameof(Return_RightCollection));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Genres.AddAsync(TestHelper.TestGenre1());

                await arrangeContext.Genres.AddAsync(TestHelper.TestGenre2());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new GenreService(assertContext);

                var genres = await sut.GetAllGenresAsync();

                Assert.AreEqual(genres.Count, 2);
            }
        }
Ejemplo n.º 25
0
        public async Task ThrowExeption_WhenReviewNotFromUser()
        {
            var options = TestUtils.GetOptions(nameof(ThrowExeption_WhenReviewNotFromUser));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Reviews.AddAsync(TestHelper.TestReview1());

                await arrangeContext.Users.AddAsync(TestHelper.TestUser2());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ReviewService(assertContext);

                var ex = await Assert.ThrowsExceptionAsync <ArgumentException>(() => sut.DeleteReviewAsync(TestHelper.TestReview1().Id, TestHelper.TestUser2().Id));

                Assert.AreEqual(ex.Message, string.Format(ServicesConstants.ReviewNotFromUser, TestHelper.TestUser2().UserName));
            }
        }
        public async Task Succeed_WhenReviewIsFromUser()
        {
            var options = TestUtils.GetOptions(nameof(Succeed_WhenReviewIsFromUser));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Reviews.AddAsync(TestHelper.TestReview1());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ReviewService(assertContext);

                var review = await sut.EditReviewAsync(TestHelper.TestReview1(), TestHelper.TestUser1().Id, 3, "Very nice movie");

                var movie = review.Movie;

                Assert.IsTrue(movie.TotalRating == 4);
                Assert.IsTrue(movie.NumberOfVotes == 1);
                Assert.IsTrue(assertContext.Reviews.Count() == 1);
            }
        }
Ejemplo n.º 27
0
        public async Task SetCorrect_WhenReviewIsNotActive()
        {
            var options = TestUtils.GetOptions(nameof(SetCorrect_WhenReviewIsNotActive));

            using (var arrangeContext = new MoviesCatalogContext(options))
            {
                await arrangeContext.Users.AddAsync(TestHelper.TestUser1());

                await arrangeContext.Reviews.AddAsync(TestHelper.TestReview2());

                await arrangeContext.SaveChangesAsync();
            }

            using (var assertContext = new MoviesCatalogContext(options))
            {
                var sut = new ReviewService(assertContext);

                var review = await sut.AddReviewToMovieAsync(TestHelper.TestMovie1().Id, TestHelper.TestUser1().Id, "Perfect movie!", 3);

                Assert.AreEqual("Perfect movie!", review.Description);
                Assert.AreEqual(3, review.Rating);
                Assert.IsTrue(!review.IsDeleted);
            }
        }
Ejemplo n.º 28
0
 public UserService(MoviesCatalogContext context,
                    IServiceProvider serviceProvider)
 {
     this.context         = context ?? throw new ArgumentNullException(nameof(context));
     this.serviceProvider = serviceProvider ?? throw new ArgumentNullException(nameof(serviceProvider));
 }
Ejemplo n.º 29
0
 public ActorService(MoviesCatalogContext context)
 {
     this.context = context ?? throw new ArgumentNullException(nameof(context));
 }