Use tunit instead of long sleeps
diff --git a/pom.xml b/pom.xml
index 4bb9d49..f8eba42 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,6 +43,12 @@
<scope>test</scope>
</dependency>
<dependency>
+ <groupId>io.teknek</groupId>
+ <artifactId>tunit</artifactId>
+ <version>0.0.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.15</version>
diff --git a/src/test/java/io/teknek/gossip/TenNodeThreeSeedTest.java b/src/test/java/io/teknek/gossip/TenNodeThreeSeedTest.java
index d619b6c..f91f689 100644
--- a/src/test/java/io/teknek/gossip/TenNodeThreeSeedTest.java
+++ b/src/test/java/io/teknek/gossip/TenNodeThreeSeedTest.java
@@ -1,11 +1,15 @@
package io.teknek.gossip;
+import io.teknek.tunit.TUnit;
+
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.Callable;
+import java.util.concurrent.TimeUnit;
-import junit.framework.Assert;
+import org.junit.Assert;
import org.junit.Test;
import com.google.code.gossip.GossipMember;
@@ -34,8 +38,8 @@
for (int i = 1; i < seedNodes+1; ++i) {
startupMembers.add(new RemoteGossipMember("127.0.0." + i, 2000, i + ""));
}
- List<GossipService> clients = new ArrayList<>();
- int clusterMembers = 5;
+ final List<GossipService> clients = new ArrayList<>();
+ final int clusterMembers = 5;
for (int i = 1; i < clusterMembers+1; ++i) {
GossipService gossipService = new GossipService("127.0.0." + i, 2000, i + "",
startupMembers, settings,
@@ -47,12 +51,16 @@
});
clients.add(gossipService);
gossipService.start();
- Thread.sleep(1000);
}
- Thread.sleep(10000);
- for (int i = 0; i < clusterMembers; ++i) {
- Assert.assertEquals(4, clients.get(i).get_gossipManager().getMemberList().size());
- }
+ TUnit.assertThat(new Callable<Integer> (){
+ public Integer call() throws Exception {
+ int total = 0;
+ for (int i = 0; i < clusterMembers; ++i) {
+ total += clients.get(i).get_gossipManager().getMemberList().size();
+ }
+ return total;
+ }}).afterWaitingAtMost(10, TimeUnit.SECONDS).isEqualTo(20);
+
for (int i = 0; i < clusterMembers; ++i) {
clients.get(i).shutdown();
}