コード例 #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 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);
        }
コード例 #3
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);
        }
コード例 #4
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);
        }
コード例 #5
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);
        }
コード例 #6
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);
        }
コード例 #7
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);
        }
コード例 #8
0
        public void Index_WithNullUser_RedirectsToAccountRegister()
        {
            IMembershipService membershipService = new FakeMembershipService(Enumerable.Empty <MembershipUser>());

            var movieController = new MovieController(null, null, membershipService)
            {
                ControllerContext = new FakeControllerContext()
            };


            var result = (RedirectToRouteResult)movieController.Index();


            Assert.IsTrue(string.Compare(result.Action(), "register", true) == 0);
            Assert.IsTrue(string.Compare(result.Controller(), "account", true) == 0);
        }
コード例 #9
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);
        }
コード例 #10
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);
        }
コード例 #11
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);
        }
コード例 #12
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);
        }
コード例 #13
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);
        }
コード例 #14
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);
        }
コード例 #15
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);
        }