Skip to content

Commit 3b1f243

Browse files
committed
Examples chapter 2.1
1 parent 8980892 commit 3b1f243

File tree

5 files changed

+574
-0
lines changed

5 files changed

+574
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package itrx.chapter2.creating;
2+
3+
import static org.junit.Assert.*;
4+
5+
import java.util.Arrays;
6+
import java.util.concurrent.FutureTask;
7+
8+
import org.junit.Test;
9+
10+
import rx.Observable;
11+
import rx.Subscription;
12+
import rx.observers.TestSubscriber;
13+
import rx.schedulers.TestScheduler;
14+
15+
public class FromTest {
16+
17+
@Test
18+
public void testFromArray() {
19+
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
20+
21+
Integer[] input = {1,2,3};
22+
Observable<Integer> values = Observable.from(input);
23+
Subscription subscription = values.subscribe(tester);
24+
25+
tester.assertReceivedOnNext(Arrays.asList(input));
26+
tester.assertNoErrors();
27+
tester.assertTerminalEvent();
28+
}
29+
30+
@Test
31+
public void testFromIterable() {
32+
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
33+
34+
Iterable<Integer> input = Arrays.asList(1,2,3);
35+
Observable<Integer> values = Observable.from(input);
36+
Subscription subscription = values.subscribe(tester);
37+
38+
tester.assertReceivedOnNext(Arrays.asList(1,2,3));
39+
tester.assertNoErrors();
40+
tester.assertTerminalEvent();
41+
}
42+
43+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package itrx.chapter2.creating;
2+
3+
import static org.junit.Assert.*;
4+
5+
import java.util.Arrays;
6+
import java.util.concurrent.TimeUnit;
7+
8+
import org.junit.Test;
9+
10+
import rx.Observable;
11+
import rx.Subscription;
12+
import rx.observers.TestSubscriber;
13+
import rx.schedulers.Schedulers;
14+
import rx.schedulers.TestScheduler;
15+
16+
public class FunctionalUnfoldsTest {
17+
18+
@Test
19+
public void testRange() {
20+
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
21+
22+
Observable<Integer> values = Observable.range(10, 15);
23+
values.subscribe(tester);
24+
25+
tester.assertReceivedOnNext(Arrays.asList(10,11,12,13,14,15,16,17,18,19,20,21,22,23,24));
26+
tester.assertTerminalEvent();
27+
tester.assertNoErrors();
28+
}
29+
30+
public void testInterval() {
31+
TestSubscriber<Long> tester = new TestSubscriber<Long>();
32+
TestScheduler scheduler = Schedulers.test();
33+
34+
Observable<Long> values = Observable.interval(1000, TimeUnit.MILLISECONDS, scheduler);
35+
Subscription subscription = values.subscribe(tester);
36+
scheduler.advanceTimeBy(4500, TimeUnit.MILLISECONDS);
37+
38+
tester.assertReceivedOnNext(Arrays.asList(0L, 1L, 2L, 3L));
39+
tester.assertNoErrors();
40+
assertEquals(tester.getOnCompletedEvents().size(), 0);
41+
}
42+
43+
public void testTimer() {
44+
TestSubscriber<Long> tester = new TestSubscriber<Long>();
45+
TestScheduler scheduler = Schedulers.test();
46+
47+
Observable<Long> values = Observable.timer(1, TimeUnit.SECONDS, scheduler);
48+
Subscription subscription = values.subscribe(tester);
49+
scheduler.advanceTimeBy(1, TimeUnit.SECONDS);
50+
51+
tester.assertReceivedOnNext(Arrays.asList(0L));
52+
tester.assertNoErrors();
53+
tester.assertTerminalEvent();
54+
}
55+
56+
public void testTimerWithRepeat() {
57+
TestSubscriber<Long> tester = new TestSubscriber<Long>();
58+
TestScheduler scheduler = Schedulers.test();
59+
60+
Observable<Long> values = Observable.timer(2, 1, TimeUnit.SECONDS);
61+
Subscription subscription = values.subscribe(tester);
62+
63+
tester.assertReceivedOnNext(Arrays.asList(0L,1L,2L));
64+
tester.assertNoErrors();
65+
assertEquals(tester.getOnCompletedEvents().size(), 0); // Hasn't terminated
66+
}
67+
68+
}
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package itrx.chapter2.creating;
2+
3+
import static org.junit.Assert.*;
4+
5+
import java.util.Arrays;
6+
7+
import org.junit.Test;
8+
9+
import rx.Observable;
10+
import rx.Subscription;
11+
import rx.observers.TestSubscriber;
12+
13+
public class ObservableFactoriesTest {
14+
15+
@Test
16+
public void testJust() {
17+
TestSubscriber<String> tester = new TestSubscriber<String>();
18+
19+
Observable<String> values = Observable.just("one", "two", "three");
20+
Subscription subscription = values.subscribe(tester);
21+
22+
tester.assertReceivedOnNext(Arrays.asList("one", "two", "three"));
23+
tester.assertNoErrors();
24+
tester.assertTerminalEvent();
25+
}
26+
27+
@Test
28+
public void testEmpty() {
29+
TestSubscriber<String> tester = new TestSubscriber<String>();
30+
31+
Observable<String> values = Observable.empty();
32+
Subscription subscription = values.subscribe(tester);
33+
34+
tester.assertReceivedOnNext(Arrays.asList());
35+
tester.assertNoErrors();
36+
tester.assertTerminalEvent();
37+
}
38+
39+
@Test
40+
public void testNever() {
41+
TestSubscriber<String> tester = new TestSubscriber<String>();
42+
43+
Observable<String> values = Observable.never();
44+
Subscription subscription = values.subscribe(tester);
45+
46+
tester.assertReceivedOnNext(Arrays.asList());
47+
tester.assertNoErrors();
48+
assertEquals(tester.getOnCompletedEvents().size(), 0);
49+
}
50+
51+
@Test
52+
public void testError() {
53+
TestSubscriber<String> tester = new TestSubscriber<String>();
54+
55+
Observable<String> values = Observable.error(new Exception("Oops"));
56+
Subscription subscription = values.subscribe(tester);
57+
58+
tester.assertReceivedOnNext(Arrays.asList());
59+
tester.assertTerminalEvent();
60+
assertEquals(tester.getOnErrorEvents().size(), 1);
61+
assertEquals(tester.getOnCompletedEvents().size(), 0);
62+
}
63+
64+
@Test
65+
public void testCreate() {
66+
TestSubscriber<String> tester = new TestSubscriber<String>();
67+
68+
Observable<String> values = Observable.create(o -> {
69+
o.onNext("Hello");
70+
o.onCompleted();
71+
});
72+
Subscription subscription = values.subscribe(tester);
73+
74+
tester.assertReceivedOnNext(Arrays.asList("Hello"));
75+
tester.assertTerminalEvent();
76+
tester.assertNoErrors();
77+
}
78+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package itrx.chapter2.reducing;
2+
3+
import static org.junit.Assert.*;
4+
5+
import java.util.Arrays;
6+
7+
import org.junit.Test;
8+
9+
import rx.Observable;
10+
import rx.Subscription;
11+
import rx.observers.TestSubscriber;
12+
13+
public class IgnoreTest {
14+
15+
@Test
16+
public void testIgnoreElements() {
17+
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
18+
19+
Observable<Integer> values = Observable.range(0, 10);
20+
21+
Subscription subscription = values
22+
.ignoreElements()
23+
.subscribe(tester);
24+
25+
tester.assertReceivedOnNext(Arrays.asList());
26+
tester.assertTerminalEvent();
27+
tester.assertNoErrors();
28+
}
29+
30+
}

0 commit comments

Comments
 (0)