File tree Expand file tree Collapse file tree 1 file changed +58
-0
lines changed
tests/java/itrx/chapter3/combining Expand file tree Collapse file tree 1 file changed +58
-0
lines changed Original file line number Diff line number Diff line change 1+ package itrx .chapter3 .combining ;
2+
3+ import java .util .Arrays ;
4+ import java .util .concurrent .TimeUnit ;
5+
6+ import org .junit .Test ;
7+
8+ import rx .Observable ;
9+ import rx .observers .TestSubscriber ;
10+ import rx .schedulers .Schedulers ;
11+ import rx .schedulers .TestScheduler ;
12+
13+ public class SwitchMapTest {
14+
15+ public void example () {
16+ Observable .interval (100 , TimeUnit .MILLISECONDS )
17+ .switchMap (i ->
18+ Observable .interval (30 , TimeUnit .MILLISECONDS )
19+ .map (l -> i ))
20+ .take (9 )
21+ .subscribe (System .out ::println );
22+
23+ // 0
24+ // 0
25+ // 0
26+ // 1
27+ // 1
28+ // 1
29+ // 2
30+ // 2
31+ // 2
32+ }
33+
34+
35+ //
36+ // Test
37+ //
38+
39+ @ Test
40+ public void test () {
41+ TestSubscriber <Object > tester = new TestSubscriber <>();
42+ TestScheduler scheduler = Schedulers .test ();
43+
44+ Observable .interval (100 , TimeUnit .MILLISECONDS , scheduler )
45+ .switchMap (i ->
46+ Observable .interval (30 , TimeUnit .MILLISECONDS , scheduler )
47+ .map (l -> i ))
48+ .take (9 )
49+ .distinctUntilChanged ()
50+ .subscribe (tester );
51+
52+ scheduler .advanceTimeBy (400 , TimeUnit .MILLISECONDS );
53+ tester .assertReceivedOnNext (Arrays .asList (0L , 1L , 2L ));
54+ tester .assertTerminalEvent ();
55+ tester .assertNoErrors ();
56+ }
57+
58+ }
You can’t perform that action at this time.
0 commit comments