public void MovieStore_EditGET_MovieIsNull()
        {
            //Goal: Query from our own list instead of the database

            //Step 1
            var list = new List <Movie>
            {
                new Movie()
                {
                    MovieId = 1, Title = "Superman"
                },
                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);

            Movie movie = null;

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

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

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

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


            //Assert
            Assert.AreEqual(HttpStatusCode.NotFound, (HttpStatusCode)result.StatusCode);
        }
        public void MovieStore_EditGET_Success()
        {
            //Goal: Query from our own list instead of the database

            //Step 1
            var list = new List <Movie>
            {
                new Movie()
                {
                    MovieId = 1, Title = "Superman"
                },
                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.EditGET(1) as ViewResult;


            //Assert
            Assert.IsNotNull(result);
        }