1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.spring.submitted.xa;
17
18 import static org.assertj.core.api.Assertions.assertThat;
19
20 import jakarta.transaction.UserTransaction;
21
22 import org.junit.jupiter.api.Disabled;
23 import org.junit.jupiter.api.Test;
24 import org.junit.jupiter.api.extension.ExtendWith;
25 import org.springframework.beans.factory.annotation.Autowired;
26 import org.springframework.test.context.junit.jupiter.SpringExtension;
27 import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
28
29 @Disabled("Yet not found OSS implementation that supported Jakarta EE 9+ APIs")
30 @ExtendWith(SpringExtension.class)
31 @SpringJUnitConfig(locations = "classpath:org/mybatis/spring/submitted/xa/applicationContext.xml")
32 class UserServiceTest {
33
34 @Autowired
35 UserTransaction userTransaction;
36
37 @Autowired
38 private UserService userService;
39
40 @Test
41 void testCommit() {
42 User user = new User(1, "Pocoyo");
43 userService.saveWithNoFailure(user);
44 assertThat(userService.checkUserExists(user.getId())).isTrue();
45 }
46
47 @Test
48 void testRollback() {
49 User user = new User(2, "Pocoyo");
50 try {
51 userService.saveWithFailure(user);
52 } catch (RuntimeException ignore) {
53
54 }
55 assertThat(userService.checkUserExists(user.getId())).isFalse();
56 }
57
58 @Test
59 void testCommitWithExistingTx() throws Exception {
60 userTransaction.begin();
61 User user = new User(3, "Pocoyo");
62 userService.saveWithNoFailure(user);
63 userTransaction.commit();
64 assertThat(userService.checkUserExists(user.getId())).isTrue();
65 }
66
67
68
69
70
71 @Test
72 void testRollbackWithExistingTx() throws Exception {
73 userTransaction.begin();
74 User user = new User(5, "Pocoyo");
75 userService.saveWithNoFailure(user);
76 userTransaction.rollback();
77 assertThat(userService.checkUserExists(user.getId())).isFalse();
78 }
79
80 }