コード例 #1
0
        public void Verify_MapToEntity_AssignsMovieProperties()
        {
            // Arrange
            var mapper = new MovieMapper();
            var model  = MoviesMockingSetup.DoMockingSetupForMovieModel();
            // Act
            var entity = mapper.MapToEntity(model.Object);

            // Assert
            Assert.Equal(model.Object.HasStaffReview, entity.HasStaffReview);
            Assert.Equal(model.Object.Distributor, entity.Distributor);
            Assert.Equal(model.Object.BoxOfficeRevenue, entity.BoxOfficeRevenue);
            Assert.Equal(model.Object.TotalRevenue, entity.TotalRevenue);
            Assert.Equal(model.Object.Budget, entity.Budget);
            Assert.Equal(model.Object.Rating, entity.Rating);
            Assert.Equal(model.Object.ReleaseDate, entity.ReleaseDate);
            Assert.Equal(model.Object.RunTime, entity.RunTime);
            // Related Objects
            Assert.Equal(model.Object.PrimaryImageFileId, entity.PrimaryImageFileId);
            // Associated Objects
            //Assert.Equal(model.Object.MovieCharacters?.Count, entity.MovieCharacters?.Count);
            model.VerifyGet(x => x.MovieCharacters, Times.Once);
            //Assert.Equal(model.Object.MovieConcepts?.Count, entity.MovieConcepts?.Count);
            model.VerifyGet(x => x.MovieConcepts, Times.Once);
            //Assert.Equal(model.Object.MovieLocations?.Count, entity.MovieLocations?.Count);
            model.VerifyGet(x => x.MovieLocations, Times.Once);
            //Assert.Equal(model.Object.MovieObjects?.Count, entity.MovieObjects?.Count);
            model.VerifyGet(x => x.MovieObjects, Times.Once);
            //Assert.Equal(model.Object.MovieProducers?.Count, entity.MovieProducers?.Count);
            model.VerifyGet(x => x.MovieProducers, Times.Once);
            //Assert.Equal(model.Object.MovieStoryArcs?.Count, entity.MovieStoryArcs?.Count);
            model.VerifyGet(x => x.MovieStoryArcs, Times.Once);
            //Assert.Equal(model.Object.MovieStudios?.Count, entity.MovieStudios?.Count);
            model.VerifyGet(x => x.MovieStudios, Times.Once);
            //Assert.Equal(model.Object.MovieTeams?.Count, entity.MovieTeams?.Count);
            model.VerifyGet(x => x.MovieTeams, Times.Once);
            //Assert.Equal(model.Object.MovieWriters?.Count, entity.MovieWriters?.Count);
            model.VerifyGet(x => x.MovieWriters, Times.Once);
        }
コード例 #2
0
        public IMovieMapper Get_Movie_by_ID(IMovieMapper movie)
        {
            IMovieMapper output = null;

            try
            {
                using (SqlConnection connection = new SqlConnection(ConnectionString))
                {
                    connection.Open();
                    using (SqlCommand command = new SqlCommand("select_movie_by_id", connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        //Add input parameters:
                        command.Parameters.Add("@MovieID", SqlDbType.Int).Value = movie.Id;

                        //command.ExecuteNonQuery(); //Run the query.

                        command.Prepare();
                        SqlDataReader movies = command.ExecuteReader();

                        while (movies.Read())
                        {
                            //Return the user that was created:
                            output           = new MovieMapper();
                            output.Id        = movie.Id;
                            output.Title     = (String)movies["Title"];
                            output.RunTime   = (int)movies["RunTime"];
                            output.Image     = (String)movies["Image"];
                            output.ShowTimes = Get_ShowTimes_by_MovieID(movie);
                        }
                    }
                }
            }
            catch (SqlException e)
            {
                throw new SqlDALException("There was a problem with SQL.  Please provide valid data.  The MovieId field must be provided and must exist in the database.", e);
            }
            return(output);
        }
コード例 #3
0
        public void ToMovie_HasMovieResultWithNoAvailableGenres_ReturnsMovieWithNoGenres()
        {
            var smallPosterBaseUrl = "https://image.tmdb.org/t/p/w185";
            var largePosterBaseUrl = "https://image.tmdb.org/t/p/w500";

            var source = new MovieResult()
            {
                Adult       = true,
                GenreIds    = new int[] { 1, 2 },
                Id          = 10,
                Overview    = "Some overview text",
                Popularity  = 8.52D,
                PosterPath  = "/another.poster.path",
                ReleaseDate = "2010-01-01",
                Title       = "Movie title",
                VoteAverage = 7.43D,
                VoteCount   = 54
            };
            var genreInfo = new GenreInfo();

            var target = new MovieMapper();
            var actual = target.ToMovie(source, genreInfo);

            Assert.AreEqual($"{smallPosterBaseUrl}{source.PosterPath}", actual.SmallPosterUri.ToString());
            Assert.AreEqual($"{largePosterBaseUrl}{source.PosterPath}", actual.LargePosterUri.ToString());
            Assert.AreEqual(source.Id, actual.Id);
            Assert.AreEqual(source.Overview, actual.Overview);
            Assert.AreEqual(source.Popularity, actual.Popularity);
            Assert.AreEqual(source.Title, actual.Title);
            Assert.AreEqual(source.VoteAverage, actual.VoteAverage);
            Assert.AreEqual(source.VoteCount, actual.VoteCount);
            Assert.IsEmpty(actual.Genres);
            Assert.AreEqual(DateTime.Parse(
                                source.ReleaseDate,
                                new CultureInfo("en-US"),
                                DateTimeStyles.AssumeUniversal), actual.ReleaseDate);
        }
コード例 #4
0
        //public List<IMovieMapper> Search_Movie_by_Name(string search_criteria)
        //{
        //    List<IMovieMapper> output = new List<IMovieMapper>();
        //    try
        //    {
        //        using (SqlConnection connection = new SqlConnection(ConnectionString))
        //        {
        //            connection.Open();
        //            using (SqlCommand command = new SqlCommand("search_movies_by_title", connection))
        //            {
        //                command.CommandType = CommandType.StoredProcedure;
        //                //Add input parameters:
        //                command.Parameters.Add("@Title", SqlDbType.VarChar).Value = search_criteria;

        //                command.Prepare();
        //                SqlDataReader movies = command.ExecuteReader();

        //                while (movies.Read())
        //                {
        //                    MovieMapper movie = new MovieMapper();
        //                    movie.Id = (int)movies["Id"];
        //                    movie.Title = (String)movies["Title"];
        //                    movie.RunTime = (int)movies["RunTime"];
        //                    movie.Image = (String)movies["Image"];
        //                    movie.ShowTimes = Get_ShowTimes_by_MovieID(movie);
        //                    output.Add(movie);
        //                }
        //            }
        //        }
        //    }
        //    catch (SqlException e)
        //    {
        //        throw new SqlDALException("There was a problem with SQL.  Please provide valid data.  The Title field must be provided, and must exist in the database.", e);
        //    }
        //    return output;
        //}

        public List <IMovieMapper> Search_Movie_by_Name_Like(string search_criteria)
        {
            List <IMovieMapper> output = new List <IMovieMapper>();

            try
            {
                using (SqlConnection connection = new SqlConnection(ConnectionString))
                {
                    connection.Open();
                    using (SqlCommand command = new SqlCommand("search_movies_by_title_like", connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;
                        //Add input parameters:
                        command.Parameters.Add("@Title", SqlDbType.VarChar).Value = "%" + search_criteria + "%";

                        command.Prepare();
                        SqlDataReader movies = command.ExecuteReader();

                        while (movies.Read())
                        {
                            MovieMapper movie = new MovieMapper();
                            movie.Id        = (int)movies["Id"];
                            movie.Title     = (String)movies["Title"];
                            movie.RunTime   = (int)movies["RunTime"];
                            movie.Image     = (String)movies["Image"];
                            movie.ShowTimes = Get_ShowTimes_by_MovieID(movie);
                            output.Add(movie);
                        }
                    }
                }
            }
            catch (SqlException e)
            {
                throw new SqlDALException("There was a problem with SQL.  Please provide valid data.  The Title field must be provided, and must exist in the database.", e);
            }
            return(output);
        }
コード例 #5
0
        public List <IMovieMapper> Get_All_Movies()
        {
            List <IMovieMapper> output = new List <IMovieMapper>();

            try
            {
                using (SqlConnection connection = new SqlConnection(ConnectionString))
                {
                    connection.Open();
                    using (SqlCommand command = new SqlCommand("select_all_movies", connection))
                    {
                        command.CommandType = CommandType.StoredProcedure;

                        command.Prepare();
                        SqlDataReader movies = command.ExecuteReader();

                        while (movies.Read())
                        {
                            //Return the user that was created:
                            IMovieMapper movie = new MovieMapper();
                            movie.Id        = (int)movies["Id"];
                            movie.Title     = (String)movies["Title"];
                            movie.RunTime   = (int)movies["RunTime"];
                            movie.Image     = (String)movies["Image"];
                            movie.ShowTimes = Get_ShowTimes_by_MovieID(movie);
                            output.Add(movie);
                        }
                    }
                }
            }
            catch (SqlException e)
            {
                throw new SqlDALException("There was a problem with SQL.", e);
            }
            return(output);
        }
コード例 #6
0
 public void Verify_MapToModel_AssignsMovieProperties()
 {
     // Arrange
     var mapper = new MovieMapper();
     var entity = MoviesMockingSetup.DoMockingSetupForMovie();
     // Act
     var model = mapper.MapToModel(entity.Object);
     // Assert
     Assert.Equal(entity.Object.HasStaffReview, model.HasStaffReview);
     Assert.Equal(entity.Object.Distributor, model.Distributor);
     Assert.Equal(entity.Object.BoxOfficeRevenue, model.BoxOfficeRevenue);
     Assert.Equal(entity.Object.TotalRevenue, model.TotalRevenue);
     Assert.Equal(entity.Object.Budget, model.Budget);
     Assert.Equal(entity.Object.Rating, model.Rating);
     Assert.Equal(entity.Object.ReleaseDate, model.ReleaseDate);
     Assert.Equal(entity.Object.RunTime, model.RunTime);
     // Related Objects
     Assert.Equal(entity.Object.PrimaryImageFileId, model.PrimaryImageFileId);
     // Associated Objects
     Assert.Equal(entity.Object.MovieCharacters?.Count, model.MovieCharacters?.Count);
     Assert.Equal(entity.Object.MovieConcepts?.Count, model.MovieConcepts?.Count);
     Assert.Equal(entity.Object.MovieLocations?.Count, model.MovieLocations?.Count);
     Assert.Equal(entity.Object.MovieObjects?.Count, model.MovieObjects?.Count);
     Assert.Equal(entity.Object.MovieProducers?.Count, model.MovieProducers?.Count);
     Assert.Equal(entity.Object.MovieStoryArcs?.Count, model.MovieStoryArcs?.Count);
     Assert.Equal(entity.Object.MovieStudios?.Count, model.MovieStudios?.Count);
     Assert.Equal(entity.Object.MovieTeams?.Count, model.MovieTeams?.Count);
     Assert.Equal(entity.Object.MovieWriters?.Count, model.MovieWriters?.Count);
 }
コード例 #7
0
 public void Verify_MapToModelLite_AssignsLiteOnlyMovieProperties()
 {
     // Arrange
     var mapper = new MovieMapper();
     var entity = MoviesMockingSetup.DoMockingSetupForMovie();
     // Act
     var model = mapper.MapToModelLite(entity.Object);
     // Assert
     Assert.Equal(entity.Object.HasStaffReview, model.HasStaffReview);
     Assert.Equal(entity.Object.Distributor, model.Distributor);
     Assert.Equal(entity.Object.BoxOfficeRevenue, model.BoxOfficeRevenue);
     Assert.Equal(entity.Object.TotalRevenue, model.TotalRevenue);
     Assert.Equal(entity.Object.Budget, model.Budget);
     Assert.Equal(entity.Object.Rating, model.Rating);
     Assert.Equal(entity.Object.ReleaseDate, model.ReleaseDate);
     Assert.Equal(entity.Object.RunTime, model.RunTime);
     // Related Objects
     Assert.Equal(entity.Object.PrimaryImageFileId, model.PrimaryImageFileId);
 }
コード例 #8
0
 public void Verify_MapToEntity_WithExistingEntity_AssignsMovieProperties()
 {
     // Arrange
     var mapper = new MovieMapper();
     var model = MoviesMockingSetup.DoMockingSetupForMovieModel();
     // Act
     IMovie existingEntity = new Movie { Id = 1 };
     mapper.MapToEntity(model.Object, ref existingEntity);
     // Assert
     Assert.Equal(model.Object.HasStaffReview, existingEntity.HasStaffReview);
     Assert.Equal(model.Object.Distributor, existingEntity.Distributor);
     Assert.Equal(model.Object.BoxOfficeRevenue, existingEntity.BoxOfficeRevenue);
     Assert.Equal(model.Object.TotalRevenue, existingEntity.TotalRevenue);
     Assert.Equal(model.Object.Budget, existingEntity.Budget);
     Assert.Equal(model.Object.Rating, existingEntity.Rating);
     Assert.Equal(model.Object.ReleaseDate, existingEntity.ReleaseDate);
     Assert.Equal(model.Object.RunTime, existingEntity.RunTime);
     // Related Objects
     Assert.Equal(model.Object.PrimaryImageFileId, existingEntity.PrimaryImageFileId);
     // Associated Objects
     model.VerifyGet(x => x.MovieCharacters, Times.Once);
     //Assert.Equal(model.Object.MovieCharacters?.Count, existingEntity.MovieCharacters?.Count);
     model.VerifyGet(x => x.MovieConcepts, Times.Once);
     //Assert.Equal(model.Object.MovieConcepts?.Count, existingEntity.MovieConcepts?.Count);
     model.VerifyGet(x => x.MovieLocations, Times.Once);
     //Assert.Equal(model.Object.MovieLocations?.Count, existingEntity.MovieLocations?.Count);
     model.VerifyGet(x => x.MovieObjects, Times.Once);
     //Assert.Equal(model.Object.MovieObjects?.Count, existingEntity.MovieObjects?.Count);
     model.VerifyGet(x => x.MovieProducers, Times.Once);
     //Assert.Equal(model.Object.MovieProducers?.Count, existingEntity.MovieProducers?.Count);
     model.VerifyGet(x => x.MovieStoryArcs, Times.Once);
     //Assert.Equal(model.Object.MovieStoryArcs?.Count, existingEntity.MovieStoryArcs?.Count);
     model.VerifyGet(x => x.MovieStudios, Times.Once);
     //Assert.Equal(model.Object.MovieStudios?.Count, existingEntity.MovieStudios?.Count);
     model.VerifyGet(x => x.MovieTeams, Times.Once);
     //Assert.Equal(model.Object.MovieTeams?.Count, existingEntity.MovieTeams?.Count);
     model.VerifyGet(x => x.MovieWriters, Times.Once);
     //Assert.Equal(model.Object.MovieWriters?.Count, existingEntity.MovieWriters?.Count);
 }
コード例 #9
0
 public void Verify_AreEqual_WithEqualObjects_ReturnsTrue()
 {
     // Arrange
     var mapper = new MovieMapper();
     var model = MoviesMockingSetup.DoMockingSetupForMovieModel(1);
     var entity = MoviesMockingSetup.DoMockingSetupForMovie(1);
     // Act
     var result = mapper.AreEqual(model.Object, entity.Object);
     // Assert
     Assert.True(result);
 }
コード例 #10
0
 public async Task <Movie> Get(Guid id)
 {
     return(await MovieMapper.Map(_movieService.Get(id))
            .AddLinks(_linksService));
 }
コード例 #11
0
        public async Task <MovieDto> GetById(long id)
        {
            var movie = await _iMovieRepository.GetById(id);

            return(MovieMapper.MapMovieToDto(movie));
        }
コード例 #12
0
 public IMovieModel Get(string key)
 {
     BusinessWorkflowBase.ValidateRequiredKey(key);
     return(MovieMapper.MapToModel(MoviesRepository.Get(key)));
 }
コード例 #13
0
 public IMovieModel Get(int id)
 {
     BusinessWorkflowBase.ValidateRequiredID(id);
     return(MovieMapper.MapToModel(MoviesRepository.Get(id)));
 }
コード例 #14
0
        public void ToMovie_GenreInfoIsNull_ThrowsArgumentNullException()
        {
            var target = new MovieMapper();

            Assert.Throws <ArgumentNullException>(() => target.ToMovie(new MovieResult(), null));
        }
コード例 #15
0
 public void Verify_MapToSearchModel_AssignsMovieSearchProperties()
 {
     // Arrange
     var mapper = new MovieMapper();
     var model = MoviesMockingSetup.DoMockingSetupForMovieModel();
     // Act
     var searchModel = mapper.MapToSearchModel(model.Object);
     // Assert
     Assert.Equal(model.Object.PrimaryImageFileId, searchModel.PrimaryImageFileId);
     Assert.Equal(model.Object.PrimaryImageFile?.CustomKey, searchModel.PrimaryImageFileCustomKey);
     Assert.Equal(model.Object.PrimaryImageFile?.ApiDetailUrl, searchModel.PrimaryImageFileApiDetailUrl);
     Assert.Equal(model.Object.PrimaryImageFile?.SiteDetailUrl, searchModel.PrimaryImageFileSiteDetailUrl);
     Assert.Equal(model.Object.PrimaryImageFile?.Name, searchModel.PrimaryImageFileName);
     Assert.Equal(model.Object.PrimaryImageFile?.ShortDescription, searchModel.PrimaryImageFileShortDescription);
     Assert.Equal(model.Object.PrimaryImageFile?.Description, searchModel.PrimaryImageFileDescription);
     Assert.Equal(model.Object.HasStaffReview, searchModel.HasStaffReview);
     Assert.Equal(model.Object.Distributor, searchModel.Distributor);
 }
コード例 #16
0
 public async Task Add(MovieDto movie)
 {
     await _iMovieRepository.Add(MovieMapper.MapDtoToMovie(movie));
 }
コード例 #17
0
 public async Task <IEnumerable <Movie> > Get()
 {
     return(await _movieService.Get()
            .Select(entity => MovieMapper.Map(entity))
            .AddLinks(_linksService));
 }
コード例 #18
0
 public async Task Update(MovieDto entity)
 {
     await _iMovieRepository.Update(MovieMapper.MapDtoToMovie(entity));
 }
コード例 #19
0
 public MovieOrchestrator(IOMDBConnector OMDBConnector, MovieMapper movieMapper, MovieConverter movieConverter)
 {
     _OMDBConnector  = OMDBConnector;
     _movieMapper    = movieMapper;
     _movieConverter = movieConverter;
 }
コード例 #20
0
 // Setup
 // The constructor is used as a setup method -> xunit
 // other testing frameworks might have specific method names
 // or annotations
 public MovieMapperTests()
 {
     _movieMapper = new MovieMapper();
 }