Exemplo n.º 1
0
        public async Task OnPostDeleteAsync_ReturnsARedirectToPageResult(int userId)
        {
            // Arrange
            var optionsBuilder = new DbContextOptionsBuilder <ClippyContext>()
                                 .UseInMemoryDatabase("InMemoryDb");
            var mockContext  = new Mock <ClippyContext>(optionsBuilder.Options);
            var mockLogger   = new Mock <ILogger <DetailsModel> >();
            var expectedUser = DatabaseInitializer.GetSeedingUsers().Single(u => u.Id == userId);

            mockContext.Setup(
                db => db.GetUserAsync(userId)).Returns(Task.FromResult(expectedUser));
                var httpContext = new DefaultHttpContext();
            var     tempData    = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>());
            var     pageModel   = new DetailsModel(mockContext.Object, mockLogger.Object)
            {
                TempData = tempData    
            };

            pageModel.UnitTesting = true;

            // Act
            var result = await pageModel.OnPostDeleteAsync(userId);

            // Assert
            Assert.IsType <RedirectToPageResult>(result);
        }
Exemplo n.º 2
0
        public async Task OnGetAsync_PopulatesThePageModel_WithAUser(int userId)
        {
            // Arrange
            var optionsBuilder = new DbContextOptionsBuilder <ClippyContext>()
                                 .UseInMemoryDatabase("InMemoryDb");
            var mockContext  = new Mock <ClippyContext>(optionsBuilder.Options);
            var mockLogger   = new Mock <ILogger <DetailsModel> >();
            var expectedUser = DatabaseInitializer.GetSeedingUsers().Single(u => u.Id == userId);

            mockContext.Setup(
                db => db.GetUserAsync(userId)).Returns(Task.FromResult(expectedUser));
                var httpContext = new DefaultHttpContext();
            var     tempData    = new TempDataDictionary(httpContext, Mock.Of <ITempDataProvider>());
            var     pageModel   = new DetailsModel(mockContext.Object, mockLogger.Object)
            {
                TempData = tempData    
            };

            // Act
            await pageModel.OnGetAsync(userId);

            // Assert
            var actualUser = Assert.IsAssignableFrom <User>(pageModel.UserEntity);

            Assert.Equal(expectedUser.Username, actualUser.Username);
        }
Exemplo n.º 3
0
        public async Task OnPostAsync_ReturnsAPageResult_WhenChangedUsernameExists(int existingUserId, string otherUsername)
        {
                // Arrange
                var optionsBuilder = new DbContextOptionsBuilder <ClippyContext>()
                                             .UseInMemoryDatabase("InMemoryDb");
                var mockContext  = new Mock <ClippyContext>(optionsBuilder.Options);
            var     mockLogger   = new Mock <ILogger <EditModel> >();
                var existingUser = DatabaseInitializer.GetSeedingUsers().Single(u => u.Id == existingUserId);
            var     otherUser    = new User {
                Username = otherUsername, Name = existingUser.Username
            };

                mockContext.Setup(db => db.GetUserAsync(existingUser.Id)).Returns(Task.FromResult(existingUser));
                mockContext.Setup(db => db.GetUserByUsernameAsync(otherUsername)).Returns(Task.FromResult(otherUser));
                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 EditModel(mockContext.Object, mockLogger.Object)
                                     {
                        PageContext = pageContext,
                        TempData    = tempData,
                        Url         = new UrlHelper(actionContext),
                UserEntity          = new EditUserModel {
                    Username = otherUsername, Name = existingUser.Name
                }
                    
            };

                // Act
                var result = await pageModel.OnPostAsync(existingUserId);

                // Assert
                Assert.IsType <PageResult>(result);
        }
Exemplo n.º 4
0
        public async Task OnGetAsync_PopulatesThePageModel_WithAUser(int userId)
        {
            // Arrange
            var optionsBuilder = new DbContextOptionsBuilder <ClippyContext>()
                                 .UseInMemoryDatabase("InMemoryDb");
            var mockContext  = new Mock <ClippyContext>(optionsBuilder.Options);
            var mockLogger   = new Mock <ILogger <EditModel> >();
            var expectedUser = DatabaseInitializer.GetSeedingUsers().Single(u => u.Id == userId);

            expectedUser.Roles = new List <Role>();
            mockContext.Setup(
                db => db.GetUserAsync(userId)).Returns(Task.FromResult(expectedUser));
            var pageModel = new EditModel(mockContext.Object, mockLogger.Object);

            // Act
            await pageModel.OnGetAsync(userId);

            // Assert
            var actualUser = Assert.IsAssignableFrom <EditUserModel>(pageModel.UserEntity);

            Assert.Equal(expectedUser.Username, actualUser.Username);
        }
Exemplo n.º 5
0
        public async Task OnPostAsync_ReturnsAPageResult_WhenModelStateIsInvalid()
        {
                // Arrange
                var optionsBuilder = new DbContextOptionsBuilder <ClippyContext>()
                                             .UseInMemoryDatabase("InMemoryDb");
                var mockContext   = new Mock <ClippyContext>(optionsBuilder.Options);
            var     mockLogger    = new Mock <ILogger <AddModel> >();
                var expectedUsers = DatabaseInitializer.GetSeedingUsers();

                mockContext.Setup(db => db.GetUsersAsync()).Returns(Task.FromResult(expectedUsers));
            // mockLogger.Setup(l => l.LogWarning(AdminLoggingEvents.AddUserEvent, ))
                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, mockLogger.Object)
                                     {
                        PageContext = pageContext,
                        TempData    = tempData,
                        Url         = new UrlHelper(actionContext)
                                          
            };

                pageModel.ModelState.AddModelError("Username", "Username is required.");

                // Act
                var result = await pageModel.OnPostAsync();

                // Assert
                Assert.IsType <PageResult>(result);
        }