コード例 #1
0
        public void GetReviewersByMovie(int movie, int expectedIndex)
        {
            var expected = new List <int>[]
            {
                new List <int>(),
                new List <int>()
                {
                    1
                },
                new List <int>()
                {
                    3, 2, 1
                }
            };

            ratings = new MovieRating[]
            {
                new MovieRating(1, 2, 1, new DateTime(2020, 1, 1)),
                new MovieRating(1, 3, 3, new DateTime(2020, 1, 1)),
                new MovieRating(2, 3, 4, new DateTime(2020, 1, 2)),
                new MovieRating(3, 3, 4, new DateTime(2020, 1, 1))
            };

            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repoMock.Object);

            var result = mrs.GetReviewersByMovie(movie);

            Assert.Equal(expected[expectedIndex], result);
            repoMock.Verify(repo => repo.GetAllMovieRatings(), Times.Once);
        }
コード例 #2
0
        public void CreateMovieRatingsServiceMovieRatingsRepositoryIsNullExpectArgumentException()
        {
            IMovieRatingsService mrs = null;

            Action ac = () => mrs = new MovieRatingsServiceLinq(null);

            ac.Should().Throw <ArgumentException>().WithMessage("Missing MovieRatings repository");
            mrs.Should().BeNull();
        }
コード例 #3
0
        public static void SetUpTest(TestContext tc)
        {
            MovieRatingsRepository repo = new MovieRatingsRepository(@"C:\Users\bhp\source\repos\PP\2020E\Compulsory\ratings.json");

            reviewerMostReviews = GetReviewerMostReviews(repo);
            movieMostReviews    = GetMovieMostReviews(repo);

            service = new MovieRatingsServiceLinq(repo);
        }
コード例 #4
0
        public void GetTopRatedMovies()
        {
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repository);

            double seconds = TimeInSeconds(() =>
            {
                var result = mrs.GetTopRatedMovies(100);
            });

            Assert.True(seconds <= 4);
        }
コード例 #5
0
        public void GetTopMoviesByReviewer()
        {
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repository);

            double seconds = TimeInSeconds(() =>
            {
                var result = mrs.GetTopMoviesByReviewer(reviewerMostReviews);
            });

            Assert.True(seconds <= 4);
        }
コード例 #6
0
        public void GetMoviesWithHighestNumberOfTopRates()
        {
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repository);

            double seconds = TimeInSeconds(() =>
            {
                mrs.GetMoviesWithHighestNumberOfTopRates();
            });

            Assert.True(seconds <= 4);
        }
コード例 #7
0
        public void GetAverageRateOfMovie()
        {
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repository);

            double seconds = TimeInSeconds(() =>
            {
                double result = mrs.GetAverageRateOfMovie(movieMostReviews);
            });

            Assert.True(seconds <= 4);
        }
コード例 #8
0
        public void GetMostProductiveReviewers()
        {
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repository);

            double seconds = TimeInSeconds(() =>
            {
                var result = mrs.GetMostProductiveReviewers();
            });

            Assert.True(seconds <= 4);
        }
コード例 #9
0
        public void GetNumberOfReviews()
        {
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repository);

            double seconds = TimeInSeconds(() =>
            {
                int result = mrs.GetNumberOfReviews(movieMostReviews);
            });

            Assert.True(seconds <= 4);
        }
コード例 #10
0
        public void GetNumberOfReviewsFromReviewer(int movie, int expected)
        {
            ratings = new MovieRating[]
            {
                new MovieRating(2, 1, 3, DateTime.Now),
                new MovieRating(3, 1, 3, DateTime.Now),
                new MovieRating(3, 2, 4, DateTime.Now)
            };
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repoMock.Object);

            var result = mrs.GetNumberOfReviewsFromReviewer(movie);

            Assert.Equal(expected, result);
            repoMock.Verify(repo => repo.GetAllMovieRatings(), Times.Once);
        }
コード例 #11
0
        public void GetAverageRateFromReviewerWithReviews(int reviewer, double expected)
        {
            ratings = new MovieRating[]
            {
                new MovieRating(2, 1, 3, DateTime.Now),
                new MovieRating(3, 1, 3, DateTime.Now),
                new MovieRating(3, 2, 4, DateTime.Now)
            };
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repoMock.Object);

            var result = mrs.GetAverageRateFromReviewer(reviewer);

            Assert.Equal(expected, result);
            repoMock.Verify(repo => repo.GetAllMovieRatings(), Times.Once);
        }
コード例 #12
0
        public void GetAverageRatingFromReviewerWithNoReviewsExpectArgumentException()
        {
            int reviewer = 2;

            ratings = new MovieRating[]
            {
                new MovieRating(3, 1, 3, DateTime.Now),
                new MovieRating(3, 2, 4, DateTime.Now)
            };
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repoMock.Object);

            Action ac = () => mrs.GetAverageRateFromReviewer(reviewer);

            ac.Should().Throw <ArgumentException>().WithMessage($"Reviewer:{reviewer} has no reviews");
            repoMock.Verify(repo => repo.GetAllMovieRatings(), Times.Once);
        }
コード例 #13
0
        public void GetMostProductiveReviewers()
        {
            ratings = new MovieRating[]
            {
                new MovieRating(1, 2, 3, DateTime.Now),
                new MovieRating(1, 3, 4, DateTime.Now),
                new MovieRating(2, 3, 1, DateTime.Now),
                new MovieRating(3, 4, 2, DateTime.Now),
                new MovieRating(3, 3, 1, DateTime.Now),
            };

            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repoMock.Object);

            var expected = new List <int>()
            {
                1, 3
            };

            var result = mrs.GetMostProductiveReviewers();

            Assert.Equal(expected, result);
            repoMock.Verify(repo => repo.GetAllMovieRatings(), Times.Once);
        }
コード例 #14
0
        public void GetTopRatedMovies(int n, int[] expected)
        {
            ratings = new MovieRating[]
            {
                new MovieRating(1, 2, 3, DateTime.Now),     // movie 1 avg = 4
                new MovieRating(1, 3, 2, DateTime.Now),     // movie 2 avg = 3
                new MovieRating(2, 1, 4, DateTime.Now),     // movie 3 avg = 2.5
                new MovieRating(2, 3, 3, DateTime.Now),     // movie 4 avg = 4.5
                new MovieRating(2, 4, 4, DateTime.Now),
                new MovieRating(3, 4, 5, DateTime.Now)
            };

            var topMovies = new List <int>()
            {
                4, 1, 2, 3
            };

            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repoMock.Object);

            var result = mrs.GetTopRatedMovies(n);

            Assert.Equal(expected, result);
            repoMock.Verify(repo => repo.GetAllMovieRatings(), Times.Once);
        }
コード例 #15
0
        public void GetMoviesWithHighestNumberOfTopRates()
        {
            ratings = new MovieRating[]
            {
                new MovieRating(1, 1, 4, DateTime.Now),
                new MovieRating(1, 2, 5, DateTime.Now),
                new MovieRating(1, 3, 5, DateTime.Now),
                new MovieRating(2, 3, 5, DateTime.Now),
                new MovieRating(3, 3, 4, DateTime.Now),
                new MovieRating(3, 4, 5, DateTime.Now),
                new MovieRating(3, 4, 5, DateTime.Now),
            };
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repoMock.Object);

            List <int> expected = new List <int>()
            {
                3, 4
            };

            var result = mrs.GetMoviesWithHighestNumberOfTopRates();

            Assert.Equal(expected, result);
            repoMock.Verify(repo => repo.GetAllMovieRatings(), Times.Once);
        }
コード例 #16
0
        public void GetTopMoviesByReviewer()
        {
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repository);

            mrs.GetTopMoviesByReviewer(reviewerMostReviews);
        }
コード例 #17
0
        public void GetAverageRateFromReviewer()
        {
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repository);

            mrs.GetAverageRateFromReviewer(reviewerMostReviews);
        }
コード例 #18
0
        public void GetNumberOfRatesByReviewer(int grade)
        {
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repository);

            mrs.GetNumberOfRatesByReviewer(reviewerMostReviews, grade);
        }
コード例 #19
0
        public void GetMostProductiveReviewers()
        {
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repository);

            mrs.GetMostProductiveReviewers();
        }
コード例 #20
0
        public void GetTopRatedMovies()
        {
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repository);

            mrs.GetTopRatedMovies(20);
        }
コード例 #21
0
        public void CreateMovieRatingsService()
        {
            var mrs = new MovieRatingsServiceLinq(repoMock.Object);

            mrs.Should().NotBeNull();
        }
コード例 #22
0
        public void GetNumberOfReviews()
        {
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repository);

            mrs.GetNumberOfReviews(movieMostReviews);
        }
コード例 #23
0
        public void GetReviewersByMovie()
        {
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repository);

            mrs.GetReviewersByMovie(movieMostReviews);
        }
コード例 #24
0
        public void GetAverageRateOfMovie()
        {
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repository);

            mrs.GetAverageRateOfMovie(movieMostReviews);
        }
コード例 #25
0
        public void GetMoviesWithHighestNumberOfTopRates()
        {
            IMovieRatingsService mrs = new MovieRatingsServiceLinq(repository);

            mrs.GetMoviesWithHighestNumberOfTopRates();
        }