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); }