22
33
44import com .codingapi .dbstream .DBStreamContext ;
5+ import com .codingapi .dbstream .event .DBEvent ;
6+ import com .codingapi .dbstream .event .DBEventPusher ;
7+ import com .codingapi .dbstream .query .JdbcQuery ;
58import com .example .dbstream .entity .User1 ;
69import com .example .dbstream .listener .MySQLListener ;
710import com .example .dbstream .repository .User1Repository ;
1316import javax .persistence .EntityManager ;
1417import javax .transaction .Transactional ;
1518import java .util .List ;
19+ import java .util .concurrent .atomic .AtomicBoolean ;
1620
17- import static org .junit .jupiter .api .Assertions .assertThrows ;
21+ import static org .junit .jupiter .api .Assertions .* ;
1822
1923
2024@ SpringBootTest
@@ -33,9 +37,19 @@ class User1RepositoryTest {
3337 @ Transactional
3438 @ Rollback (false )
3539 void test1 () {
40+
3641 DBStreamContext .getInstance ().addListener (new MySQLListener ());
3742
38- userRepository .deleteAll ();
43+ DBStreamContext .getInstance ().cleanEventPushers ();
44+ DBStreamContext .getInstance ().addEventPusher (new DBEventPusher () {
45+ @ Override
46+ public void push (JdbcQuery jdbcQuery , List <DBEvent > events ) {
47+ assertTrue (events .size ()>=4 );
48+ for (DBEvent event :events ){
49+ assertTrue (event .hasPrimaryKeys ());
50+ }
51+ }
52+ });
3953 User1 user = new User1 ();
4054 user .setUsername ("admin" );
4155 user .setPassword ("admin" );
@@ -59,7 +73,6 @@ void test1() {
5973 int deleteRows = userRepository .deleteByUsername ("admin" );
6074 System .out .println ("deleteRows:" + deleteRows );
6175
62- userRepository .deleteAll ();
6376 }
6477
6578 /**
@@ -69,6 +82,18 @@ void test1() {
6982 @ Transactional
7083 @ Rollback (false )
7184 void test2 () {
85+ DBStreamContext .getInstance ().cleanEventPushers ();
86+
87+ DBStreamContext .getInstance ().addEventPusher (new DBEventPusher () {
88+ @ Override
89+ public void push (JdbcQuery jdbcQuery , List <DBEvent > events ) {
90+ assertEquals (1 , events .size ());
91+ for (DBEvent event :events ){
92+ assertTrue (event .hasPrimaryKeys ());
93+ assertTrue (event .isInsert ());
94+ }
95+ }
96+ });
7297 User1 user = new User1 ();
7398 user .setUsername ("admin" );
7499 user .setPassword ("admin" );
@@ -86,6 +111,16 @@ void test2() {
86111 @ Transactional
87112 @ Rollback (false )
88113 void test3 () {
114+ DBStreamContext .getInstance ().cleanEventPushers ();
115+ DBStreamContext .getInstance ().addEventPusher (new DBEventPusher () {
116+ @ Override
117+ public void push (JdbcQuery jdbcQuery , List <DBEvent > events ) {
118+ for (DBEvent event :events ){
119+ assertTrue (event .hasPrimaryKeys ());
120+ assertTrue (event .isUpdate ());
121+ }
122+ }
123+ });
89124 userRepository .resetPassword ("123456" );
90125 }
91126
@@ -96,6 +131,16 @@ void test3() {
96131 @ Transactional
97132 @ Rollback (false )
98133 void test4 () {
134+ DBStreamContext .getInstance ().cleanEventPushers ();
135+ DBStreamContext .getInstance ().addEventPusher (new DBEventPusher () {
136+ @ Override
137+ public void push (JdbcQuery jdbcQuery , List <DBEvent > events ) {
138+ assertTrue (events .size ()>=2 );
139+ for (DBEvent event :events ){
140+ assertTrue (event .hasPrimaryKeys ());
141+ }
142+ }
143+ });
99144 User1 user = new User1 ();
100145 user .setUsername ("admin" );
101146 user .setPassword ("admin" );
@@ -113,15 +158,23 @@ void test4() {
113158 @ Transactional
114159 @ Rollback (false )
115160 void test5 () {
161+ DBStreamContext .getInstance ().cleanEventPushers ();
162+ DBStreamContext .getInstance ().addEventPusher (new DBEventPusher () {
163+ @ Override
164+ public void push (JdbcQuery jdbcQuery , List <DBEvent > events ) {
165+ for (DBEvent event :events ){
166+ assertTrue (event .isInsert ());
167+ assertTrue (event .hasPrimaryKeys ());
168+ }
169+ }
170+ });
116171 User1 user = new User1 ();
117172 user .setUsername ("admin" );
118173 user .setPassword ("admin" );
119174 user .setEmail ("admin@example.com" );
120175 user .setNickname ("admin" );
121176
122177 userRepository .save (user );
123-
124- userRepository .deleteAll ();
125178 }
126179
127180
@@ -132,6 +185,29 @@ void test5() {
132185 @ Transactional
133186 @ Rollback (false )
134187 void test6 () {
188+ DBStreamContext .getInstance ().cleanEventPushers ();
189+ DBStreamContext .getInstance ().addEventPusher (new DBEventPusher () {
190+ @ Override
191+ public void push (JdbcQuery jdbcQuery , List <DBEvent > events ) {
192+ assertTrue (events .size ()>=2 );
193+ int hasPrimaryEventCount = 0 ;
194+ for (DBEvent event :events ){
195+ assertTrue (event .isInsert ());
196+ if (event .hasPrimaryKeys ()){
197+ hasPrimaryEventCount ++;
198+ }
199+ }
200+ assertEquals (1 ,hasPrimaryEventCount );
201+ }
202+ });
203+ User1 user = new User1 ();
204+ user .setUsername ("admin" );
205+ user .setPassword ("admin" );
206+ user .setEmail ("admin@example.com" );
207+ user .setNickname ("admin" );
208+
209+ userRepository .save (user );
210+
135211 userRepository .insertIntoFromSelect ();
136212 }
137213
@@ -142,6 +218,16 @@ void test6() {
142218 @ Test
143219 @ Transactional
144220 void test7 () {
221+
222+ DBStreamContext .getInstance ().cleanEventPushers ();
223+ AtomicBoolean running = new AtomicBoolean (false );
224+ DBStreamContext .getInstance ().addEventPusher (new DBEventPusher () {
225+ @ Override
226+ public void push (JdbcQuery jdbcQuery , List <DBEvent > events ) {
227+ running .set (true );
228+ }
229+ });
230+
145231 User1 user = new User1 ();
146232 user .setUsername ("admin" );
147233 user .setPassword ("admin" );
@@ -153,6 +239,8 @@ void test7() {
153239 int result = 100 / 0 ;
154240 System .out .println (result );
155241 });
242+
243+ assertFalse (running .get ());
156244 }
157245
158246 /**
@@ -162,6 +250,17 @@ void test7() {
162250 @ Transactional
163251 @ Rollback (value = false )
164252 void test8 () {
253+ DBStreamContext .getInstance ().cleanEventPushers ();
254+ DBStreamContext .getInstance ().addEventPusher (new DBEventPusher () {
255+ @ Override
256+ public void push (JdbcQuery jdbcQuery , List <DBEvent > events ) {
257+ assertTrue (events .size ()>=15 );
258+ for (DBEvent event :events ){
259+ assertTrue (event .hasPrimaryKeys ());
260+ }
261+ }
262+ });
263+
165264 List <User1 > list = userRepository .findAll ();
166265 for (User1 user : list ) {
167266 user .setEmail ("111" );
@@ -180,6 +279,7 @@ void test8() {
180279 entityManager .flush ();
181280 entityManager .clear ();
182281
282+
183283 }
184284
185285
0 commit comments