using Bootstrap.Security; using Longbow.Web; using System.Linq; using Xunit; namespace Bootstrap.DataAccess { [Collection("SQLServerContext")] [AutoRollback] public class SystemModeTest { private void SetSystemMode() { var dict = DictHelper.RetrieveDicts().FirstOrDefault(d => d.Category == "系统设置" && d.Name == "演示系统"); dict.Code = "1"; DictHelper.Save(dict); } [Fact] public void DictDelete_Ok() { SetSystemMode(); var ids = DictHelper.RetrieveDicts().Where(d => d.Define == 0); Assert.True(DictHelper.Delete(ids.Select(d => d.Id))); Assert.Equal(ids.Count(), DictHelper.RetrieveDicts().Count(d => d.Define == 0)); } [Fact] public void MenuSave_Ok() { SetSystemMode(); var menu = MenuHelper.RetrieveMenus("Admin").FirstOrDefault(m => m.Category == "0"); var name = menu.Name; menu.Name = "UnitTest"; Assert.True(MenuHelper.Save(menu)); var menu2 = MenuHelper.RetrieveMenus("Admin").FirstOrDefault(m => m.Id == menu.Id); Assert.Equal(name, menu2.Name); } [Fact] public void MenuDelete_Ok() { SetSystemMode(); var menu = MenuHelper.RetrieveMenus("Admin").FirstOrDefault(m => m.Category == "0"); Assert.True(MenuHelper.Delete(new string[] { menu.Id })); var menu2 = MenuHelper.RetrieveMenus("Admin").FirstOrDefault(m => m.Id == menu.Id); Assert.NotNull(menu2); // 保护模式下,正常菜单可以删除 var poco = new BootstrapMenu() { Name = "UnitTest", Application = "3", Category = "1", Icon = "fa fa-fa", IsResource = 0, Target = "_blank", Order = 10, Url = "#", ParentId = "0", ParentName = "Test", }; // insert Assert.True(MenuHelper.Save(poco)); // update poco = MenuHelper.RetrieveAllMenus("Admin").Where(m => m.Id == poco.Id).FirstOrDefault(); Assert.True(MenuHelper.Save(poco)); // clean MenuHelper.Delete(new string[] { poco.Id }); } [Fact] public void UserSave_Ok() { SetSystemMode(); var user = UserHelper.Retrieves().FirstOrDefault(m => m.UserName == "User"); user.DisplayName = "UnitTest"; Assert.True(UserHelper.Save(user)); var user2 = UserHelper.Retrieves().FirstOrDefault(m => m.Id == user.Id); Assert.NotEqual("UnitTest", user2.DisplayName); } [Fact] public void UserUpdate_Ok() { SetSystemMode(); var user = UserHelper.Retrieves().FirstOrDefault(m => m.UserName == "User"); user.DisplayName = "UnitTest"; Assert.True(UserHelper.Update(user.Id, "123789", "UnitTest")); var user2 = UserHelper.Retrieves().FirstOrDefault(m => m.Id == user.Id); Assert.NotEqual("UnitTest", user2.DisplayName); } [Fact] public void UserChangePassword_Ok() { SetSystemMode(); Assert.True(UserHelper.ChangePassword("User", "123789", "123789")); } [Fact] public void ConfigIPLocator_Ok() { var op = new IPLocatorOption() { IP = "182.148.123.196" }; var dict = DictHelper.RetrieveDicts().FirstOrDefault(d => d.Category == "系统设置" && d.Name == "IP地理位置接口" && d.Define == 0); Assert.NotNull(dict); dict.Code = "JuheIPSvr"; DictHelper.Save(dict); DictHelper.ConfigIPLocator(op); Assert.NotNull(op.Url); } } }