Skip to content

Commit e979b52

Browse files
authored
Merge pull request #50 from FOCONIS/improve-test-speed
Refactor tests - Remove Thread.Sleep to improve test speed
2 parents 97f667d + d3a5255 commit e979b52

File tree

2 files changed

+49
-45
lines changed

2 files changed

+49
-45
lines changed

ebean-datasource/src/test/java/io/ebean/datasource/pool/ConnectionPoolOfflineTest.java

Lines changed: 34 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import static org.assertj.core.api.Assertions.assertThat;
1212
import static org.junit.jupiter.api.Assertions.assertEquals;
1313

14-
public class ConnectionPoolOfflineTest {
14+
public class ConnectionPoolOfflineTest implements WaitFor {
1515

1616
private static final Logger log = LoggerFactory.getLogger(ConnectionPoolOfflineTest.class);
1717

@@ -39,44 +39,47 @@ public void testOffline() throws InterruptedException, SQLException {
3939
assertThat(pool.isOnline()).isFalse();
4040
assertThat(pool.size()).isEqualTo(0);
4141
log.info("pool created ");
42-
Thread.sleep(3000);
43-
44-
assertEquals(0, pool.getStatus(false).getFree());
45-
assertEquals(0, pool.getStatus(false).getBusy());
46-
assertThat(pool.size()).isEqualTo(0);
4742

43+
waitFor(() -> {
44+
assertEquals(0, pool.getStatus(false).getFree());
45+
assertEquals(0, pool.getStatus(false).getBusy());
46+
assertThat(pool.size()).isEqualTo(0);
47+
});
48+
4849
pool.online();
4950
log.info("pool online");
5051
assertThat(pool.isOnline()).isTrue();
5152
assertEquals(2, pool.getStatus(false).getFree());
5253
assertEquals(0, pool.getStatus(false).getBusy());
5354
assertThat(pool.size()).isEqualTo(2);
5455

55-
Thread.sleep(3000);
56-
5756
pool.offline();
5857
log.info("pool offline");
59-
assertThat(pool.isOnline()).isFalse();
60-
assertEquals(0, pool.getStatus(false).getFree());
61-
assertEquals(0, pool.getStatus(false).getBusy());
62-
assertThat(pool.size()).isEqualTo(0);
63-
64-
Thread.sleep(3000);
58+
waitFor(() -> {
59+
assertThat(pool.isOnline()).isFalse();
60+
assertEquals(0, pool.getStatus(false).getFree());
61+
assertEquals(0, pool.getStatus(false).getBusy());
62+
assertThat(pool.size()).isEqualTo(0);
63+
});
6564

6665
pool.online();
6766
log.info("pool online");
68-
assertThat(pool.isOnline()).isTrue();
69-
assertEquals(2, pool.getStatus(false).getFree());
70-
assertEquals(0, pool.getStatus(false).getBusy());
71-
assertThat(pool.size()).isEqualTo(2);
72-
Thread.sleep(3000);
73-
67+
68+
waitFor(() -> {
69+
assertThat(pool.isOnline()).isTrue();
70+
assertEquals(2, pool.getStatus(false).getFree());
71+
assertEquals(0, pool.getStatus(false).getBusy());
72+
assertThat(pool.size()).isEqualTo(2);
73+
});
74+
7475
pool.shutdown();
7576

76-
assertThat(pool.isOnline()).isFalse();
77-
assertEquals(0, pool.getStatus(false).getFree());
78-
assertEquals(0, pool.getStatus(false).getBusy());
79-
assertThat(pool.size()).isEqualTo(0);
77+
waitFor(() -> {
78+
assertThat(pool.isOnline()).isFalse();
79+
assertEquals(0, pool.getStatus(false).getFree());
80+
assertEquals(0, pool.getStatus(false).getBusy());
81+
assertThat(pool.size()).isEqualTo(0);
82+
});
8083
}
8184

8285
@Test
@@ -131,13 +134,13 @@ public void offline_whenBusy_allowed() throws SQLException, InterruptedException
131134
assertEquals(1, pool.getStatus(false).getBusy()); // still 1 busy connection
132135
assertThat(pool.size()).isEqualTo(1);
133136

134-
// a bit of time to let busy connection finish and close
135-
Thread.sleep(4000);
136-
137-
// all done now
138-
assertEquals(0, pool.getStatus(false).getFree());
139-
assertEquals(0, pool.getStatus(false).getBusy());
140-
assertThat(pool.size()).isEqualTo(0);
137+
// wait to let busy connection finish and close
138+
waitFor(() -> {
139+
// all done now
140+
assertEquals(0, pool.getStatus(false).getFree());
141+
assertEquals(0, pool.getStatus(false).getBusy());
142+
assertThat(pool.size()).isEqualTo(0);
143+
});
141144
}
142145

143146
@Test

ebean-datasource/src/test/java/io/ebean/datasource/pool/ConnectionPoolTrimIdleTest.java

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
1212

13-
public class ConnectionPoolTrimIdleTest {
13+
public class ConnectionPoolTrimIdleTest implements WaitFor {
1414

1515
private ConnectionPool createPool() {
1616

@@ -47,11 +47,10 @@ public void test() throws SQLException, InterruptedException {
4747
assertThat(pool.size()).isEqualTo(4);
4848
assertThat(pool.getStatus(false).getFree()).isEqualTo(4);
4949

50-
Thread.sleep(6000);
51-
52-
assertThat(pool.getStatus(false).getFree()).isEqualTo(1);
53-
assertThat(pool.size()).isEqualTo(1);
54-
50+
waitFor(() -> {
51+
assertThat(pool.getStatus(false).getFree()).isEqualTo(1);
52+
assertThat(pool.size()).isEqualTo(1);
53+
});
5554
} finally {
5655
pool.shutdown();
5756
}
@@ -77,23 +76,25 @@ public void test_withDecreasingActivity_expect_trimToActivityLevel() throws SQLE
7776

7877
// keep 4 connections busy
7978
Timer timer0 = createTimer(pool, 4);
80-
Thread.sleep(9000);
8179

82-
assertThat(pool.getStatus(false).getFree()).isEqualTo(4);
80+
waitFor(() -> {
81+
assertThat(pool.getStatus(false).getFree()).isEqualTo(4);
82+
});
8383
timer0.cancel();
8484

8585
// keep 2 connections busy
8686
Timer timer1 = createTimer(pool, 2);
87-
Thread.sleep(6000);
8887

89-
assertThat(pool.getStatus(false).getFree()).isEqualTo(2);
88+
waitFor(() -> {
89+
assertThat(pool.getStatus(false).getFree()).isEqualTo(2);
90+
});
9091
timer1.cancel();
9192

9293
// Go Idle
93-
Thread.sleep(5000);
94-
assertThat(pool.getStatus(false).getFree()).isEqualTo(1);
95-
assertThat(pool.size()).isEqualTo(1);
96-
94+
waitFor(() -> {
95+
assertThat(pool.getStatus(false).getFree()).isEqualTo(1);
96+
assertThat(pool.size()).isEqualTo(1);
97+
});
9798
} finally {
9899
pool.shutdown();
99100
}

0 commit comments

Comments
 (0)