package org.jfox.jdbc.xa.test;
import java.sql.Connection;
import java.sql.Statement;
import javax.transaction.TransactionManager;
import junit.framework.TestCase;
import org.jfox.jdbc.xa.TxDataSource;
import org.jfox.jdbc.xa.XADataSourceManager;
import org.jfox.tm.TxManager;
public class MysqlTxDataSourceTest extends TestCase {
private TxDataSource txds = null;
protected void setUp() throws Exception {
txds = XADataSourceManager.newDataSource("jdbc:mysql://localhost/test","root","");
txds.setInitNum(10);
txds.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
txds.init();
}
public void testNotTransaction(){
System.out.println("########### testNotTransaction ##########");
try {
Connection conn = txds.getConnection();
conn.setAutoCommit(false);
Statement stm = conn.createStatement();
stm.executeUpdate("insert into user set name=\"yangyong_No_Transaction :)\"");
conn.commit();
txds.destroy();
}
catch(Exception e){
e.printStackTrace();
fail(e.getMessage());
}
}
public void testCommit() {
System.out.println("########### testCommit ##########");
try {
TransactionManager tm = TxManager.getInstance();
tm.begin();
Connection conn = txds.getConnection();
Statement stm = conn.createStatement();
stm.executeUpdate("insert into user set name=\"yangyong :)\"");
tm.commit();
txds.destroy();
}
catch(Exception e){
e.printStackTrace();
fail(e.getMessage());
}
}
public void testRollback() {
System.out.println("########### testRollback ##########");
try {
TransactionManager tm = TxManager.getInstance();
tm.begin();
txds.getConnection();
Connection conn = txds.getConnection();
Statement stm = conn.createStatement();
stm.executeUpdate("insert into user set name=\"yy :)\"");
tm.rollback();
txds.destroy();
}
catch(Exception e){
e.printStackTrace();
fail(e.getMessage());
}
}
public void testSimple(){
try {
txds.destroy();
}
catch(Exception e){
e.printStackTrace();
fail(e.getMessage());
}
}
public static void main(String[] args) {
}
}