Skip to content

Commit dfa0d27

Browse files
author
chengliefeng
committed
feature: add TCC three-phase hooks (apache#6731)
1 parent 2280597 commit dfa0d27

File tree

1 file changed

+43
-8
lines changed

1 file changed

+43
-8
lines changed

tcc/src/test/java/org/apache/seata/rm/tcc/TccHookTest.java

Lines changed: 43 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,15 @@
3333
import org.junit.jupiter.api.BeforeEach;
3434
import org.junit.jupiter.api.Test;
3535
import org.mockito.Mockito;
36+
import org.slf4j.Logger;
37+
import org.slf4j.LoggerFactory;
3638

3739

3840
import static org.mockito.Mockito.mock;
3941
import static org.mockito.Mockito.verify;
4042

4143
public class TccHookTest {
42-
private TccHook tccHook;
44+
private MyTccHook tccHook;
4345
private String xid;
4446
private Long branchId;
4547
private String actionName;
@@ -49,7 +51,7 @@ public class TccHookTest {
4951

5052
@BeforeEach
5153
public void setUp() throws NoSuchFieldException, IllegalAccessException, NoSuchMethodException {
52-
tccHook = mock(TccHook.class);
54+
tccHook = Mockito.spy(new MyTccHook());
5355
xid = "test-xid";
5456
branchId = 12345L;
5557
actionName = "testAction";
@@ -97,47 +99,47 @@ public void testBeforeTccPrepare() {
9799
for (TccHook hook : TccHookManager.getHooks()) {
98100
hook.beforeTccPrepare(xid, branchId, actionName, context);
99101
}
100-
verify(tccHook).beforeTccPrepare(xid, branchId, actionName, context);
102+
verify(tccHook).beforeTccPrepare(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any());
101103
}
102104

103105
@Test
104106
public void testAfterTccPrepare() {
105107
for (TccHook hook : TccHookManager.getHooks()) {
106108
hook.afterTccPrepare(xid, branchId, actionName, context);
107109
}
108-
verify(tccHook).afterTccPrepare(xid, branchId, actionName, context);
110+
verify(tccHook).afterTccPrepare(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any());
109111
}
110112

111113
@Test
112114
public void testBeforeTccCommit() {
113115
for (TccHook hook : TccHookManager.getHooks()) {
114116
hook.beforeTccCommit(xid, branchId, actionName, context);
115117
}
116-
verify(tccHook).beforeTccCommit(xid, branchId, actionName, context);
118+
verify(tccHook).beforeTccCommit(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any());
117119
}
118120

119121
@Test
120122
public void testAfterTccCommit() {
121123
for (TccHook hook : TccHookManager.getHooks()) {
122124
hook.afterTccCommit(xid, branchId, actionName, context);
123125
}
124-
verify(tccHook).afterTccCommit(xid, branchId, actionName, context);
126+
verify(tccHook).afterTccCommit(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any());
125127
}
126128

127129
@Test
128130
public void testBeforeTccRollback() {
129131
for (TccHook hook : TccHookManager.getHooks()) {
130132
hook.beforeTccRollback(xid, branchId, actionName, context);
131133
}
132-
verify(tccHook).beforeTccRollback(xid, branchId, actionName, context);
134+
verify(tccHook).beforeTccRollback(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any());
133135
}
134136

135137
@Test
136138
public void testAfterTccRollback() {
137139
for (TccHook hook : TccHookManager.getHooks()) {
138140
hook.afterTccRollback(xid, branchId, actionName, context);
139141
}
140-
verify(tccHook).afterTccRollback(xid, branchId, actionName, context);
142+
verify(tccHook).afterTccRollback(Mockito.any(), Mockito.any(), Mockito.any(), Mockito.any());
141143
}
142144

143145
@Test
@@ -194,4 +196,37 @@ public void commit() {
194196
public void rollback() {
195197
}
196198
}
199+
200+
public class MyTccHook implements TccHook {
201+
private final Logger LOGGER = LoggerFactory.getLogger(MyTccHook.class);
202+
@Override
203+
public void beforeTccPrepare(String xid, Long branchId, String actionName, BusinessActionContext context) {
204+
LOGGER.info("do some business operations before tcc prepare");
205+
}
206+
207+
@Override
208+
public void afterTccPrepare(String xid, Long branchId, String actionName, BusinessActionContext context) {
209+
LOGGER.info("do some business operations after tcc prepare");
210+
}
211+
212+
@Override
213+
public void beforeTccCommit(String xid, Long branchId, String actionName, BusinessActionContext context) {
214+
LOGGER.info("do some business operations before tcc commit");
215+
}
216+
217+
@Override
218+
public void afterTccCommit(String xid, Long branchId, String actionName, BusinessActionContext context) {
219+
LOGGER.info("do some business operations after tcc commit");
220+
}
221+
222+
@Override
223+
public void beforeTccRollback(String xid, Long branchId, String actionName, BusinessActionContext context) {
224+
LOGGER.info("do some business operations before tcc rollback");
225+
}
226+
227+
@Override
228+
public void afterTccRollback(String xid, Long branchId, String actionName, BusinessActionContext context) {
229+
LOGGER.info("do some business operations after tcc rollback");
230+
}
231+
}
197232
}

0 commit comments

Comments
 (0)