⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 transactiondaotest.java

📁 精通EJB3源码
💻 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 + -