/
EventCoalescorTest.java
52 lines (40 loc) · 1.26 KB
/
EventCoalescorTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package restx.common.watch;
import static org.assertj.core.api.Assertions.assertThat;
import com.google.common.eventbus.EventBus;
import com.google.common.eventbus.Subscribe;
import org.junit.Test;
import java.util.ArrayList;
import java.util.List;
/**
* User: xavierhanin
* Date: 9/11/13
* Time: 5:53 PM
*/
public class EventCoalescorTest {
@Test
public void should_coalesce() throws Exception {
EventBus eventBus = new EventBus();
final List<String> messages = new ArrayList<>();
eventBus.register(new Object() {
@Subscribe
public void onMessage(String msg) {
messages.add(msg);
}
});
EventCoalescor coalescor = EventCoalescor.generic(eventBus, 30);
coalescor.post("test1");
coalescor.post("test2");
coalescor.post("test1");
coalescor.post("test3");
Thread.sleep(40);
assertThat(messages).containsExactly("test1", "test2", "test3");
messages.clear();
coalescor.post("test2");
coalescor.post("test1");
coalescor.post("test1");
coalescor.post("test1");
coalescor.post("test1");
Thread.sleep(40);
assertThat(messages).containsExactly("test2", "test1");
}
}