Пример #1
0
        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);
        }
Пример #2
0
        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));
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }