Skip to content

Commit 251b6a2

Browse files
author
taochen
committed
add transaction commit fail test
1 parent 3cc62f1 commit 251b6a2

File tree

4 files changed

+48
-2
lines changed

4 files changed

+48
-2
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.ctrip.platform.dal.dao.client.DatabaseCategory;
1+
package com.ctrip.platform.dal.dao.client;
22

33
import java.sql.*;
44
import java.util.Map;
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.ctrip.platform.dal.dao.client;
2+
3+
import com.ctrip.platform.dal.dao.DalEventEnum;
4+
import com.ctrip.platform.dal.dao.DalHints;
5+
import com.ctrip.platform.dal.dao.configure.DalConfigure;
6+
7+
import java.sql.SQLException;
8+
9+
/**
10+
* Created by taochen on 2019/10/23.
11+
*/
12+
public class CustomDalConnectionManager extends DalConnectionManager {
13+
public CustomDalConnectionManager(String logicDbName, DalConfigure config) {
14+
super(logicDbName, config);
15+
}
16+
17+
@Override
18+
public DalConnection getNewConnection(DalHints hints, boolean useMaster, DalEventEnum operation)
19+
throws SQLException {
20+
return new DalConnection(new CustomConnection(), true, null, super.getNewConnection(hints, useMaster, operation).getMeta());
21+
}
22+
}

dal-client/src/test/java/com/ctrip/platform/dal/dao/client/DalTransactionManagerTest.java

+25
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.ctrip.platform.dal.dao.client;
22

33
import com.ctrip.platform.dal.dao.*;
4+
import com.ctrip.platform.dal.exceptions.TransactionSystemException;
45
import org.junit.Assert;
56
import org.junit.Test;
67

@@ -24,6 +25,10 @@ public class DalTransactionManagerTest {
2425
private static DalConnectionManager getDalConnectionManager() throws Exception {
2526
return new DalConnectionManager(logicDbName, DalClientFactory.getDalConfigure());
2627
}
28+
29+
private static CustomDalConnectionManager getCustomDalConnectionManager() throws Exception {
30+
return new CustomDalConnectionManager(logicDbName, DalClientFactory.getDalConfigure());
31+
}
2732

2833
@Test
2934
public void testDalTransactionManager() {
@@ -184,6 +189,26 @@ public Object execute() throws Exception {
184189
}
185190
}
186191

192+
@Test
193+
public void testDoInTransactionCommitFail() {
194+
final DalHints hints = new DalHints();
195+
try {
196+
final DalTransactionManager test = new DalTransactionManager(getCustomDalConnectionManager());
197+
ConnectionAction<?> action = new ConnectionAction<Object>() {
198+
public Object execute(){
199+
return new Object();
200+
}
201+
};
202+
test.doInTransaction(action, hints);
203+
fail();
204+
} catch (Exception e) {
205+
e.printStackTrace();
206+
if (!(e instanceof TransactionSystemException)) {
207+
fail();
208+
}
209+
}
210+
}
211+
187212
@Test
188213
public void testRegister() {
189214
final DalHints hints = new DalHints();

dal-client/src/test/java/com/ctrip/platform/dal/dao/client/DalTransactionTest.java

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.ctrip.platform.dal.dao.client;
22

33
import com.ctrip.platform.dal.dao.DalClientFactory;
4-
import com.ctrip.platform.dal.dao.client.DatabaseCategory.CustomConnection;
54
import com.ctrip.platform.dal.exceptions.TransactionSystemException;
65
import org.junit.*;
76
import com.ctrip.platform.dal.dao.task.SqlServerTestInitializer;

0 commit comments

Comments
 (0)