コード例 #1
0
        public MovieJMDBApi Add(MovieDetailsJMDBApi movie, long userId, string comment, int rate, string date, string poster, string movieAPIid)
        {
            var user = _uow.Users.FirstOrDefault(a => a.Id == userId, "");

            ValidationHelper.ValidateNotNull(user);

            var watchedMovie = _uow.WatchedMovies.FirstOrDefault(f => f.UserId == userId && f.MovieJMDBApiId == movieAPIid, "MovieJMDBApi");

            ValidationHelper.ValidateEntityExists(watchedMovie);

            var movieAPI = _uow.MoviesJMDBApi.FirstOrDefault(a => a.Id == movieAPIid, "");

            if (movieAPI == null)
            {
                MovieJMDBApi add = new MovieJMDBApi
                {
                    Id     = movieAPIid,
                    Name   = movie.Name,
                    Poster = poster,
                    MovieDetailsJMDBApi = movie
                };
                _uow.MoviesJMDBApi.Add(add);
                _uow.Save();
            }

            WatchedMovie watchedMoive = new WatchedMovie
            {
                UserId         = userId,
                MovieJMDBApiId = movieAPIid,
                Comment        = comment,
                Rating         = rate,
                WatchingDate   = date,
                DateTimeAdded  = DateTime.Now
            };

            var watchedMovieAdded = _uow.WatchedMovies.Add(watchedMoive, "");

            _uow.Save();

            var savedMovie = _uow.SavedMovies.FirstOrDefault(m => m.MovieJMDBApiId == movieAPIid && m.UserId == userId);

            if (savedMovie != null)
            {
                _uow.SavedMovies.Delete(savedMovie);
                _uow.Save();
            }
            ;
            return(watchedMovieAdded.MovieJMDBApi);
        }
コード例 #2
0
        public void AddMovie()
        {
            var movieToAdd = new MovieDetailsJMDBApi()
            {
                Actors   = "Actors",
                Country  = "USA",
                Director = "Director",
                Duration = 111,
                Genre    = "Action",
                Name     = "Movie 99",
                Year     = 2020
            };

            var movieAPI = new MovieJMDBApi
            {
                Id = "tt123",
                MovieDetailsJMDBApi = new MovieDetailsJMDBApi
                {
                    Actors   = "Actors",
                    Country  = "USA",
                    Director = "Director",
                    Duration = 111,
                    Genre    = "Action",
                    Name     = "Movie 99",
                    Year     = 2020
                },
                Name         = "Movie 99",
                Poster       = "poster 9",
                SavedUsers   = null,
                WatchedUsers = null
            };

            long   currentUserId = 1;
            string comment       = "comment";
            int    rate          = 5;
            string date          = "22.02.2020.";
            string movieId       = "tt123";
            string poster        = "poster";

            WatchedMovie watchedMoive = new WatchedMovie
            {
                UserId         = 1,
                MovieJMDBApiId = "tt123",
                Comment        = "comment",
                Rating         = 5,
                WatchingDate   = "22.02.2020.",
                DateTimeAdded  = DateTime.Now,
                MovieJMDBApi   = movieAPI,
                User           = fakeUser
            };

            _uowMock.Setup(uow => uow.Users.FirstOrDefault(a => a.Id == currentUserId, "")).Returns(fakeUser);

            _uowMock.Setup(uow => uow.WatchedMovies.FirstOrDefault(f => f.UserId == currentUserId && f.MovieJMDBApiId == movieId, "MovieJMDBApi"))
            .Returns((WatchedMovie)null);

            _uowMock.Setup(uow => uow.MoviesJMDBApi.FirstOrDefault(a => a.Id == movieId, "")).Returns(movieAPI);

            _uowMock.Setup(uow => uow.SavedMovies.FirstOrDefault(a => a.MovieJMDBApiId == movieId && a.UserId == currentUserId, ""))
            .Returns((SavedMovie)null);

            _uowMock.Setup(uow => uow.WatchedMovies.Add(It.Is <WatchedMovie>(m => m.UserId == 1), "")).Returns(watchedMoive);

            var result = _manager.Add(movieToAdd, currentUserId, comment, rate, date, poster, movieId);

            _uowMock.Verify(uow => uow.WatchedMovies.Add(It.Is <WatchedMovie>(m => m.UserId == 1), ""), Times.Once());
            _uowMock.Verify(uow => uow.Save(), Times.Once());
            Assert.NotNull(result);
            Assert.AreEqual(movieAPI, result);
        }