Skip to content

Commit ce282e3

Browse files
committed
3.5 Added throttleWithTimeout example
1 parent 3fc5870 commit ce282e3

File tree

1 file changed

+35
-2
lines changed

1 file changed

+35
-2
lines changed

tests/java/itrx/chapter3/timeshifted/DebounceTest.java

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,22 @@ public void exampleDebounceDynamic() {
4545
// 9
4646
}
4747

48+
public void exampleThrottleWithTimeout() {
49+
Observable.concat(
50+
Observable.interval(100, TimeUnit.MILLISECONDS).take(3),
51+
Observable.interval(500, TimeUnit.MILLISECONDS).take(3),
52+
Observable.interval(100, TimeUnit.MILLISECONDS).take(3)
53+
)
54+
.scan(0, (acc, v) -> acc+1)
55+
.throttleWithTimeout(150, TimeUnit.MILLISECONDS)
56+
.subscribe(System.out::println);
57+
58+
// 3
59+
// 4
60+
// 5
61+
// 9
62+
}
63+
4864

4965
//
5066
// Test
@@ -85,5 +101,22 @@ public void testDebounceDynamic() {
85101
scheduler.advanceTimeBy(2100, TimeUnit.MILLISECONDS);
86102
tester.assertReceivedOnNext(Arrays.asList(1, 2, 3, 4, 5, 9));
87103
}
88-
89-
}
104+
105+
@Test
106+
public void testThrottleWithTimeout() {
107+
TestScheduler scheduler = Schedulers.test();
108+
TestSubscriber<Integer> tester = new TestSubscriber<>();
109+
110+
Observable.concat(
111+
Observable.interval(100, TimeUnit.MILLISECONDS, scheduler).take(3),
112+
Observable.interval(500, TimeUnit.MILLISECONDS, scheduler).take(3),
113+
Observable.interval(100, TimeUnit.MILLISECONDS, scheduler).take(3)
114+
)
115+
.scan(0, (acc, v) -> acc+1)
116+
.throttleWithTimeout(150, TimeUnit.MILLISECONDS, scheduler)
117+
.subscribe(tester);
118+
119+
scheduler.advanceTimeBy(2100, TimeUnit.MILLISECONDS);
120+
tester.assertReceivedOnNext(Arrays.asList(3, 4, 5, 9));
121+
}
122+
}

0 commit comments

Comments
 (0)