Example #1
0
        public async Task OnPostAsync_ReturnsAPageResult_WhenResourceLocationExists(int id, string existingLocation)
        {
                // Arrange
                var optionsBuilder = new DbContextOptionsBuilder <ClippyContext>()
                                             .UseInMemoryDatabase("InMemoryDb");
                var mockContext      = new Mock <ClippyContext>(optionsBuilder.Options);
                var idResource       = DatabaseInitializer.GetSeedingResources().Single(r => r.Id == id);
            var     locationResource = DatabaseInitializer.GetSeedingResources().Single(r => r.Location == existingLocation);

                mockContext.Setup(db => db.GetResourceAsync(id)).Returns(Task.FromResult(idResource));
            mockContext.Setup(db => db.GetResourceByLocationAsync(existingLocation)).Returns(Task.FromResult(locationResource));
                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)
                                     {
                        PageContext = pageContext,
                        TempData    = tempData,
                        Url         = new UrlHelper(actionContext),
                Resource            = new EditResourceModel {
                    Title = "1234567890", Location = existingLocation
                }
                    
            };

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

                // Assert
                Assert.IsType <PageResult>(result);
        }
Example #2
0
        public async Task OnPostAsync_ReturnsAPageResult_WhenModelStateIsInvalid(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);

                mockContext.Setup(db => db.GetUserAsync(userId)).Returns(Task.FromResult(expectedUser));
                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)
                                          
            };

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

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

                // Assert
                Assert.IsType <PageResult>(result);
        }
Example #3
0
        public async Task OnPostEditLoanApplicationAsync_ReturnsARedirectToPageResult_WhenModelStateIsInValid()
        {
            // Arrange
            var authorizationService = new Mock <IAuthorizationService>();

            authorizationService.Setup(x => x.AuthorizeAsync(It.IsAny <ClaimsPrincipal>(), It.IsAny <object>(), It.IsAny <IEnumerable <IAuthorizationRequirement> >()))
            .ReturnsAsync(AuthorizationResult.Success());

            var store = new Mock <IUserStore <IdentityUser> >();
            var mgr   = new Mock <UserManager <IdentityUser> >(store.Object, null, null, null, null, null, null, null, null);

            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 loanId    = 1;
            var pageModel = new EditModel(AppDbContext, authorizationService.Object, mgr.Object)
            {
                PageContext = pageContext,
                TempData    = tempData,
                Url         = new UrlHelper(actionContext),
            };

            pageModel.ModelState.AddModelError("LoanApplication.Purpose", "Loan purpose is required.");
            // Act
            // A new ModelStateDictionary is valid by default.
            var result = await pageModel.OnPostAsync(loanId);

            // Assert
            Assert.IsType <PageResult>(result);
        }
Example #4
0
        public async Task OnPostAsync_EditAnAssignment_ShouldUpdateCoverageTypesAndApplicationModesToAllNotChecked()
        {
            // Arrange
            var pageModel = new EditModel(MockAppDbContext.Object)
            {
                Assignment = ApplicationDbContext.GetSeedingAssignments().First(x => x.Id == 1),
            };

            pageModel.ApplicationModes = await pageModel.GetApplicationModes(1);

            pageModel.CoverageTypeOptions = await pageModel.GetCoverageTypeOptions(1);

            pageModel.ApplicationModes.ToList().ForEach(mode => mode.IsChecked    = false);
            pageModel.CoverageTypeOptions.ToList().ForEach(type => type.IsChecked = false);

            // Act
            await pageModel.OnPostAsync(1);

            // Assert
            var updatedAssignment = await MockAppDbContext.Object.GetAssignmentById(1);

            updatedAssignment.AssignmentApplicationModes.ToList().ForEach(mode => Assert.False(mode.IsChecked));
            updatedAssignment.AssignmentCoverageTypeOptions.ToList().ForEach(type => Assert.False(type.IsChecked));
        }