示例#1
0
        public void AddRating_WithValidMovieId_AdjustsMovieRating()
        {
            IMembershipService membershipService = new FakeMembershipService(Enumerable.Empty <MembershipUser>());

            var       movies  = new List <Movie>();
            const int movieId = 42;
            var       movie   = new Movie
            {
                Id        = movieId,
                Directors = "Directors",
                GenreId   = 1,
                Name      = "Name",
                Rating    = 3,
                Stars     = "Stars",
                Writers   = "Writers"
            };

            movies.Add(movie);


            IRepository <Movie> movieRepository = new FakeMovieRepository(movies);
            IRepository <Genre> genreRepository = new FakeGenreRepository();
            var movieController = new MovieController(movieRepository, genreRepository, membershipService)
            {
                ControllerContext = new FakeControllerContext()
            };


            const short newRating = 5;

            movieController.AddRating(movieId, newRating);

            Assert.IsTrue(movie.Rating == newRating);
        }
示例#2
0
        public void Edit_WithMovieToEditFound_RedirectsToIndex()
        {
            IMembershipService membershipService = new FakeMembershipService(Enumerable.Empty <MembershipUser>());

            var       movies  = new List <Movie>();
            const int movieId = 42;

            movies.Add(new Movie {
                Id = movieId
            });
            IRepository <Movie> movieRepository = new FakeMovieRepository(movies);
            IRepository <Genre> genreRepository = new FakeGenreRepository();
            var movieController = new MovieController(movieRepository, genreRepository, membershipService);


            var editMovieViewModel = new EditMovieViewModel
            {
                Id        = movieId,
                Directors = "Directors",
                GenreId   = 1,
                Name      = "Name",
                Rating    = 3,
                Stars     = "Stars",
                Writers   = "Writers"
            };
            var result = (RedirectToRouteResult)movieController.Edit(editMovieViewModel);

            Assert.IsTrue(string.Compare(result.Action(), "Index", true) == 0);
        }
示例#3
0
        public void AddRating_WithValidMovieId_CallsSaveOnMovieRepository()
        {
            IMembershipService membershipService = new FakeMembershipService(Enumerable.Empty <MembershipUser>());

            var       movies  = new List <Movie>();
            const int movieId = 42;
            var       movie   = new Movie
            {
                Id        = movieId,
                Directors = "Directors",
                GenreId   = 1,
                Name      = "Name",
                Rating    = 3,
                Stars     = "Stars",
                Writers   = "Writers"
            };

            movies.Add(movie);

            bool   wasCalled  = false;
            Action saveAction = () => wasCalled = true;

            IRepository <Movie> movieRepository = new FakeMovieRepository(movies, saveCallback: saveAction);
            IRepository <Genre> genreRepository = new FakeGenreRepository();
            var movieController = new MovieController(movieRepository, genreRepository, membershipService)
            {
                ControllerContext = new FakeControllerContext()
            };


            movieController.AddRating(movieId, 5);

            Assert.IsTrue(wasCalled);
        }
示例#4
0
        public void GetEnumeratorTest()
        {
            var repo      = new FakeMovieRepository();
            var movieList = repo.GetMovieList().Result;

            Assert.True(movieList.Count() > 1);
        }
示例#5
0
        public void ClearRating_WithValidMovieId_ClearsRatingOnMovie()
        {
            IMembershipService membershipService = new FakeMembershipService(Enumerable.Empty <MembershipUser>());

            var       movies  = new List <Movie>();
            const int movieId = 42;
            var       movie   = new Movie
            {
                Id        = movieId,
                Directors = "Directors",
                GenreId   = 1,
                Name      = "Name",
                Rating    = 3,
                Stars     = "Stars",
                Writers   = "Writers"
            };

            movies.Add(movie);


            IRepository <Movie> movieRepository = new FakeMovieRepository(movies);
            IRepository <Genre> genreRepository = new FakeGenreRepository();
            var movieController = new MovieController(movieRepository, genreRepository, membershipService);


            movieController.ClearRating(movieId);

            Assert.IsTrue(movie.Rating == 0);
        }
示例#6
0
        public void GetTopMovieIdsTest()
        {
            //var wrapper = new HttpWrapper();
            //var repo = new MovieRepository(wrapper);
            var fakeRepo = new FakeMovieRepository();
            var ids      = fakeRepo.GetTopMovieIds();

            //File.WriteAllLines($"{_dataLoaction}\\movieIds.txt", ids);
            Assert.True(ids.Any());
        }
示例#7
0
        public void GetMovieInfoTest()
        {
            //var wrapper = new HttpWrapper();
            //var repo = new MovieApiHelper(wrapper);
            //var movie = repo.GetMovieInfo("tt0060196");
            var fakeRepo = new FakeMovieRepository();
            var movie    = fakeRepo.GetMovie("");

            Assert.NotNull(movie);
        }
示例#8
0
        public void Edit_WithNoMovieFound_RedirectsToMovieNotFound()
        {
            IMembershipService membershipService = new FakeMembershipService(Enumerable.Empty <MembershipUser>());

            IRepository <Movie> movieRepository = new FakeMovieRepository();
            var movieController = new MovieController(movieRepository, null, membershipService);

            var result = (RedirectToRouteResult)movieController.Edit(42);

            Assert.IsTrue(string.Compare(result.Action(), "MoveNotFound", true) == 0);
        }
示例#9
0
        public void FilterTest()
        {
            var fakeRepo   = new FakeMovieRepository();
            var movies     = fakeRepo.GetMovieList().Result;
            var movieQuery = new MovieQuery {
                MinYear = 2013, MaxYear = 2016, OrderBy = "Released"
            };
            var filteredMovies = movies.Filter(movieQuery);

            Assert.True(filteredMovies.Count() == 3);
            Assert.NotNull(filteredMovies.FirstOrDefault());
            Assert.Equal(filteredMovies.FirstOrDefault().ImdbID, "2");
        }
示例#10
0
        public void GetMovieDataTest()
        {
            //var wrapper = new HttpWrapper();
            //var repo = new MovieRepository(wrapper);
            var fakeRepo = new FakeMovieRepository();
            var data     = fakeRepo.GetMovieList().Result;

            Assert.True(data.Count() > 0);
            var jsonString = JsonConvert.SerializeObject(data);

            Assert.NotNull(jsonString);
            //File.WriteAllText($"{_dataLoaction}\\movieData.txt", jsonString);
        }
示例#11
0
        public void Add_ReturnsView()
        {
            IMembershipService membershipService = new FakeMembershipService(Enumerable.Empty <MembershipUser>());

            IRepository <Movie> movieRepository = new FakeMovieRepository();
            IRepository <Genre> genreRepository = new FakeGenreRepository();

            var movieController = new MovieController(movieRepository, genreRepository, membershipService);


            var result = movieController.Add() as ViewResult;

            Assert.IsNotNull(result);
        }
示例#12
0
        public void Edit_WithMovieToEditNotFound_RedirectsToMovieNotFound()
        {
            IMembershipService membershipService = new FakeMembershipService(Enumerable.Empty <MembershipUser>());

            var movies = new List <Movie>();
            IRepository <Movie> movieRepository = new FakeMovieRepository(movies);
            IRepository <Genre> genreRepository = new FakeGenreRepository();
            var movieController = new MovieController(movieRepository, genreRepository, membershipService);


            var result = (RedirectToRouteResult)movieController.Edit(new EditMovieViewModel());

            Assert.IsTrue(string.Compare(result.Action(), "MoveNotFound", true) == 0);
        }
示例#13
0
        public void Detail_WithMovieFound_ReturnsView()
        {
            IMembershipService membershipService = new FakeMembershipService(Enumerable.Empty <MembershipUser>());

            var       movies  = new List <Movie>();
            const int movieId = 42;

            movies.Add(new Movie {
                Id = movieId
            });
            IRepository <Movie> movieRepository = new FakeMovieRepository(movies);
            var movieController = new MovieController(movieRepository, null, membershipService);


            var result = movieController.Detail(movieId) as ViewResult;

            Assert.IsNotNull(result);
        }
        public void GetMoviesTest()
        {
            FakeMovieRepository repository = new FakeMovieRepository(new FakeMovieContext());

            List <Movie> expected = new List <Movie>();

            expected.Add(new Movie {
                ID = 1, Title = "Test Album 1", Genre = "Genre 1", Price = 8.99M, Rating = "R", ReleaseDate = new DateTime(1985, 6, 1)
            });
            expected.Add(new Movie {
                ID = 2, Title = "Test Album 2", Genre = "Genre 2", Price = 8.99M, Rating = "R", ReleaseDate = new DateTime(1985, 6, 1)
            });
            expected.Add(new Movie {
                ID = 3, Title = "Test Album 1", Genre = "Genre 3", Price = 8.99M, Rating = "R", ReleaseDate = new DateTime(1999, 6, 1)
            });

            List <Movie> actual = repository.FindAll().ToList();

            CollectionAssert.AreEquivalent(expected, actual);
        }
示例#15
0
        public void Add_WithValidUserAndModel_CallsSaveOnMovieRepository()
        {
            var  users = new List <MembershipUser>();
            Guid guid  = Guid.NewGuid();

            users.Add(new TestMembershipUser("test", guid));

            IMembershipService membershipService = new FakeMembershipService(users);

            var       movies  = new List <Movie>();
            const int movieId = 42;

            movies.Add(new Movie {
                Id = movieId
            });

            bool   wasCalled  = false;
            Action saveAction = () => wasCalled = true;

            IRepository <Movie> movieRepository = new FakeMovieRepository(movies, saveCallback: saveAction);
            IRepository <Genre> genreRepository = new FakeGenreRepository();
            var movieController = new MovieController(movieRepository, genreRepository, membershipService)
            {
                ControllerContext = new FakeControllerContext()
            };

            var editMovieViewModel = new EditMovieViewModel
            {
                Id        = movieId,
                Directors = "Directors",
                GenreId   = 1,
                Name      = "Name",
                Rating    = 3,
                Stars     = "Stars",
                Writers   = "Writers"
            };

            movieController.Add(editMovieViewModel);

            Assert.IsTrue(wasCalled);
        }
示例#16
0
        public void Index_WithValidUser_ReturnsView()
        {
            var users = new List <MembershipUser>();

            Guid guid = Guid.NewGuid();

            users.Add(new TestMembershipUser("test", guid));

            IMembershipService membershipService = new FakeMembershipService(users);

            IRepository <Movie> movieRepository = new FakeMovieRepository();
            var movieController = new MovieController(movieRepository, null, membershipService)
            {
                ControllerContext = new FakeControllerContext()
            };


            var result = movieController.Index() as ViewResult;

            Assert.IsNotNull(result);
        }
        public void ReturnGenresInViewBag()
        {
            var expectedGenres = new List <string>()
            {
                "Action", "Horror", "Comedy"
            };
            var fakeRepo = new FakeMovieRepository()
            {
                GenreList = expectedGenres
            };
            var controller = new MoviesController(fakeRepo);

            var result = controller.Index("foo", "bar") as ViewResult;

            SelectList genreSelectList = result.ViewBag.movieGenre as SelectList;

            foreach (var genreItem in genreSelectList)
            {
                CollectionAssert.Contains(expectedGenres, genreItem.Text);
            }
            Assert.That(fakeRepo.WasListMoviesCalled);
        }
示例#18
0
        public void Add_WithInvalidModelState_ReturnsView()
        {
            IMembershipService membershipService = new FakeMembershipService(Enumerable.Empty <MembershipUser>());

            var       movies  = new List <Movie>();
            const int movieId = 42;

            movies.Add(new Movie {
                Id = movieId
            });
            IRepository <Movie> movieRepository = new FakeMovieRepository(movies);
            IRepository <Genre> genreRepository = new FakeGenreRepository();
            var movieController = new MovieController(movieRepository, genreRepository, membershipService);


            //setup model error to trigger !IsValid
            movieController.ModelState.AddModelError("key", "errormessage");

            var result = movieController.Add(new EditMovieViewModel()) as ViewResult;

            Assert.IsNotNull(result);
        }
示例#19
0
        public void Add_WithUserNotFound_ReturnsRedirectsToAccountRegister()
        {
            IMembershipService membershipService = new FakeMembershipService(Enumerable.Empty <MembershipUser>());

            var       movies  = new List <Movie>();
            const int movieId = 42;

            movies.Add(new Movie {
                Id = movieId
            });
            IRepository <Movie> movieRepository = new FakeMovieRepository(movies);
            IRepository <Genre> genreRepository = new FakeGenreRepository();
            var movieController = new MovieController(movieRepository, genreRepository, membershipService)
            {
                ControllerContext = new FakeControllerContext()
            };

            var result = (RedirectToRouteResult)movieController.Add(new EditMovieViewModel());

            Assert.IsTrue(string.Compare(result.Action(), "register", true) == 0);
            Assert.IsTrue(string.Compare(result.Controller(), "account", true) == 0);
        }
示例#20
0
        public void Add_WithValidUserAndModel_RedirectsToIndex()
        {
            var  users = new List <MembershipUser>();
            Guid guid  = Guid.NewGuid();

            users.Add(new TestMembershipUser("test", guid));

            IMembershipService membershipService = new FakeMembershipService(users);

            var       movies  = new List <Movie>();
            const int movieId = 42;

            movies.Add(new Movie {
                Id = movieId
            });

            IRepository <Movie> movieRepository = new FakeMovieRepository(movies);
            IRepository <Genre> genreRepository = new FakeGenreRepository();
            var movieController = new MovieController(movieRepository, genreRepository, membershipService)
            {
                ControllerContext = new FakeControllerContext()
            };

            var editMovieViewModel = new EditMovieViewModel
            {
                Id        = movieId,
                Directors = "Directors",
                GenreId   = 1,
                Name      = "Name",
                Rating    = 3,
                Stars     = "Stars",
                Writers   = "Writers"
            };

            var result = (RedirectToRouteResult)movieController.Add(editMovieViewModel);

            Assert.IsTrue(string.Compare(result.Action(), "Index", true) == 0);
        }
示例#21
0
        public void Delete_WithValidMovie_CallsAddOnMovieRepository()
        {
            var  users = new List <MembershipUser>();
            Guid guid  = Guid.NewGuid();

            users.Add(new TestMembershipUser("test", guid));

            IMembershipService membershipService = new FakeMembershipService(users);

            var       movies  = new List <Movie>();
            const int movieId = 42;

            movies.Add(new Movie {
                Id = movieId
            });

            bool   wasCalled      = false;
            Action deleteCallback = () => wasCalled = true;

            IRepository <Movie> movieRepository = new FakeMovieRepository(movies, deleteCallback: deleteCallback);
            IRepository <Genre> genreRepository = new FakeGenreRepository();
            var movieController = new MovieController(movieRepository, genreRepository, membershipService);

            var movie = new Movie
            {
                Id        = movieId,
                Directors = "Directors",
                GenreId   = 1,
                Name      = "Name",
                Rating    = 3,
                Stars     = "Stars",
                Writers   = "Writers"
            };

            movieController.Delete(movie);

            Assert.IsTrue(wasCalled);
        }
 public void SetUp()
 {
     _fakeMovieRepository = new FakeMovieRepository();
     _movieRepository     = new MovieRepository();
 }
示例#23
0
        //
        // GET: /Movie/

        public ActionResult Index()
        {
            var repository = new FakeMovieRepository();

            return(View(repository.GetMovies().OrderBy(m => m.YearReleased)));
        }