/**
*Created: 2005-3-31 9:30:42
* Last Modified: 2005-3-31/2005-3-31
* Description:
* class AbstractTest.java
*/
package com.trs;
import java.io.File;
import java.util.ArrayList;
import java.util.Properties;
import junit.framework.TestCase;
import org.apache.log4j.Logger;
import com.trs.cms.ContextHelper;
import com.trs.cms.auth.persistent.Group;
import com.trs.cms.auth.persistent.Groups;
import com.trs.cms.auth.persistent.User;
import com.trs.components.wcm.content.persistent.Channel;
import com.trs.components.wcm.content.persistent.WebSite;
import com.trs.infra.ServerControl;
import com.trs.infra.common.WCMException;
import com.trs.infra.config.domain.ConfigHelper;
import com.trs.infra.util.CMyFile;
import com.trs.infra.util.WCMDiscoveryFactory;
import com.trs.infra.util.store.FileService;
import com.trs.infra.util.store.FileStore;
/**
* Title: TRS 内容协作平台(TRS WCM)
* Description:
* 测试用例的父类
* Copyright: Copyright (c) 2004-2005 TRS信息技术有限公司
* Company: TRS信息技术有限公司(www.trs.com.cn)
*
* @author TRS信息技术有限公司
* @version 1.0
*/
public class TRSWCMBaseTest extends TestCase {
private Logger s_logger = Logger.getLogger(TRSWCMBaseTest.class);
protected User m_oLoginUser = null;
protected String m_sCurrUserName = "admin";
public TRSWCMBaseTest(String _sName) {
super(_sName);
}
public TRSWCMBaseTest() {
super();
}
private static String getWCMLibs() {
Properties sysProperties = System.getProperties();
String[] pClassPaths = sysProperties.getProperty("java.class.path")
.split(";");
for (int i = 0; i < pClassPaths.length; i++) {
String sClassPath = pClassPaths[i];
File file = new File(sClassPath);
if (file.isFile() && (sClassPath.indexOf("trswcmv6.jar") >= 0)) {
return CMyFile.extractFilePath(file.getAbsolutePath());
}
}
return null;
}
/*
* (non-Javadoc)
*
* @see junit.framework.TestCase#setUp()
*/
protected void setUp() throws Exception {
super.setUp();
// 设置当前在Eclipse中运行
ConfigHelper.RUN_IN_ECLISPE = true;
ArrayList arClassPaths = ConfigHelper.getClassPaths();
// File[] pClassesDirs = TestHelper.getClassFilePaths();
FileStore[] pClassesDirs = new FileService[arClassPaths.size()];
for (int i = 0; i < pClassesDirs.length; i++) {
pClassesDirs[i] = new FileService((String) arClassPaths.get(i));
}
FileService fileWCMLib = new FileService("./libs/WCM/");
String sExtLibPath = getWCMLibs();
System.out.println("sExtLibPath:" + sExtLibPath);
if (sExtLibPath != null) {
fileWCMLib = new FileService(sExtLibPath);
}
// System.out.println("the lib paht exists:" + fileWCMLib.exists());
FileService[] pLibDirs = { fileWCMLib };
WCMDiscoveryFactory.initDiscovery(pLibDirs, pClassesDirs);
ServerControl control = ServerControl.createInstance();
control.startup();
// wenyh@2005-7-7 10:41:41 add comment:modify:for ant test...
m_oLoginUser = User.findByName(m_sCurrUserName);
ContextHelper.initContext(m_oLoginUser);
}
/*
* (non-Javadoc)
*
* @see junit.framework.TestCase#tearDown()
*/
protected void tearDown() throws Exception {
super.tearDown();
ServerControl control = ServerControl.createInstance();
control.shutdown();
}
protected void descTest(String _sTestDesc) {
this.setName(_sTestDesc);
s_logger.info(_sTestDesc);
}
protected Channel getChannelById(int _nChannelId) {
Channel aChannel = null;
try {
aChannel = Channel.findById(_nChannelId);
} catch (Exception ex) {
s_logger.error("测试[getChannelById]出现异常!", ex);
fail("测试[getChannelById]出现异常!");
}
if (aChannel == null) {
s_logger.error("[getChannelById]所需的测试数据不正确!ChannelId:["
+ _nChannelId + "]");
fail("[getChannelById]所需的测试数据不正确!ChannelId:[" + _nChannelId + "]");
}
return aChannel;
}
/**
* @param _nSiteId
* @return
* @throws WCMException
*/
protected WebSite findSiteById(int _nSiteId) throws WCMException {
WebSite currSite = WebSite.findById(_nSiteId);
if (currSite == null)
fail("指定的Site[" + currSite + "]不存在!");
return currSite;
}
/**
* @param _nUserId
* @return
* @throws WCMException
*/
protected User findUserById(int _nUserId) throws WCMException {
User currUser = User.findById(_nUserId);
if (currUser == null)
fail("指定的User[" + _nUserId + "]不存在!");
return currUser;
}
protected Group findGroup(User _user) throws WCMException {
Groups groups = _user.getGroups();
Group group = null;
for (int i = 0, nSize = groups.size(); i < nSize; i++) {
group = (Group) groups.getAt(i);
if (group == null)
continue;
break;
}
if (group == null) {
fail("用户[" + _user.getId() + "]没有所属组织!");
}
return group;
}
}