Esempio n. 1
0
        public void Setup()
        {
            movieRepository = new FakeMovieRepository();
            seenRepository = new FakeSeenRepository();
            controller = new MoviesController(movieRepository, seenRepository);

            MockUserAuthentication(false);
        }
Esempio n. 2
0
        public void ReturnBackWithErrorOnInvalidModel()
        {
            // Arrange
            var moviesSvMock    = new Mock <IMoviesService>();
            var fakeMovie       = new MovieEditViewModel();
            var sut             = new MoviesController(moviesSvMock.Object);
            var fakeHttpContext = new Mock <HttpContextBase>();

            sut.ControllerContext = new ControllerContext
            {
                Controller  = sut,
                HttpContext = fakeHttpContext.Object
            };

            sut.ModelState.AddModelError("Name", "Ivalid movie name");

            // Act & Assert
            sut
            .WithCallTo(c => c.Edit(fakeMovie))
            .ShouldRenderDefaultView()
            .WithModel <MovieEditViewModel>()
            .AndModelErrorFor(m => m.Name);
        }
        public void GetMoviesById_ShouldReturnNotFound_InvalidId()
        {
            //Arrange
            var expectedData = this.nullMovie;
            var movieId      = -1;

            mockRepository
            .Setup(x => x.GetMovie(movieId))
            .Returns(expectedData);

            var controller = new MoviesController(mockRepository.Object, cacheStorage.Object, mockUrlHelper.Object);

            controller.Request = new HttpRequestMessage()
            {
                Properties = { { System.Web.Http.Hosting.HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration() } }
            };

            //Act
            var response = controller.GetDataById(movieId);

            //Assert
            Assert.AreEqual(HttpStatusCode.NotFound, response.StatusCode);
        }
Esempio n. 4
0
        public void Create_ReturnsARedirectAndAddsSession_WhenModelStateIsValid()
        {
            // Arrange
            var mockRepo = new Mock <IRepository>();

            mockRepo.Setup(repo => repo.Add <Movie>(It.IsAny <Movie>()))
            .Verifiable();
            var controller = new MoviesController(mockRepo.Object, webHostEnvironment);
            var newMovie   = new MovieCreateViewModel()
            {
                Title = "New Movie"
            };

            // Act
            var result = controller.Create(newMovie);

            // Assert
            var redirectToActionResult = Assert.IsType <RedirectToActionResult>(result);

            Assert.Equal("Movies", redirectToActionResult.ControllerName);
            Assert.Equal("Index", redirectToActionResult.ActionName);
            mockRepo.Verify();
        }
        public void CreateMovieReturnsMovieWSlugAlreadyExists()
        {
            // Arrange
            var movieRepositoryMock = new Mock <IMovieRepository>();
            var controller          = new MoviesController(movieRepositoryMock.Object);
            var movie = new Movie()
            {
                Id = 1, CodeName = "test", Gender = "test", Name = "test", Slug = "test"
            };
            var movie2 = new Movie()
            {
                Id = 2, CodeName = "test2", Gender = "test2", Name = "test2", Slug = "test"
            };
            var message = "There is already a movie with the same slug";

            movieRepositoryMock.Setup(repo => repo.GetBySlug(movie.Name)).Returns(movie2);

            // Act
            var result = (ObjectResult)controller.Post(movie);

            // Assert
            Assert.AreEqual(message, result.Value, "Create movie is not validating existing movies with same slug");
        }
Esempio n. 6
0
        public TestIntegrations()
        {
            //Create TestServer
            var builder = new WebHostBuilder()
                          .UseStartup <Startup>();

            server = new TestServer(builder);

            //Get individual scopes from testserver to create controllerinstances with scoped services
            movieslogic  = server.Host.Services.GetService <IMoviesLogic>();
            accountlogic = server.Host.Services.GetService <IAccountLogic>();

            sessionlogic = new Mock <IUserSession>();

            account = new Account
            {
                Name     = "Simon",
                Password = "******"
            };
            //Inject services from testserver into the controllers
            moviescontroller  = new MoviesController(movieslogic, sessionlogic.Object);
            accountcontroller = new AccountController(accountlogic, sessionlogic.Object);
        }
Esempio n. 7
0
        public void MovieStore_ListFromDB()
        {
            var list = new List <Movie>
            {
                new Movie()
                {
                    MovieId = 1, Title = "Superman"
                },
                new Movie()
                {
                    MovieId = 2, Title = "Batman"
                }
            }.AsQueryable();
            Mock <MovieStoreDBContext> mockContext = new Mock <MovieStoreDBContext>();
            Mock <DbSet <Movie> >      mockSet     = new Mock <DbSet <Movie> >();

            mockSet.As <IQueryable <Movie> >().Setup(m => m.GetEnumerator()).Returns(list.GetEnumerator());
            mockContext.Setup(db => db.Movies).Returns(mockSet.Object);
            MoviesController controller = new MoviesController(mockContext.Object);
            ViewResult       result     = controller.ListFromDB() as ViewResult;

            Assert.IsNotNull(result);
        }
        public void PostMovie_ShouldReturn_BadRequestStatusCode()
        {
            //Arrange
            var newMovie   = nullMovie;
            var newMovieId = -1;

            mockRepository
            .Setup(x => x.AddMovie(newMovie, ref newMovieId))
            .Returns(false);

            var controller = new MoviesController(mockRepository.Object, cacheStorage.Object, mockUrlHelper.Object);

            controller.Request = new HttpRequestMessage()
            {
                Properties = { { System.Web.Http.Hosting.HttpPropertyKeys.HttpConfigurationKey, new HttpConfiguration() } }
            };

            //Act
            var response = controller.PostMovie(newMovie);

            //Assert
            Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode);
        }
        public async Task FilterByInTheaters()
        {
            var databaseName = CreateTestData();
            var mapper       = BuildMap();
            var context      = BuildContext(databaseName);

            var controller = new MoviesController(context, mapper, null, null);

            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            var filterDTO = new FilterMoviesDTO()
            {
                InTheaters     = true,
                RecordsPerPage = 10
            };

            var response = await controller.Filter(filterDTO);

            var movies = response.Value;

            Assert.AreEqual(1, movies.Count);
            Assert.AreEqual("In Theaters Movie", movies[0].Title);
        }
Esempio n. 10
0
        public void C_Create_Movie_RedirectsToIndex()
        {
            // Arrange
            var moviesController = new MoviesController(db);

            // Act
            var actionResult = moviesController.Create(
                new Movie
            {
                Title    = "Casablanca",
                DateSeen = DateTime.Now.Date,
                Genre    = "Drama",
                Rating   = 4
            });

            ;

            // Assert
            Assert.IsType <RedirectToActionResult>(actionResult);
            var redirectToActionResult = actionResult as RedirectToActionResult;

            Assert.Equal("Index", redirectToActionResult.ActionName);
        }
        public void MovieStore_Edit_MovieParam_BadBind()
        {
            //Arrange
            MoviesController controller = new MoviesController();

            controller.ModelState.AddModelError("key", "error message");

            var list = new List <Movie>
            {
                new Movie {
                    MovieId = 1, Title = "Jaws"
                },
                new Movie {
                    MovieId = 2, Title = "Despicable Me"
                }
            }.AsQueryable();

            //Act
            var result = controller.Edit(list.First()) as ViewResult;

            //Assert
            Assert.IsNotNull(result);
        }
Esempio n. 12
0
        public void MovieStore_Edit_MovieIsNull()
        {
            var list = new List <Movie>
            {
                new Movie {
                    MovieId = 1, Title = "Superman 1"
                },
                new Movie {
                    MovieId = 2, Title = "Superman 2"
                },
            }.AsQueryable();

            //2
            Mock <MovieStoreDBContext> mockContext = new Mock <MovieStoreDBContext>();
            Mock <DbSet <Movie> >      mockSet     = new Mock <DbSet <Movie> >();

            //3
            mockSet.As <IQueryable <Movie> >().Setup(m => m.GetEnumerator()).Returns(list.GetEnumerator());
            mockSet.As <IQueryable <Movie> >().Setup(m => m.Provider).Returns(list.Provider);
            mockSet.As <IQueryable <Movie> >().Setup(m => m.ElementType).Returns(list.ElementType);

            Movie movie = null;

            mockSet.Setup(m => m.Find(It.IsAny <Object>())).Returns(movie);

            //4
            mockContext.Setup(db => db.Movies).Returns(mockSet.Object);

            //Arrage
            MoviesController controller = new MoviesController(mockContext.Object);

            //Act
            HttpStatusCodeResult result = controller.Edit(0) as HttpStatusCodeResult;

            //Assert
            Assert.AreEqual(HttpStatusCode.NotFound, (HttpStatusCode)result.StatusCode);
        }
        public void AllMoviesMethodShouldReturnCorrectData()
        {
            var repository     = new Mock <IRepository <Movie> >();
            var movieService   = new Mock <IMoviesService>();
            var projectiosRepo = new Mock <IProjectionsService>();

            movieService.Setup(r => r.AllMovies <Movie>()).Returns(new List <Movie>
            {
                new Movie
                {
                    Id       = 1,
                    Title    = "Titanic",
                    Country  = MegaCinema.Data.Models.Enums.Country.UK,
                    Rating   = MPAARating.G,
                    Duration = new System.TimeSpan(2, 25, 35),
                    Genre    = GenreType.Adventure,
                    Language = MegaCinema.Data.Models.Enums.Language.English,
                },
                new Movie
                {
                    Id       = 2,
                    Title    = "Die hard 5",
                    Language = MegaCinema.Data.Models.Enums.Language.French,
                    Genre    = GenreType.Drama,
                    Rating   = MPAARating.PG13,
                    Score    = 7.5,
                },
            });

            var moviesController = new MoviesController(movieService.Object, projectiosRepo.Object);
            var result           = moviesController.Details(2);

            Assert.IsType <ViewResult>(result);
            var viewResult = result as Task <IActionResult>;

            Assert.IsType <MovieViewModel>(viewResult);
        }
Esempio n. 14
0
        public async Task FilterOrderByTitleAscending()
        {
            //Preparation
            var databaseName = CreateTestsData();
            var context      = BuildContext(databaseName);
            var mapper       = BuildMap();

            var context2 = BuildContext(databaseName);

            var filterMovieDto = new FilterMoviesDto()
            {
                OrderingField  = "title",
                AscendingOrder = true,
                RecordsPerPage = 10
            };

            //Testing
            var controller = new MoviesController(context, mapper, null, null);

            controller.ControllerContext.HttpContext = new DefaultHttpContext();
            var response = await controller.Filter(filterMovieDto);

            var moviesFromDb = context2.Movies.OrderBy(x => x.Title).ToList();

            //Verification
            var result = response.Value;

            Assert.AreEqual(moviesFromDb.Count, result.Count);

            for (int i = 0; i < moviesFromDb.Count; i++)
            {
                var movieFromController = result[i];
                var movieFromDb         = moviesFromDb[i];

                Assert.AreEqual(movieFromDb.Id, movieFromController.Id);
            }
        }
Esempio n. 15
0
        public void MovieStore_ListFromDb()
        {
            // Step 1
            var list = new List <Movie>
            {
                new Movie()
                {
                    MovieId = 1, Title = "Jaws"
                },
                new Movie()
                {
                    MovieId = 2, Title = "Jurassic Park"
                }
            }.AsQueryable();

            // Step 2
            Mock <MovieStoreDbContext> mockContext = new Mock <MovieStoreDbContext>();
            Mock <DbSet <Movie> >      mockSet     = new Mock <DbSet <Movie> >();

            // Step 3
            mockSet.As <IOrderedQueryable <Movie> >().Setup(m => m.GetEnumerator()).Returns(list.GetEnumerator);

            // Step 4
            mockContext.Setup(db => db.Movies).Returns(mockSet.Object);

            // Arrange
            MoviesController controller = new MoviesController(mockContext.Object);

            // Act
            ViewResult   result      = controller.ListFromDb() as ViewResult;
            List <Movie> resultModel = result.Model as List <Movie>;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("Jaws", resultModel[0].Title);
            Assert.AreEqual("Jurassic Park", resultModel[0].Title);
        }
Esempio n. 16
0
        public void DeleteMovie_ValidData()
        {
            var options = new DbContextOptionsBuilder <ApplicationDbContext>()
                          .UseInMemoryDatabase(databaseName: "DeleteMovie_ValidData")
                          .Options;
            MoviesController controller = new MoviesController(new ApplicationDbContext(options));

            var tmp = new Movie
            {
                Description = "Movie Description",
                Genre       = Genre.Action,
                Rating      = 5.4,
                Title       = "Movie Title",
                Year        = 2019
            };

            using (var context = new ApplicationDbContext(options))
            {
                context.Movies.Add(tmp);
                context.SaveChanges();
            }


            Movie movie;

            using (var context = new ApplicationDbContext(options))
            {
                movie = context.Movies.FirstOrDefault(x => x.Id == 1);
            }

            controller.Delete(1, movie);

            using (var context = new ApplicationDbContext(options))
            {
                Assert.Equal(0, context.Movies.Count());
            }
        }
        public void MovieStore_DeleteGET_Success()
        {
            // Step 1
            var list = new List <Movie>
            {
                new Movie()
                {
                    MovieId = 1, Title = "Superman 1"
                },
                new Movie()
                {
                    MovieId = 2, Title = "Superman 2"
                }
            }.AsQueryable();

            // Step 2
            Mock <MovieStoreDbContext> mockContext = new Mock <MovieStoreDbContext>();
            Mock <DbSet <Movie> >      mockSet     = new Mock <DbSet <Movie> >();

            // Step 3
            mockSet.As <IQueryable <Movie> >().Setup(m => m.GetEnumerator()).Returns(list.GetEnumerator());
            mockSet.As <IQueryable <Movie> >().Setup(m => m.Provider).Returns(list.Provider);
            mockSet.As <IQueryable <Movie> >().Setup(m => m.ElementType).Returns(list.ElementType);
            mockSet.Setup(m => m.Find(It.IsAny <Object>())).Returns(list.First());

            // Step 4
            mockContext.Setup(db => db.Movies).Returns(mockSet.Object);

            // Arrange
            MoviesController controller = new MoviesController(mockContext.Object);

            // Act
            ViewResult result = controller.Delete(1) as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
        public void MovieStore_EditGET_IdIsNull()
        {
            // Step 1
            var list = new List <Movie>
            {
                new Movie()
                {
                    MovieId = 1, Title = "Superman 1"
                },
                new Movie()
                {
                    MovieId = 2, Title = "Superman 2"
                }
            }.AsQueryable();

            // Step 2
            Mock <MovieStoreDbContext> mockContext = new Mock <MovieStoreDbContext>();
            Mock <DbSet <Movie> >      mockSet     = new Mock <DbSet <Movie> >();

            // Step 3
            mockSet.As <IQueryable <Movie> >().Setup(m => m.GetEnumerator()).Returns(list.GetEnumerator());
            mockSet.As <IQueryable <Movie> >().Setup(m => m.Provider).Returns(list.Provider);
            mockSet.As <IQueryable <Movie> >().Setup(m => m.ElementType).Returns(list.ElementType);
            mockSet.Setup(m => m.Find(It.IsAny <Object>())).Returns(list.First());

            // Step 4
            mockContext.Setup(db => db.Movies).Returns(mockSet.Object);

            // Arrange
            MoviesController controller = new MoviesController(mockContext.Object);

            // Act
            HttpStatusCodeResult result = controller.Edit((int?)null) as HttpStatusCodeResult;

            // Assert
            Assert.AreEqual(HttpStatusCode.BadRequest, (HttpStatusCode)result.StatusCode);
        }
        public void MovieStore_Delete_MovieNull()
        {
            //Arrange
            Mock <MovieStoreDbContext> mockContext = new Mock <MovieStoreDbContext>();
            Mock <DbSet <Movie> >      mockSet     = new Mock <DbSet <Movie> >();


            var list = new List <Movie>
            {
                new Movie {
                    MovieId = 1, Title = "Jaws"
                },
                new Movie {
                    MovieId = 2, Title = "Despicable Me"
                }
            }.AsQueryable();

            mockSet.As <IQueryable <Movie> >().Setup(m => m.Provider).Returns(list.Provider);
            mockSet.As <IQueryable <Movie> >().Setup(m => m.GetEnumerator()).Returns(list.GetEnumerator());
            mockSet.As <IQueryable <Movie> >().Setup(m => m.Expression).Returns(list.Expression);
            mockSet.As <IQueryable <Movie> >().Setup(m => m.ElementType).Returns(list.ElementType);

            Movie movie = null;

            mockSet.Setup(m => m.Find(It.IsAny <Object>())).Returns(movie);

            mockContext.Setup(db => db.Movies).Returns(mockSet.Object);

            //Controller needs a mock object for Dependency Injection
            MoviesController controller = new MoviesController(mockContext.Object);

            //Act
            HttpStatusCodeResult result = controller.Delete(1) as HttpStatusCodeResult;

            //Assert
            Assert.AreEqual(HttpStatusCode.NotFound, (HttpStatusCode)result.StatusCode);
        }
Esempio n. 20
0
        public void MovieStore_DeleteConfirmed_Success()
        {
            //Goal: Query from own list instead of the db
            var list = new List <Movie>
            {
                new Movie()
                {
                    MovieId = 1, Title = "Superman 1"
                },
                new Movie()
                {
                    MovieId = 2, Title = "Superman 2"
                }
            }.AsQueryable();

            Mock <MovieStoreDbContext> mockContext = new Mock <MovieStoreDbContext>();
            Mock <DbSet <Movie> >      mockSet     = new Mock <DbSet <Movie> >();

            mockSet.As <IQueryable <Movie> >().Setup(m => m.GetEnumerator()).Returns(list.GetEnumerator());
            mockSet.As <IQueryable <Movie> >().Setup(m => m.Provider).Returns(list.Provider);
            mockSet.As <IQueryable <Movie> >().Setup(m => m.ElementType).Returns(list.ElementType);


            mockContext.Setup(db => db.Movies).Returns(mockSet.Object);



            //Arrange
            MoviesController controller = new MoviesController(mockContext.Object);

            //Act
            RedirectToRouteResult result = controller.DeleteConfirmed(1) as RedirectToRouteResult;

            //Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("Index", result.RouteValues["action"]);
        }
        public void MovieStore_Details_MovieIsNull()
        {
            //Goal: query from out own list instead of DB
            var list = new List <Movie>
            {
                new Movie()
                {
                    MovieID = 1, Title = "Superman 1"
                },
                new Movie()
                {
                    MovieID = 2, Title = "Superman 2"
                }
            }.AsQueryable();

            Mock <MovieStoreDBContext> mockContext = new Mock <MovieStoreDBContext>();
            Mock <DbSet <Movie> >      mockSet     = new Mock <DbSet <Movie> >();

            mockSet.As <IQueryable <Movie> >().Setup(expression: m => m.GetEnumerator()).Returns(list.GetEnumerator());
            mockSet.As <IQueryable <Movie> >().Setup(expression: m => m.Provider).Returns(list.Provider);
            mockSet.As <IQueryable <Movie> >().Setup(expression: m => m.ElementType).Returns(list.ElementType);
            Movie movie = null;

            mockSet.Setup(expression: m => m.Find(It.IsAny <Object>())).Returns(movie);

            mockContext.Setup(expression: db => db.Movies).Returns(mockSet.Object);

            // Arrange
            MoviesController controller = new MoviesController(mockContext.Object);

            // Act
            HttpStatusCodeResult result = controller.Details(id: 0) as HttpStatusCodeResult;


            // Assert
            Assert.AreEqual(expected: HttpStatusCode.NotFound, actual: (HttpStatusCode)result.StatusCode);
        }
        public void MovieStore_ListFromDb()
        {
            // Arrange

            Mock <MovieStoreDbContext> mockContext = new Mock <MovieStoreDbContext>();
            Mock <DbSet <Movie> >      mockSet     = new Mock <DbSet <Movie> >(); // Error starts from here

            var list = new List <Movie> {
                new Movie()
                {
                    MovieId = 1, Title = "Jaws"
                },
                new Movie()
                {
                    MovieId = 2, Title = "Despicable Me"
                }
            }.AsQueryable();

            mockSet.As <IQueryable <Movie> >().Setup(m => m.Provider).Returns(list.Provider);
            mockSet.As <IQueryable <Movie> >().Setup(m => m.Expression).Returns(list.Expression);
            mockSet.As <IQueryable <Movie> >().Setup(m => m.ElementType).Returns(list.ElementType);
            mockSet.As <IQueryable <Movie> >().Setup(m => m.GetEnumerator()).Returns(list.GetEnumerator());

            mockContext.Setup(db => db.Movies).Returns(mockSet.Object);

            //Controller needs a mock object for Dependency Injection
            MoviesController controller = new MoviesController(mockContext.Object);

            // Act
            ViewResult   result      = controller.ListFromDb() as ViewResult;
            List <Movie> resultModel = result.Model as List <Movie>;

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual("Jaws", resultModel[0].Title);
            Assert.AreEqual("Despicable Me", resultModel[1].Title);
        }
Esempio n. 23
0
        public void MovieStore_EditePostFail()
        {
            // Goal: Query from out own list instead of the database.

            // Set up own list
            var list = new List <Movie>
            {
                new Movie()
                {
                    MovieId = 1, Title = "Superman 1"
                },
                new Movie()
                {
                    MovieId = 2, Title = "Superman 2"
                }
            }.AsQueryable();

            // Step 2
            Mock <MovieStoreDBContext> mockContext = new Mock <MovieStoreDBContext>();
            Mock <DbSet <Movie> >      mockSet     = new Mock <DbSet <Movie> >();

            // Step 3
            mockSet.As <IQueryable <Movie> >().Setup(expression: m => m.GetEnumerator()).Returns(list.GetEnumerator());
            mockSet.Setup(expression: m => m.Find(It.IsAny <Object>())).Returns(list.First());
            // Step 4
            mockContext.Setup(expression: db => db.Movies).Returns(mockSet.Object);

            // Arrange
            MoviesController controller = new MoviesController(mockContext.Object);
            // Act
            ViewResult result = controller.Edit(id: 0) as ViewResult;



            // Assert
            Assert.IsNotNull(result);
        }
Esempio n. 24
0
        public void Delete_Not_Successful_Throw_DbUpdate_Exception()
        {
            //Arrange
            Guid g = new Guid();

            MovieDomainModel movieDomainModel = new MovieDomainModel
            {
                Id       = Guid.NewGuid(),
                Current  = true,
                HasOscar = true,
                Rating   = 2,
                Title    = "Film1",
                Year     = 2015
            };

            string                  expectedMessage    = "Inner exception error message.";
            int                     expectedStatusCode = 400;
            Exception               exception          = new Exception("Inner exception error message.");
            DbUpdateException       dbUpdateException  = new DbUpdateException("Error.", exception);
            Task <MovieDomainModel> responseTask       = Task.FromResult(movieDomainModel);

            _movieService  = new Mock <IMovieService>();
            _loggerService = new Mock <ILogger <MoviesController> >();
            _movieService.Setup(x => x.DeleteMovie(It.IsAny <Guid>())).Throws(dbUpdateException);
            MoviesController moviesController = new MoviesController(_loggerService.Object, _movieService.Object);

            //Act
            var result        = moviesController.Delete(g).ConfigureAwait(false).GetAwaiter().GetResult().Result;
            var objectResult  = ((BadRequestObjectResult)result).Value;
            var errorResponse = (ErrorResponseModel)objectResult;

            //Assert
            Assert.IsNotNull(errorResponse);
            Assert.AreEqual(expectedMessage, errorResponse.ErrorMessage);
            Assert.AreEqual(expectedStatusCode, ((BadRequestObjectResult)result).StatusCode);
            Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult));
        }
Esempio n. 25
0
        public void Movie_Delete_MovieIsNull()
        {
            // Goal: Query from our own list instead of the database.
            var list = new List <Movie>
            {
                new Movie()
                {
                    MovieId = 1, Title = "Superman 1"
                },
                new Movie()
                {
                    MovieId = 2, Title = "Superman 2"
                }
            }.AsQueryable();

            Mock <MovieStoreDbContext> mockContext = new Mock <MovieStoreDbContext>();
            Mock <DbSet <Movie> >      mockSet     = new Mock <DbSet <Movie> >();

            mockSet.As <IQueryable <Movie> >().Setup(m => m.GetEnumerator()).Returns(list.GetEnumerator());
            mockSet.As <IQueryable <Movie> >().Setup(m => m.Provider).Returns(list.Provider);
            mockSet.As <IQueryable <Movie> >().Setup(m => m.ElementType).Returns(list.ElementType);

            Movie movie = null;

            mockSet.Setup(m => m.Find(It.IsAny <Object>())).Returns(movie);

            mockContext.Setup(db => db.Movies).Returns(mockSet.Object);

            // Arrange
            MoviesController controller = new MoviesController(mockContext.Object);

            // Act
            HttpStatusCodeResult result = controller.Delete(0) as HttpStatusCodeResult;

            // Assert
            Assert.AreEqual(HttpStatusCode.NotFound, (HttpStatusCode)result.StatusCode);
        }
Esempio n. 26
0
        public void Init()
        {
            _movies = new List <Movie>
            {
                new Movie
                {
                    Id          = 1,
                    Genre       = "Action",
                    Price       = (decimal)9.99,
                    Rating      = "R",
                    ReleaseDate = DateTime.Now,
                    Title       = "Pulp Fiction"
                },
                new Movie
                {
                    Id          = 2,
                    Genre       = "Comedy",
                    Price       = (decimal)9.99,
                    Rating      = "R",
                    ReleaseDate = DateTime.Now,
                    Title       = "The Big Lebowski"
                },
                new Movie
                {
                    Id          = 3,
                    Genre       = "Action",
                    Price       = (decimal)9.99,
                    Rating      = "PG-13",
                    ReleaseDate = DateTime.Now,
                    Title       = "Batman Begins"
                }
            };

            _mockService = new Mock <IMovieService>();
            _controller  = new MoviesController(_mockService.Object);
        }
            public Index()
            {
                var mockDb = new Mock<IMovieDbContext>();

                _allMovies = new List<Movie>
                {
                    _anActionMovie,
                    _speed,
                    _aRomanceMovie,
                    _romeoAndJuliet,
                    _aComedyMovie,
                    _zoolander
                }.AsQueryable();

                var mockSet = new Mock<DbSet<Movie>>();
                mockSet.As<IQueryable<Movie>>().Setup(m => m.Provider).Returns(_allMovies.Provider);
                mockSet.As<IQueryable<Movie>>().Setup(m => m.Expression).Returns(_allMovies.Expression);
                mockSet.As<IQueryable<Movie>>().Setup(m => m.ElementType).Returns(_allMovies.ElementType);
                mockSet.As<IQueryable<Movie>>().Setup(m => m.GetEnumerator()).Returns(_allMovies.GetEnumerator());

                mockDb.Setup(x => x.Movies).Returns(mockSet.Object);

                _sut = new MoviesController(mockDb.Object);
            }
Esempio n. 28
0
        public async Task FilterGender()
        {
            var nameDB  = CreateDataTest();
            var mapper  = ConfigurationAutoMapper();
            var context = BuildContext(nameDB);

            var controller = new MoviesController(context, mapper, null, null);

            controller.ControllerContext.HttpContext = new DefaultHttpContext();

            var genderId = context.Genders.Select(x => x.Id).First();

            var filterDTO = new FilterMoviesDTO()
            {
                GenderId = genderId
            };

            var response = await controller.Filters(filterDTO);

            var movies = response.Value;

            Assert.AreEqual(1, movies.Count);
            Assert.AreEqual("Película con Género", movies[0].Title);
        }
        public void MovieStore_Edit_ModelStateValid()
        {
            #region Arrange
            var movies = new List <Movie>()
            {
                new Movie {
                    MovieId = 1, Title = "Superman 1", YearRelease = 2019
                },
                new Movie {
                    MovieId = 2, Title = "Superman 2", YearRelease = 2007
                }
            }.AsQueryable();

            Mock <MovieStoreDbContext> mockContext = new Mock <MovieStoreDbContext>();
            Mock <DbSet <Movie> >      mockSet     = new Mock <DbSet <Movie> >();

            mockSet.As <IQueryable <Movie> >().Setup(o => o.GetEnumerator())
            .Returns(movies.GetEnumerator());

            mockContext.Setup(o => o.Movies)
            .Returns(mockSet.Object);

            MoviesController controller = new MoviesController(mockContext.Object);

            // Force ModelState.IsValid to be false
            controller.ModelState.AddModelError("key", "errorMessage");
            #endregion

            #region Act
            ViewResult result = controller.Edit(movies.First()) as ViewResult;
            #endregion

            #region Assert
            Assert.IsNotNull(result);
            #endregion
        }
        public void MovieStore_Delete_IdIsNull()
        {
            #region Arrange
            var movies = new List <Movie>()
            {
                new Movie {
                    MovieId = 1, Title = "Superman 1"
                },
                new Movie {
                    MovieId = 2, Title = "Superman 2"
                }
            }.AsQueryable();


            Mock <MovieStoreDbContext> mockContext = new Mock <MovieStoreDbContext>();
            Mock <DbSet <Movie> >      mockSet     = new Mock <DbSet <Movie> >();

            mockSet.As <IQueryable <Movie> >().Setup(o => o.GetEnumerator())
            .Returns(movies.GetEnumerator());

            mockSet.Setup(o => o.Find(It.IsAny <object>())).Returns(movies.FirstOrDefault());

            mockContext.Setup(o => o.Movies)
            .Returns(mockSet.Object);
            #endregion

            #region Act
            MoviesController controller = new MoviesController(mockContext.Object);

            HttpStatusCodeResult result = controller.Delete(id: null) as HttpStatusCodeResult;
            #endregion

            #region Assert
            Assert.AreEqual(HttpStatusCode.BadRequest, (HttpStatusCode)result.StatusCode);
            #endregion
        }
        public void MovieStore_Delete_Success()
        {
            #region Arrange
            var movies = new List <Movie>()
            {
                new Movie {
                    MovieId = 1, Title = "Superman 1"
                },
                new Movie {
                    MovieId = 2, Title = "Superman 2"
                }
            }.AsQueryable();


            Mock <MovieStoreDbContext> mockContext = new Mock <MovieStoreDbContext>();
            Mock <DbSet <Movie> >      mockSet     = new Mock <DbSet <Movie> >();

            mockSet.As <IQueryable <Movie> >().Setup(o => o.GetEnumerator())
            .Returns(movies.GetEnumerator());

            mockSet.Setup(o => o.Find(It.IsAny <object>())).Returns(movies.FirstOrDefault());

            mockContext.Setup(o => o.Movies)
            .Returns(mockSet.Object);
            #endregion

            #region Act
            MoviesController controller = new MoviesController(mockContext.Object);

            ViewResult result = controller.Delete(1) as ViewResult;
            #endregion

            #region Assert
            Assert.IsNotNull(result);
            #endregion
        }
 private void Setup()
 {
     m_moviesService = new InMemoryMoviesService();
     m_controller = new MoviesController(m_moviesService);
 }