public void UpdateModulePermissionSuccess()
        {
            //Arrange
            var pageRepository = new PageRepository(_container);
            var dbContext      = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var pageModule     = TestDataRepository.GetPageModules().First();

            pageRepository.CreatePageModule(pageModule);
            var modulePermissions = TestDataRepository.GetModulePermissions();

            foreach (var mp in modulePermissions)
            {
                mp.PageModuleId = pageModule.Id;
            }

            pageModule.InheritEditPermissions = pageModule.InheritViewPermissions = true;
            pageModule.ModulePermissions      = modulePermissions;

            //Act
            pageRepository.UpdateModulePermission(pageModule);
            var result = pageRepository.GetPageModule(pageModule.Id);


            //Assert
            Assert.NotNull(result);
            Assert.True(result.ModulePermissions.Count > 1);
            Assert.True(result.InheritViewPermissions);
            Assert.True(result.InheritEditPermissions);

            //Clean
            dbContext.ModulePermission.RemoveRange(dbContext.ModulePermission);
        }
        public void UpdatePageModulesSuccess()
        {
            //Arrange
            var pageRepository = new PageRepository(_container);
            var dbContext      = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var pageModules    = TestDataRepository.GetPageModules();

            foreach (var pageModule in pageModules)
            {
                pageModule.ModulePermissions = null;
                pageRepository.CreatePageModule(pageModule);
            }

            var pageModuleToUpdate = pageModules.First();

            pageModuleToUpdate.SortOrder = 10;
            var pageModulesToUpdate = new List <PageModule>
            {
                pageModuleToUpdate
            };

            //Act
            pageRepository.UpdatePageModules(pageModulesToUpdate);
            var result = pageRepository.GetPageModule(pageModuleToUpdate.Id);

            //Assert
            Assert.NotNull(result);
            Assert.True(result.SortOrder == pageModuleToUpdate.SortOrder);

            //Clean
            dbContext.PageModule.RemoveRange(dbContext.PageModule);
        }
        public void CreatePageModuleSuccess()
        {
            //Arrange
            var pageRepository = new PageRepository(_container);
            var dbContext      = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var pageModules    = TestDataRepository.GetPageModules();
            var pageModule     = pageModules.First();

            //Act
            var result           = pageRepository.CreatePageModule(pageModule);
            var resultPermission = result.ModulePermissions.First();

            //Assert
            Assert.NotNull(result);
            Assert.NotNull(result.ModuleAction);
            Assert.NotNull(result.ModulePermissions);
            Assert.True(result.ModulePermissions.Count > 0);
            Assert.NotNull(resultPermission);
            Assert.True(resultPermission.Id != Guid.Empty);
            Assert.True(resultPermission.PermissionId != Guid.Empty);
            Assert.True(resultPermission.RoleId != Guid.Empty);

            //Clean
            dbContext.PageModule.RemoveRange(dbContext.PageModule);
        }
示例#4
0
        //[Fact]
        //public void GetModuleEditResultSuccess()
        //{
        //    //Arrange
        //    //var actionContextMock = new Mock<ActionContext>();
        //    var scopeServiceMock = new Mock<IScopeService>();
        //    var pageManager = new PageManager(_container);
        //    var moduleRepository = new ModuleRepository(_container);
        //    var dbContext = _serviceProvider.GetRequiredService<DeviserDbContext>();
        //    var pageId = SetupPageAndModules();
        //    var currentPage = pageManager.GetPageAndDependencies(pageId);
        //    scopeServiceMock.Setup(s => s.PageContext.CurrentPage).Returns(currentPage);


        //    var httpContext = CreateHttpContext("GET");

        //    var router = new Mock<IRouter>(MockBehavior.Strict).Object;
        //    var actionContext = new ActionContext();
        //    actionContext.HttpContext = httpContext;
        //    actionContext.RouteData = new RouteData();
        //    actionContext.RouteData.Routers.Add(router);

        //    //actionContextMock.Setup(ac => ac.RouteData).Returns(new RouteData());
        //    //actionContextMock.Setup(ac => ac.RouteData.Routers).Returns(new List<IRouter>());
        //    var deviserControllerFactory = new DeviserControllerFactory(_container, scopeServiceMock.Object);
        //    var modules = moduleRepository.Get();
        //    var editModule = modules.First(m => m.ModuleAction.Any(ma => ma.ControllerName == "Edit"));
        //    var editModuleAction =
        //        editModule.ModuleAction.First(
        //            ma => ma.ModuleActionTypeId == Guid.Parse("192278B6-7BF2-40C2-A776-B9CA5FB04FBB"));
        //    var pageModule = currentPage.PageModule.First(pm => pm.ModuleId == editModule.Id);

        //    //Act
        //    var result = deviserControllerFactory.GetModuleEditResultAsString(actionContext, pageModule, editModuleAction.Id).Result;

        //    //Assert
        //    Assert.NotNull(result);
        //    Assert.True(!string.IsNullOrEmpty(result));
        //    Assert.True(!result.Contains("Module load exception"));

        //    //Clean
        //    dbContext.PageModule.RemoveRange(dbContext.PageModule);
        //    dbContext.Module.RemoveRange(dbContext.Module);
        //    dbContext.Page.RemoveRange(dbContext.Page);
        //}

        //[Fact]
        //public void GetModuleEditResultFail()
        //{
        //    //Arrange
        //    var actionContextMock = new Mock<ActionContext>();
        //    var scopeServiceMock = new Mock<IScopeService>();
        //    var pageManager = new PageManager(_container);
        //    var dbContext = _serviceProvider.GetRequiredService<DeviserDbContext>();
        //    var pageId = SetupPageAndModules();
        //    dbContext.PageModule.RemoveRange(dbContext.PageModule);
        //    dbContext.SaveChanges();
        //    var currentPage = pageManager.GetPageAndDependencies(pageId);
        //    scopeServiceMock.Setup(s => s.PageContext.CurrentPage).Returns(currentPage);
        //    actionContextMock.Setup(ac => ac.RouteData.Routers).Returns(new List<IRouter>());
        //    var deviserControllerFactory = new DeviserControllerFactory(_container, scopeServiceMock.Object);

        //    //Act
        //    var result = deviserControllerFactory.GetModuleEditResultAsString(actionContextMock.Object, new PageModule(), Guid.NewGuid()).Result;

        //    //Assert
        //    Assert.NotNull(result);
        //    Assert.True(!string.IsNullOrEmpty(result));
        //    Assert.True(result.Contains("Module load exception"));

        //    //Clean
        //    dbContext.PageModule.RemoveRange(dbContext.PageModule);
        //    dbContext.Module.RemoveRange(dbContext.Module);
        //    dbContext.Page.RemoveRange(dbContext.Page);
        //}

        private Guid SetupPageAndModules()
        {
            //Arrange
            var pageRepository   = new PageRepository(_container);
            var moduleRepository = new ModuleRepository(_container);

            var pages = TestDataRepository.GetPages();
            var page  = pages.First();

            //Create a page
            pageRepository.CreatePage(page);

            //Create modules
            var modules = TestDataRepository.GetModules();

            foreach (var module in modules)
            {
                moduleRepository.Create(module);

                if (module != null && module.ModuleAction != null)
                {
                    foreach (var moduleAction in module.ModuleAction)
                    {
                        //Create page modules
                        var pageModule = new PageModule()
                        {
                            Id                     = Guid.NewGuid(),
                            PageId                 = page.Id,
                            ContainerId            = Guid.NewGuid(),
                            InheritViewPermissions = true,
                            InheritEditPermissions = true,
                            ModuleId               = module.Id,
                            ModuleAction           = moduleAction,
                            ModulePermissions      = new List <ModulePermission>()
                            {
                                new ModulePermission
                                {
                                    Id           = Guid.NewGuid(),
                                    PageModuleId = Guid.NewGuid(),
                                    PermissionId = Guid.NewGuid(),
                                    RoleId       = Guid.NewGuid(),
                                }
                            },
                            IsDeleted = false
                        };
                        pageRepository.CreatePageModule(pageModule);
                    }
                }
            }

            return(page.Id);
        }
        public void UpdatePageModuleFail()
        {
            //Arrange
            var pageRepository = new PageRepository(_container);
            var dbContext      = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var pageModules    = TestDataRepository.GetPageModules();
            var pageModule     = pageModules.First();

            //Act
            var result = pageRepository.CreatePageModule(null);

            //Assert
            Assert.Null(result);

            //Clean
            dbContext.PageModule.RemoveRange(dbContext.PageModule);
        }
        public void GetPageModuleFail()
        {
            //Arrange
            var pageRepository = new PageRepository(_container);
            var dbContext      = _serviceProvider.GetRequiredService <DeviserDbContext>();
            var pageModules    = TestDataRepository.GetPageModules();

            foreach (var pageModule in pageModules)
            {
                pageRepository.CreatePageModule(pageModule);
            }
            var pageId = Guid.NewGuid();

            //Act
            var result = pageRepository.GetPageModule(pageId);

            //Assert
            Assert.Null(result);

            //Clean
            dbContext.PageModule.RemoveRange(dbContext.PageModule);
        }