public async Task OnGetAsync_PopulatesThePageModel_WithABookmark(int bookmarkId) { // Arrange var optionsBuilder = new DbContextOptionsBuilder <ClippyContext>() .UseInMemoryDatabase("InMemoryDb"); var mockContext = new Mock <ClippyContext>(optionsBuilder.Options); var expectedBookmark = DatabaseInitializer.GetSeedingBookmarks().Single(b => b.Id == bookmarkId); mockContext.Setup( db => db.GetBookmarkAsync(bookmarkId)).Returns(Task.FromResult(expectedBookmark)); var httpContext = new DefaultHttpContext(); var tempData = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>()); var pageModel = new DetailsModel(mockContext.Object) { TempData = tempData }; // Act await pageModel.OnGetAsync(bookmarkId); // Assert var actualBookmark = Assert.IsAssignableFrom <Bookmark>(pageModel.Bookmark); Assert.Equal(expectedBookmark.Id, actualBookmark.Id); }
public async Task OnGetAsync_PopulatesThePageModel_WithAListOfBookmarks() { // Arrange var optionsBuilder = new DbContextOptionsBuilder <ClippyContext>() .UseInMemoryDatabase("InMemoryDb"); var mockContext = new Mock <ClippyContext>(optionsBuilder.Options); var expectedBookmarks = DatabaseInitializer.GetSeedingBookmarks(); mockContext.Setup( db => db.GetBookmarksAsync()).Returns(Task.FromResult(expectedBookmarks)); var pageModel = new IndexModel(mockContext.Object); // Act await pageModel.OnGetAsync(); // Assert var actualBookmarks = Assert.IsAssignableFrom <List <Bookmark> >(pageModel.Bookmarks); Assert.Equal( expectedBookmarks.OrderBy(b => b.Id).Select(b => b.Id), actualBookmarks.OrderBy(b => b.Id).Select(b => b.Id)); }
public async Task OnPostDeleteAsync_ReturnsARedirectToPageResult(int bookmarkId) { // Arrange var optionsBuilder = new DbContextOptionsBuilder <ClippyContext>() .UseInMemoryDatabase("InMemoryDb"); var mockContext = new Mock <ClippyContext>(optionsBuilder.Options); var expectedBookmark = DatabaseInitializer.GetSeedingBookmarks().Single(b => b.Id == bookmarkId); mockContext.Setup( db => db.GetBookmarkAsync(bookmarkId)).Returns(Task.FromResult(expectedBookmark)); var httpContext = new DefaultHttpContext(); var tempData = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>()); var pageModel = new DetailsModel(mockContext.Object) { TempData = tempData }; // Act var result = await pageModel.OnPostDeleteAsync(bookmarkId); // Assert Assert.IsType <RedirectToPageResult>(result); }
public async Task OnPostAsync_ReturnsAPageResult_WhenModelStateIsInvalid() { // Arrange var optionsBuilder = new DbContextOptionsBuilder <ClippyContext>() .UseInMemoryDatabase("InMemoryDb"); var mockContext = new Mock <ClippyContext>(optionsBuilder.Options); var expectedBookmarks = DatabaseInitializer.GetSeedingBookmarks(); mockContext.Setup(db => db.GetBookmarksAsync()).Returns(Task.FromResult(expectedBookmarks)); var httpContext = new DefaultHttpContext(); var modelState = new ModelStateDictionary(); var actionContext = new ActionContext(httpContext, new RouteData(), new PageActionDescriptor(), modelState); var modelMetadataProvider = new EmptyModelMetadataProvider(); var viewData = new ViewDataDictionary(modelMetadataProvider, modelState); var tempData = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>()); var pageContext = new PageContext(actionContext) { ViewData = viewData }; var pageModel = new AddModel(mockContext.Object) { PageContext = pageContext, TempData = tempData, Url = new UrlHelper(actionContext) }; pageModel.ModelState.AddModelError("Location", "Location is required."); // Act var result = await pageModel.OnPostAsync(); // Assert Assert.IsType <PageResult>(result); }