package com.jinhe.tss.portal.module; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import com.jinhe.tss.component.support.test.TestUtil; import com.jinhe.tss.core.cachepool.proxy.profier.CGLIBProfiler; import com.jinhe.tss.portal.PortalConstants; import com.jinhe.tss.portal.TxSupportTest4Portal; import com.jinhe.tss.portal.action.NavigatorAction; import com.jinhe.tss.portal.action.PortalAction; import com.jinhe.tss.portal.entity.Navigator; import com.jinhe.tss.portal.entity.PortalStructure; import com.jinhe.tss.portal.helper.PortalStructureWrapper; import com.jinhe.tss.portal.service.INavigatorService; import com.jinhe.tss.portal.service.IPortalService; /** * Menu相关模块的单元测试。 */ public class MenuModuleTest extends TxSupportTest4Portal { PortalAction portalAction; NavigatorAction menuAction; @Autowired IPortalService portalService; @Autowired INavigatorService menuService; public void setUp() throws Exception { super.setUp(); portalAction = (PortalAction) new CGLIBProfiler().getProxy(PortalAction.class); portalAction.setService(portalService); menuAction = (NavigatorAction) new CGLIBProfiler().getProxy(NavigatorAction.class); menuAction.setService(menuService); menuAction.setPortalService(portalService); } public void testMenuModule() { // 新建portal PortalStructureWrapper psw = portalAction.getPs(); psw.setParentId(PortalConstants.ROOT_ID); psw.setType(PortalStructure.TYPE_PORTAL); psw.setName("Jon的门户"); psw.setDescription("测试门户"); psw.setThemeName("默认主题"); portalAction.save(); // create portal root List<?> list = menuService.getAllNavigator(); assertTrue(list.size() == 1); Navigator rootMenu = (Navigator) list.get(0); Long portalId = rootMenu.getPortalId(); Long rootMenuId = rootMenu.getId(); menuAction.setIsNew(PortalConstants.TRUE); menuAction.setType(Navigator.TYPE_MENU); menuAction.setParentId(rootMenuId); menuAction.setPortalId(portalId); menuAction.getNavigatorInfo(); menuAction.setIsNew(PortalConstants.FALSE); menuAction.setId(rootMenuId); menuAction.getNavigatorInfo(); // 创建各种类型的菜单项 Navigator menu1 = menuAction.getNavigator(); menu1.setType(Navigator.TYPE_MENU_ITEM_3); menu1.setName("首页"); menu1.setParentId(rootMenuId); menu1.setPortalId(portalId); menu1.setContentId(66L); menuAction.save(); Navigator menu2 = new Navigator(); menu2.setType(Navigator.TYPE_MENU_ITEM_7); menu2.setName("机构职责"); menu2.setParentId(rootMenuId); menu2.setPortalId(portalId); menu2.setUrl("${common.articleListUrl}&channelId=38"); menuService.saveMenu(menu2); Navigator menu2_1 = new Navigator(); menu2_1.setType(Navigator.TYPE_MENU_ITEM_6); menu2_1.setName("授权管理"); menu2_1.setParentId(menu2.getId()); menu2_1.setPortalId(portalId); menu2_1.setMethodName("jumpTo"); menu2_1.setParams("appCode:\'UMS\',redirect:\'http://${PT_ip}/ums/redirect.html\',url:\'ums/permission.htm\'"); menu2_1.setContentId(16L); menu2_1.setContentName("IFrame"); menuService.saveMenu(menu2_1); Navigator menu2_2 = new Navigator(); menu2_2.setType(Navigator.TYPE_MENU_ITEM_4); menu2_2.setName("Google"); menu2_2.setParentId(menu2.getId()); menu2_2.setPortalId(portalId); menu2.setUrl("www.google.com"); menuService.saveMenu(menu2_2); Navigator menu3 = new Navigator(); menu3.setType(Navigator.TYPE_MENU_ITEM_5); menu3.setName("二级页面"); menu3.setParentId(rootMenuId); menu3.setPortalId(portalId); menu3.setContentId(66L); menu3.setTargetId(88L); menuService.saveMenu(menu3); // 测试停用启用 for(int i = 0; i < 2; i++) { menuAction.setId(rootMenuId); menuAction.setDisabled(PortalConstants.TRUE); menuAction.disable(); menuAction.setDisabled(PortalConstants.FALSE); menuAction.disable(); } // 排序、移动 menuAction.setId(menu2.getId()); menuAction.setTargetId(menu3.getId()); menuAction.setDirection(1); menuAction.sort(); menuAction.setPortalId(portalId); menuAction.setId(menu3.getId()); menuAction.getNavigators4Tree(); // 移动的时候用到 menuAction.setPortalId(portalId); menuAction.setId(menu3.getId()); menuAction.setTargetId(menu1.getId()); menuAction.move(); // 查询 menuAction.getAllNavigator4Tree(); menuAction.setPortalId(portalId); menuAction.getMenus4TreeByPortal(); menuAction.setPortalId(portalId); menuAction.setType(PortalStructure.TYPE_SECTION); menuAction.getPortalStructuresByPortal4Tree(); menuAction.setType(PortalStructure.TYPE_PORTLET_INSTANCE); menuAction.getPortalStructuresByPortal4Tree(); // 生成菜单XML格式 menuAction.setId(rootMenuId); menuAction.getMenuXML(); // 删除 menuAction.setId(rootMenuId); menuAction.delete(); List<?> data = portalService.getActivePortals(); assertEquals(1, data.size()); portalAction.setId(((PortalStructure) data.get(0)).getId()); portalAction.delete(); assertTrue(TestUtil.printLogs(logService) > 0); } }