X Tutup
Skip to content

Commit 3fc5870

Browse files
committed
3.5 Added takeLastBuffer examples
1 parent f8ffe5d commit 3fc5870

File tree

1 file changed

+97
-0
lines changed

1 file changed

+97
-0
lines changed
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
package itrx.chapter3.timeshifted;
2+
3+
import java.util.Arrays;
4+
import java.util.List;
5+
import java.util.concurrent.TimeUnit;
6+
7+
import org.junit.Test;
8+
9+
import rx.Observable;
10+
import rx.observers.TestSubscriber;
11+
import rx.schedulers.Schedulers;
12+
import rx.schedulers.TestScheduler;
13+
14+
public class TakeLastBufferTest {
15+
16+
public void exampleByCount() {
17+
Observable.range(0, 5)
18+
.takeLastBuffer(2)
19+
.subscribe(System.out::println);
20+
21+
// [3, 4]
22+
}
23+
24+
public void exampleByTime() {
25+
Observable.interval(100, TimeUnit.MILLISECONDS)
26+
.take(5)
27+
.takeLastBuffer(200, TimeUnit.MILLISECONDS)
28+
.subscribe(System.out::println);
29+
30+
// [2, 3, 4]
31+
}
32+
33+
public void exampleByCountAndTime() {
34+
Observable.interval(100, TimeUnit.MILLISECONDS)
35+
.take(5)
36+
.takeLastBuffer(2, 200, TimeUnit.MILLISECONDS)
37+
.subscribe(System.out::println);
38+
39+
// [3, 4]
40+
}
41+
42+
43+
//
44+
// Tests
45+
//
46+
47+
@Test
48+
public void testByCount() {
49+
TestSubscriber<List<Integer>> tester = new TestSubscriber<>();
50+
51+
Observable.range(0, 5)
52+
.takeLastBuffer(2)
53+
.subscribe(tester);
54+
55+
tester.assertReceivedOnNext(Arrays.asList(
56+
Arrays.asList(3, 4)
57+
));
58+
tester.assertTerminalEvent();
59+
tester.assertNoErrors();
60+
}
61+
62+
@Test
63+
public void testByTime() {
64+
TestSubscriber<List<Long>> tester = new TestSubscriber<>();
65+
TestScheduler scheduler = Schedulers.test();
66+
67+
Observable.interval(100, TimeUnit.MILLISECONDS, scheduler)
68+
.take(5)
69+
.takeLastBuffer(200, TimeUnit.MILLISECONDS, scheduler)
70+
.subscribe(tester);
71+
72+
scheduler.advanceTimeBy(500, TimeUnit.MILLISECONDS);
73+
tester.assertReceivedOnNext(Arrays.asList(
74+
Arrays.asList(2L, 3L, 4L)
75+
));
76+
tester.assertTerminalEvent();
77+
tester.assertNoErrors();
78+
}
79+
80+
@Test
81+
public void testByCountAndTime() {
82+
TestSubscriber<List<Long>> tester = new TestSubscriber<>();
83+
TestScheduler scheduler = Schedulers.test();
84+
85+
Observable.interval(100, TimeUnit.MILLISECONDS, scheduler)
86+
.take(5)
87+
.takeLastBuffer(2, 200, TimeUnit.MILLISECONDS, scheduler)
88+
.subscribe(tester);
89+
90+
scheduler.advanceTimeBy(500, TimeUnit.MILLISECONDS);
91+
tester.assertReceivedOnNext(Arrays.asList(
92+
Arrays.asList(3L, 4L)
93+
));
94+
tester.assertTerminalEvent();
95+
tester.assertNoErrors();
96+
}
97+
}

0 commit comments

Comments
 (0)
X Tutup