Ejemplo n.º 1
0
        public async Task MovieTest()
        {
            string inputMovieId = "ab10101010";
            string outputMovieId;

            // Seed the test database
            using (var context = new Repository.Models.Cinephiliacs_DbContext(dbOptions))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                RepoLogic repoLogic = new RepoLogic(context);

                // Test CreateMovie()
                IMovieLogic     movieLogic      = new MovieLogic(repoLogic);
                MovieController movieController = new MovieController(movieLogic);
                await movieController.CreateMovie(inputMovieId);
            }

            using (var context = new Repository.Models.Cinephiliacs_DbContext(dbOptions))
            {
                var gmMovie = context.Movies.FirstOrDefault <Repository.Models.Movie>(m => m.MovieId == inputMovieId);
                outputMovieId = gmMovie.MovieId;
            }

            Assert.Equal(inputMovieId, outputMovieId);
        }
        public async Task PatchExistingMovieTest()
        {
            MovieDTO inputMovie = TestingHelper.GetRandomMovie();
            Movie    outputMovie;

            // Seed the test database
            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                TestingHelper.AddMovieDTOToDatabase(context, inputMovie);

                RepoLogic       repoLogic       = new RepoLogic(context);
                IMovieLogic     movieLogic      = new MovieLogic(repoLogic);
                MovieController movieController = new MovieController(movieLogic);
                // Test AppendMovie()
                await movieController.AppendMovie(inputMovie.ImdbId, TestingHelper.GetRandomMovie());
            }

            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                outputMovie = context.Movies.FirstOrDefault(m => m.ImdbId == inputMovie.ImdbId);
            }

            Assert.NotEqual(inputMovie.Title, outputMovie.Title);
        }
        public void DeleteMovieTest()
        {
            MovieDTO inputMovie = TestingHelper.GetRandomMovie();
            Movie    outputMovie;

            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                TestingHelper.AddMovieDTOToDatabase(context, inputMovie);

                RepoLogic       repoLogic       = new RepoLogic(context);
                IMovieLogic     movieLogic      = new MovieLogic(repoLogic);
                MovieController movieController = new MovieController(movieLogic);
                // Test DeleteMovie()
                movieController.DeleteMovie(inputMovie.ImdbId);
            }

            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                outputMovie = context.Movies.FirstOrDefault(m => m.ImdbId == inputMovie.ImdbId);
            }

            Assert.Null(outputMovie);
        }
        public async Task PostTagTest()
        {
            var          inputMovie = TestingHelper.GetRandomMovie();
            var          inputTag   = TestingHelper.GetRandomTaggingDTO(inputMovie.ImdbId);
            MovieTagUser movieTagUser;

            // Seed the test database
            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                TestingHelper.AddMovieDTOToDatabase(context, inputMovie);

                RepoLogic       repoLogic       = new RepoLogic(context);
                IMovieLogic     movieLogic      = new MovieLogic(repoLogic);
                MovieController movieController = new MovieController(movieLogic);
                // Test TagMovie()
                await movieController.TagMovie(inputTag);
            }

            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                movieTagUser = context.MovieTagUsers.FirstOrDefault(m => m.ImdbId == inputTag.MovieId);
            }

            Assert.Equal(inputTag.MovieId, movieTagUser.ImdbId);
            Assert.Equal(inputTag.TagName, movieTagUser.TagName);
            Assert.Equal(inputTag.UserId, movieTagUser.UserId);
        }
        public void GetTagsTest()
        {
            MovieDTO      inputMovie = TestingHelper.GetRandomMovie(0, 0, 0, 0, 3);
            List <string> results;

            // Seed the test database
            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                TestingHelper.AddMovieDTOToDatabase(context, inputMovie);
            }

            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                RepoLogic       repoLogic       = new RepoLogic(context);
                IMovieLogic     movieLogic      = new MovieLogic(repoLogic);
                MovieController movieController = new MovieController(movieLogic);

                // Test GetAllTags()
                results = movieController.GetAllTags().Value;
            }

            Assert.Contains(inputMovie.MovieTags[0], results);
            Assert.Contains(inputMovie.MovieTags[1], results);
            Assert.Contains(inputMovie.MovieTags[2], results);
        }
        public async Task RecommendedMoviesByUserIdTest()
        {
            MovieDTO inputMovie = TestingHelper.GetRandomMovie();

            inputMovie.ImdbId = "tt4154796";
            string          userId = Guid.NewGuid().ToString();
            List <MovieDTO> results;

            // Seed the test database
            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                TestingHelper.AddMovieDTOToDatabase(context, inputMovie);

                var followingMovie = new FollowingMovie();
                followingMovie.ImdbId = inputMovie.ImdbId;
                followingMovie.UserId = userId;
                context.FollowingMovies.Add(followingMovie);
                context.SaveChanges();
            }

            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                RepoLogic  repoLogic  = new RepoLogic(context);
                MovieLogic movieLogic = new MovieLogic(repoLogic);
                // Test RecommendedMoviesByUserId()
                results = await movieLogic.RecommendedMoviesByUserId(userId);
            }

            Assert.True(results.Count > 0);
        }
        public void SearchRatingTest()
        {
            MovieDTO      inputMovie = TestingHelper.GetRandomMovie(0, 0, 0, 0, 0);
            List <string> searchResults;

            var filters = new Dictionary <string, string[]>();

            Console.WriteLine(inputMovie);
            filters.Add("Rating", new string[] { inputMovie.RatingName });

            // Seed the test database
            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                TestingHelper.AddMovieDTOToDatabase(context, inputMovie);
                TestingHelper.AddMovieDTOToDatabase(context, TestingHelper.GetRandomMovie(0, 0, 0, 0, 0));
            }

            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                RepoLogic       repoLogic       = new RepoLogic(context);
                IMovieLogic     movieLogic      = new MovieLogic(repoLogic);
                MovieController movieController = new MovieController(movieLogic);
                // Test SearchMovies()
                searchResults = movieController.SearchMovies(filters).Value;
            }

            Assert.Equal(inputMovie.ImdbId, searchResults[0]);
        }
        public void UnbanTagTest()
        {
            var  inputMovie    = TestingHelper.GetRandomMovie();
            var  inputTag      = TestingHelper.GetRandomTaggingDTO(inputMovie.ImdbId);
            bool inputBanState = true;
            Tag  tag;

            // Seed the test database
            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                TestingHelper.AddMovieDTOToDatabase(context, inputMovie);
                TestingHelper.AddTagToDatabase(context, inputTag, inputBanState);

                RepoLogic       repoLogic       = new RepoLogic(context);
                IMovieLogic     movieLogic      = new MovieLogic(repoLogic);
                MovieController movieController = new MovieController(movieLogic);
                // Test UnbanTag()
                movieController.UnbanTag(inputTag.TagName);
            }

            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                tag = context.Tags.FirstOrDefault(t => t.TagName == inputTag.TagName);
            }

            Assert.False(tag.IsBanned);
        }
        public void SearchActorTagTest()
        {
            MovieDTO inputMovie     = TestingHelper.GetRandomMovie(1, 1, 1, 1, 1);
            MovieDTO unmatchedMovie = TestingHelper.GetRandomMovie(1, 1, 1, 1, 1);

            unmatchedMovie.MovieActors[0] = inputMovie.MovieActors[0];
            List <string> searchResults;

            var filters = new Dictionary <string, string[]>();

            filters.Add("Actor", new string[] { inputMovie.MovieActors[0] });
            filters.Add("Tag", new string[] { inputMovie.MovieTags[0] });

            // Seed the test database
            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                TestingHelper.AddMovieDTOToDatabase(context, inputMovie);
                TestingHelper.AddMovieDTOToDatabase(context, unmatchedMovie);
            }

            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                RepoLogic       repoLogic       = new RepoLogic(context);
                IMovieLogic     movieLogic      = new MovieLogic(repoLogic);
                MovieController movieController = new MovieController(movieLogic);
                // Test SearchMovies()
                searchResults = movieController.SearchMovies(filters).Value;
            }

            Assert.Equal(inputMovie.ImdbId, searchResults[0]);
        }
Ejemplo n.º 10
0
        public GettingMoviesTest()
        {
            var mockMapper = new MapperConfiguration(cfg => cfg.AddProfile(new MappingProfile()));

            _mapper    = mockMapper.CreateMapper();
            movieLogic = new MovieLogic(new MovieContextMock(), _mapper);
        }
        public async Task GetMovieTest()
        {
            MovieDTO inputMovie = TestingHelper.GetRandomMovie();
            MovieDTO outputMovie;

            // Seed the test database
            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                TestingHelper.AddMovieDTOToDatabase(context, inputMovie);
            }

            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                RepoLogic repoLogic = new RepoLogic(context);

                IMovieLogic     movieLogic      = new MovieLogic(repoLogic);
                MovieController movieController = new MovieController(movieLogic);
                // Test GetMovie()
                outputMovie = (await movieController.GetMovie(inputMovie.ImdbId)).Value;
            }

            Assert.Equal(inputMovie.ImdbId, outputMovie.ImdbId);
        }
Ejemplo n.º 12
0
        public void DeleteFollowedMovieTest()
        {
            var           dbOptions  = TestingHelper.GetUniqueContextOptions <Cinephiliacs_MovieContext>();
            MovieDTO      inputMovie = TestingHelper.GetRandomMovie();
            string        userId     = Guid.NewGuid().ToString();
            List <string> followedMovies;

            // Seed the test database
            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                TestingHelper.AddMovieDTOToDatabase(context, inputMovie);

                RepoLogic   repoLogic  = new RepoLogic(context);
                IMovieLogic movieLogic = new MovieLogic(repoLogic);
                // Test FollowMovie()
                movieLogic.FollowMovie(inputMovie.ImdbId, userId);
                movieLogic.UnfollowMovie(inputMovie.ImdbId, userId);
            }

            using (var context = new Cinephiliacs_MovieContext(dbOptions))
            {
                RepoLogic   repoLogic  = new RepoLogic(context);
                IMovieLogic movieLogic = new MovieLogic(repoLogic);
                // Test FollowMovie()
                followedMovies = movieLogic.GetFollowingMovies(userId);
            }

            Assert.DoesNotContain(inputMovie.ImdbId, followedMovies);
        }
        public MoviesIntegrationTests()
        {
            var mockMapper = new MapperConfiguration(cfg => cfg.AddProfile(new MappingProfile()));

            _mapper    = mockMapper.CreateMapper();
            movieLogic = new MovieLogic(new MovieRepository(new DatabaseMovie(new DatabaseConnection("Server = mssql.fhict.local; Database = dbi409997; User Id = dbi409997; Password = Ikbencool20042000!;"))), _mapper);
        }
Ejemplo n.º 14
0
 /// <summary>
 /// Ctor
 /// </summary>
 /// <param name="logger">Logger injected</param>
 /// <param name="movieRepository">Movie repository injected</param>
 /// <param name="movieExternalService">Movie external service injected</param>
 public HomeController(
     ILogger <HomeController> logger,
     IMovieRepository movieRepository,
     IMovieExternalService movieExternalService)
 {
     _logger     = logger;
     _movieLogic = new MovieLogic(movieRepository, movieExternalService);
 }
Ejemplo n.º 15
0
        public async Task <ActionResult <MovieDto> > DeleteAsync(int id)
        {
            if (!MovieLogic.MovieExists(id))
            {
                return(NotFound());
            }
            var Movie = await MovieLogic.DeleteMovieAsync(id);

            return(Ok(Movie));
        }
Ejemplo n.º 16
0
        public async Task <ActionResult <MovieDto> > GetMovie(int id)
        {
            var Movie = await MovieLogic.GetMovieAsync(id);

            if (Movie == null)
            {
                return(NotFound());
            }
            return(Ok(Movie));
        }
Ejemplo n.º 17
0
        public void MovieLogicTests_SearchMoviesByTitleAndYear()
        {
            IOMDbConnection omdbConnection = new DummyOMDbCon();
            IDataCache      dataCache      = new DummyDataCache();
            IMovieData      movieData      = new DummyMovieData();

            IMovieLogic movieLogic = new MovieLogic(omdbConnection, dataCache, movieData);

            var movie = movieLogic.SearchMoviesByTitle("Movie1", "1990").Result;

            Console.WriteLine(JsonConvert.SerializeObject(movie));
        }
Ejemplo n.º 18
0
        public void MovieLogicTests_SearchMoviesByID()
        {
            IOMDbConnection omdbConnection = new DummyOMDbCon();
            IDataCache      dataCache      = new DummyDataCache();
            IMovieData      movieData      = new DummyMovieData();

            IMovieLogic movieLogic = new MovieLogic(omdbConnection, dataCache, movieData);

            var movie = movieLogic.SearchMoviesByID("00000").Result;

            Console.WriteLine("");
        }
Ejemplo n.º 19
0
        public void MovieLogicTests_GetCachedMovies()
        {
            IOMDbConnection omdbConnection = new DummyOMDbCon();
            IDataCache      dataCache      = new DummyDataCache();
            IMovieData      movieData      = new DummyMovieData();

            IMovieLogic movieLogic = new MovieLogic(omdbConnection, dataCache, movieData);

            var movies = movieLogic.GetCachedMovies();

            Console.WriteLine(JsonConvert.SerializeObject(movies));
        }
Ejemplo n.º 20
0
        public void MovieLogicTests_PutCachedMovieExisting()
        {
            IOMDbConnection omdbConnection = new DummyOMDbCon();
            IDataCache      dataCache      = new DummyDataCache();
            IMovieData      movieData      = new DummyMovieData();

            IMovieLogic movieLogic = new MovieLogic(omdbConnection, dataCache, movieData);

            movieLogic.PutCachedMovie("00000", DummyMovies.NewMovie);

            Console.WriteLine();
        }
Ejemplo n.º 21
0
        public void MovieLogicTests_DelCachedMovie()
        {
            IOMDbConnection omdbConnection = new DummyOMDbCon();
            IDataCache      dataCache      = new DummyDataCache();
            IMovieData      movieData      = new DummyMovieData();

            IMovieLogic movieLogic = new MovieLogic(omdbConnection, dataCache, movieData);

            movieLogic.DelCachedMovie("00000");

            Console.WriteLine();
        }
Ejemplo n.º 22
0
        public async Task <ActionResult <MovieDto> > UpdateMovie(int id, [FromBody] MovieDto movie)
        {
            if (id != movie.Id)
            {
                return(BadRequest());
            }
            if (!MovieLogic.MovieExists(id))
            {
                return(NotFound());
            }
            MovieDto returnMovie = await MovieLogic.UpdateMovieAsync(movie);

            return(Ok(returnMovie));
        }
Ejemplo n.º 23
0
 public void Setup()
 {
     _iMovieContext    = new MovieMemoryContext();
     _iGenreContext    = new GenreMemoryContext();
     _iPlaylistContext = new PlaylistMemoryContext();
     _iMediaContext    = new MediaMemoryContext();
     _iRatingContext   = new RatingMemoryContext();
     _genreLogic       = new GenreLogic(_iGenreContext);
     _searchLogic      = new SearchLogic(_genreLogic);
     _playlistLogic    = new PlaylistLogic(_iPlaylistContext, _iMediaContext);
     _mediaLogic       = new MediaLogic(_iMediaContext);
     _ratingLogic      = new RatingLogic(_iRatingContext, _mediaLogic);
     _movieLogic       = new MovieLogic(_iMovieContext, _genreLogic, _searchLogic, _playlistLogic, _mediaLogic, _ratingLogic);
     _testGenre1       = new GenreModel("test1", 1);
 }
Ejemplo n.º 24
0
        public void TestRecommendedMoviesReturnListMovie()
        {
            //Arrange
            string movieId = "tt0178207";

            //Act

            IMovieLogic ml       = new MovieLogic(null);
            var         res      = ml.RecommendedMovies(movieId);
            string      actual   = res.Status.ToString();
            string      expected = "WaitingForActivation";

            //Assert
            Assert.Equal(expected, actual);
        }
Ejemplo n.º 25
0
        public async Task <ActionResult <MovieDto> > AddMovieToEpisode(int id, int episodeId, [FromBody] MovieEpisodeDto movieEpisode)
        {
            movieEpisode.MovieId   = id;
            movieEpisode.EpisodeId = episodeId;
            if (!MovieLogic.MovieExists(id))
            {
                return(NotFound());
            }
            if (!PodcastLogic.PodcastExists(episodeId))
            {
                return(NotFound());
            }
            var returnMovie = await MovieLogic.AddMovieToEpisodeAsync(movieEpisode);

            return(CreatedAtAction("GetMovie", new { id = returnMovie.Id }, returnMovie));
        }
Ejemplo n.º 26
0
        public void TestRecommendedMoviesUnknownUserReturnError()
        {
            //Arrange
            string userId = "random_user";


            //Act

            IMovieLogic ml       = new MovieLogic(null);
            var         res      = ml.RecommendedMoviesByUserId(userId);
            string      actual   = res.Status.ToString();
            string      expected = "Faulted";

            //Assert
            Assert.Equal(expected, actual);
        }
Ejemplo n.º 27
0
        public async Task ReviewsPageTest()
        {
            GlobalModels.Review inputGMReview;
            GlobalModels.Review outputGMReview;

            RelatedDataSet dataSetA = new RelatedDataSet("JimmyJimerson", "ab10101010", "Theory");

            // Seed the test database
            using (var context = new Repository.Models.Cinephiliacs_DbContext(dbOptions))
            {
                context.Database.EnsureDeleted();
                context.Database.EnsureCreated();

                inputGMReview = BusinessLogic.Mapper.RepoReviewToReview(dataSetA.Review);

                RepoLogic repoLogic = new RepoLogic(context);
                // Load Database entries for the object-under-test's foreign keys
                await repoLogic.AddUser(dataSetA.User);

                await repoLogic.AddMovie(dataSetA.Movie.MovieId);

                // Test CreateReview()
                IMovieLogic     movieLogic      = new MovieLogic(repoLogic);
                MovieController movieController = new MovieController(movieLogic);
                await movieController.CreateReview(inputGMReview);
            }

            using (var context = new Repository.Models.Cinephiliacs_DbContext(dbOptions))
            {
                RepoLogic repoLogic = new RepoLogic(context);

                // Test GetReviews()
                IMovieLogic     movieLogic      = new MovieLogic(repoLogic);
                MovieController movieController = new MovieController(movieLogic);
                await movieController.SetReviewsPageSize(10);

                List <GlobalModels.Review> gmReviewList = (await movieController.GetReviewsPage(dataSetA.Movie.MovieId, 1, "ratingasc")).Value;
                outputGMReview = gmReviewList
                                 .FirstOrDefault <GlobalModels.Review>(r => r.Movieid == dataSetA.Movie.MovieId);
            }

            Assert.Equal(inputGMReview, outputGMReview);
        }
Ejemplo n.º 28
0
 public void Setup()
 {
     // NOTE: DI framework should be used here
     _movieLogic = new MovieLogic(new MovieRepositoryAdapter(), new MovieExternalServiceAdapter());
 }
Ejemplo n.º 29
0
 public MovieLogicTests()
 {
     movieLogic = new MovieLogic(DBContextFactory.GetMockedDbContext());
 }
Ejemplo n.º 30
0
 public MovieController(MovieLogic movieLogic, GenreLogic genreLogic, IHostingEnvironment hostingEnvironment)
 {
     _movieLogic         = movieLogic;
     _genreLogic         = genreLogic;
     _hostingEnvironment = hostingEnvironment;
 }