📄 transactiondaotest.java
字号:
package junit.test;
import java.util.Properties;
import javax.naming.Context;
import javax.naming.InitialContext;
import org.junit.BeforeClass;
import org.junit.Test;
import com.foshanshop.ejb3.AppException;
import com.foshanshop.ejb3.TransactionDAO;
import com.foshanshop.ejb3.bean.Product;
public class TransactionDAOTest {
private static TransactionDAO dao;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
try {
Properties props = new Properties();
props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
props.setProperty(Context.PROVIDER_URL, "localhost:1099");
props.setProperty(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
InitialContext ctx = new InitialContext(props);
dao = (TransactionDAO) ctx.lookup("TransactionDAOBean/remote");
} catch (RuntimeException e) {
e.printStackTrace();
}
}
/**
* 测试系统异常
*/
@Test
public void systemException() {
dao.systemException();
}
/**
* 测试产生应用异常
*/
@Test
public void AppException() {
try {
dao.AppException();
} catch (AppException e) {
e.printStackTrace();
}
}
/**
* 测试手工设置回滚
*/
@Test
public void setRollback(){
dao.setRollback();
}
/**
* 测试一个事务属性为REQUIRED的方法在一个事务范围外执行
*/
@Test
public void requried_notInTransaction(){
dao.requried_notInTransaction();
}
/**
* 测试一个事务属性为REQUIRED的方法在一个事务范围内执行
*/
@Test
public void requried_inTransaction(){
dao.requried_inTransaction();
}
/**
* 测试一个事务属性为NOT_SUPPORTED的方法在一个事务范围内执行
*/
@Test
public void notSupported_runInTransaction(){
System.out.println(
dao.notSupported_runInTransaction(
new Product("notSupported_runInTransaction", (float)373)));
}
/**
* 测试一个事务属性为MANDATORY的方法在一个事务范围内执行
*/
@Test
public void mandatory_inTransaction(){
dao.mandatory_inTransaction();
}
/**
* 测试一个事务属性为MANDATORY的方法在一个事务范围外执行
* 该方法会抛出EJBTransactionRequiredException例外
*/
@Test
public void mandatory_notInTransaction(){
dao.mandatory_notInTransaction();
}
/**
* 测试一个事务属性为REQUIRES_NEW的方法在一个事务范围内执行
*/
@Test
public void requirednew_inTransaction(){
dao.requirednew_inTransaction();
}
/**
* 测试一个事务属性为REQUIRES_NEW的方法在一个事务范围外执行
*/
@Test
public void requirednew_notInTransaction(){
dao.requirednew_notInTransaction();
}
/**
* 测试一个事务属性为SUPPORTS的方法在一个事务范围内执行
*/
@Test
public void support_inTransaction(){
System.out.println(dao.support_inTransaction());
}
/**
* 测试一个事务属性为SUPPORTS的方法在一个事务范围外执行
*/
@Test
public void support_notInTransaction(){
System.out.println(dao.support_notInTransaction());
}
/**
* 测试一个事务属性为NEVER的方法在一个事务范围内执行
* 该方法会抛出javax.ejb.EJBException
*/
@Test
public void never_inTransaction(){
System.out.println(dao.never_inTransaction(1));
}
/**
* 测试一个事务属性为NEVER的方法在一个事务范围外执行
*/
@Test
public void never_notInTransaction(){
System.out.println(dao.never_notInTransaction(1));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -