public void GetMovieByIdErrorTest()
        {
            // Arrange
            var mock          = new Mock <IMoviesRepository>();
            var moviesService = new MoviesService(mock.Object);

            // Act
            mock.Setup(s => s.GetById("movie-id")).Returns(new Error <Movie>(new DatabaseContextException("Database context error.")));
            var result = moviesService.GetById("movie-id");

            // Assert
            switch (result)
            {
            case OK <Movie> ok:
                Assert.Fail();
                break;

            case Error <Movie> error:
                Assert.AreEqual(typeof(DatabaseContextException), error.Exception.GetType());
                Assert.AreEqual(error.Message, "GetById-method repository exception.");
                break;

            default:
                throw new NotImplementedException();
            }
        }
        public async Task GetByIdExistingShouldReturnNotNullObject()
        {
            var options = new DbContextOptionsBuilder <NetPhlixDbContext>()
                          .UseInMemoryDatabase("Test")
                          .Options;
            var dbContext = new NetPhlixDbContext(options);
            await dbContext.Movies.AddAsync(
                new Movie()
            {
                Id = "first"
            }
                );

            await dbContext.SaveChangesAsync();

            var mappingConfig = new MapperConfiguration(
                mc =>
            {
                mc.AddProfiles(
                    typeof(MoviesProfile),
                    typeof(UsersProfile),
                    typeof(CompaniesProfile),
                    typeof(ReviewsProfile),
                    typeof(PeopleProfile),
                    typeof(EventsProfile),
                    typeof(AdminProfile)
                    );
            });
            IMapper mapper = mappingConfig.CreateMapper();

            var service = new MoviesService(mapper, dbContext);
            var movie   = await service.GetById("first");

            Assert.NotNull(movie);
        }
示例#3
0
        public void GetByIdShouldReturnFilmWithCorrectIdNumber()
        {
            var options = new DbContextOptionsBuilder <MoviesDbContext>()
                          .UseInMemoryDatabase(databaseName: nameof(GetByIdShouldReturnFilmWithCorrectIdNumber))
                          .Options;

            using (var context = new MoviesDbContext(options))
            {
                var movieService = new MoviesService(context);
                var addedMovie   = movieService.Create(new ExamenNet.ViewModels.MoviePostModel
                {
                    Title       = "Testare",
                    Director    = "dir1",
                    DateAdded   = new DateTime(),
                    Duration    = 100,
                    Description = "asdvadfbdbsb",
                    Genre       = "Comedy",
                    ReleaseYear = 2000,
                    Rating      = 3,
                    Watched     = 0
                }, null);

                var theMovie = movieService.GetById(1);
                Assert.AreEqual("Testare", theMovie.Title);
            }
        }
        public void GetMovieByIdOkTest()
        {
            // Arrange
            var mock          = new Mock <IMoviesRepository>();
            var moviesService = new MoviesService(mock.Object);
            var movie         = new Movie
            {
                MovieId = "movie-id",
                Title   = "movie-title"
            };

            // Act
            mock.Setup(s => s.GetById("movie-id")).Returns(new OK <Movie>(movie));
            var result = moviesService.GetById("movie-id");

            // Assert
            switch (result)
            {
            case OK <Movie> ok:
                Assert.AreEqual("movie-title", ok.Result.Title);
                break;

            case Error <Movie> error:
                Console.WriteLine(error.Message);
                break;

            default:
                throw new NotImplementedException();
            }
        }
示例#5
0
        public void GetByIdShouldReturnNull()
        {
            var repository = new EfDeletableEntityRepository <Movie>(new ApplicationDbContext(this.options.Options));
            var service    = new MoviesService(repository);

            var result = service.GetById <TestMovieViewModel>(5);

            Assert.Null(result);
        }
 public ActionResult <Movie> GetById(int id)
 {
     try
     {
         return(Ok(_ms.GetById(id)));
     }
     catch (Exception e)
     {
         return(BadRequest(e.Message));
     }
 }
示例#7
0
        public async Task GetById_WithInvalidInput_ShouldReturnInvalidResult(int id)
        {
            var dbContext = ApplicationDbContextCreatorInMemory.InitializeContext();

            await this.SeedData(dbContext);

            var moviesRepository = new EfDeletableEntityRepository <Movie>(dbContext);
            var genresRepository = new EfDeletableEntityRepository <Genre>(dbContext);
            var service          = new MoviesService(moviesRepository, genresRepository);

            Assert.Null(service.GetById <MovieViewModel>(id));
        }
示例#8
0
        public async Task GetByIdShouldReturnTheCorrectData()
        {
            var repository = new EfDeletableEntityRepository <Movie>(new ApplicationDbContext(this.options.Options));
            var service    = new MoviesService(repository);

            await service.AddAsync(this.movie);

            AutoMapperConfig.RegisterMappings(typeof(TestMovieViewModel).Assembly);
            var result = service.GetById <TestMovieViewModel>(1);

            Assert.Equal("Taxi", result.Name);
            Assert.Equal(7.1, result.Rating);
            Assert.Equal(1998, result.Year);
        }
示例#9
0
        public async Task Delete_WithValidInput_ShouldReturnRemoveMovie()
        {
            var dbContext = ApplicationDbContextCreatorInMemory.InitializeContext();

            await this.SeedData(dbContext);

            var moviesRepository = new EfDeletableEntityRepository <Movie>(dbContext);
            var genresRepository = new EfDeletableEntityRepository <Genre>(dbContext);
            var service          = new MoviesService(moviesRepository, genresRepository);

            var movie = service.GetById <MovieEditModel>(1);

            var result = service.Delete(movie);

            Assert.Equal(1, dbContext.Movies.Count());
        }
示例#10
0
        public async Task GetByIdShouldReturnValidMovie()
        {
            AutoMapperConfig.RegisterMappings(typeof(MovieTestModel).Assembly);

            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(Guid.NewGuid().ToString());
            var repository = new EfDeletableEntityRepository <Movie>(new ApplicationDbContext(options.Options));

            await repository.AddAsync(new Movie { Id = 1, Name = "Movie1" });

            await repository.AddAsync(new Movie { Id = 2, Name = "Movie2" });

            await repository.SaveChangesAsync();

            var service = new MoviesService(repository, null, null, null);

            var movie = service.GetById <MovieTestModel>(2);

            Assert.Equal(2, movie.Id);
            Assert.Equal("Movie2", movie.Name);
        }