Skip to content

Commit 23d6acd

Browse files
committed
Chapter 1 Examples
1 parent e29eee6 commit 23d6acd

5 files changed

Lines changed: 194 additions & 1 deletion

File tree

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package itrx;
2+
3+
import static org.junit.Assert.*;
4+
5+
import java.util.Arrays;
6+
7+
import org.junit.Test;
8+
9+
import rx.observers.TestSubscriber;
10+
import rx.subjects.AsyncSubject;
11+
12+
public class AsyncSubjectTest {
13+
14+
@Test
15+
public void testLastValue() {
16+
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
17+
18+
AsyncSubject<Integer> s = AsyncSubject.create();
19+
s.subscribe(tester);
20+
s.onNext(0);
21+
s.onNext(1);
22+
s.onNext(2);
23+
s.onCompleted();
24+
25+
tester.assertReceivedOnNext(Arrays.asList(2));
26+
tester.assertTerminalEvent();
27+
tester.assertNoErrors();
28+
}
29+
30+
@Test
31+
public void testNoCompletion() {
32+
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
33+
34+
AsyncSubject<Integer> s = AsyncSubject.create();
35+
s.subscribe(tester);
36+
s.onNext(0);
37+
s.onNext(1);
38+
s.onNext(2);
39+
40+
tester.assertReceivedOnNext(Arrays.asList());
41+
assertTrue(tester.getOnCompletedEvents().size() == 0);
42+
tester.assertNoErrors();
43+
}
44+
45+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
package itrx;
2+
3+
import static org.junit.Assert.*;
4+
5+
import java.util.Arrays;
6+
7+
import org.junit.Test;
8+
9+
import rx.observers.TestSubscriber;
10+
import rx.subjects.BehaviorSubject;
11+
12+
public class BehaviorSubjectTest {
13+
14+
@Test
15+
public void testLate() {
16+
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
17+
18+
BehaviorSubject<Integer> s = BehaviorSubject.create();
19+
s.onNext(0);
20+
s.onNext(1);
21+
s.onNext(2);
22+
s.subscribe(tester);
23+
s.onNext(3);
24+
25+
tester.assertReceivedOnNext(Arrays.asList(2,3));
26+
}
27+
28+
@Test
29+
public void testCompleted() {
30+
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
31+
32+
BehaviorSubject<Integer> s = BehaviorSubject.create();
33+
s.onNext(0);
34+
s.onNext(1);
35+
s.onNext(2);
36+
s.onCompleted();
37+
s.subscribe(tester);
38+
39+
tester.assertReceivedOnNext(Arrays.asList());
40+
tester.assertTerminalEvent();
41+
tester.assertNoErrors();
42+
}
43+
44+
@Test
45+
public void testInitialvalue() {
46+
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
47+
48+
BehaviorSubject<Integer> s = BehaviorSubject.create(0);
49+
s.subscribe(tester);
50+
s.onNext(1);
51+
52+
tester.assertReceivedOnNext(Arrays.asList(0,1));
53+
tester.assertNoErrors();
54+
}
55+
56+
}

tests/java/itrx/ReplaySubjectTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public void testWithSize() {
4141
}
4242

4343
@Test
44-
public void testWithTime() throws InterruptedException {
44+
public void testWithTime() {
4545
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
4646
TestScheduler scheduler = Schedulers.test();
4747

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package itrx;
2+
3+
import static org.junit.Assert.*;
4+
5+
import java.util.Arrays;
6+
7+
import org.junit.Test;
8+
9+
import rx.observers.TestSubscriber;
10+
import rx.subjects.ReplaySubject;
11+
import rx.subjects.Subject;
12+
13+
public class RxContractTest {
14+
15+
@Test
16+
public void test() {
17+
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
18+
19+
Subject<Integer, Integer> s = ReplaySubject.create();
20+
s.subscribe(tester);
21+
s.onNext(0);
22+
s.onCompleted();
23+
s.onNext(1);
24+
s.onNext(2);
25+
26+
tester.assertReceivedOnNext(Arrays.asList(0));
27+
tester.assertTerminalEvent();
28+
tester.assertNoErrors();
29+
}
30+
31+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
package itrx;
2+
3+
import static org.junit.Assert.*;
4+
5+
import java.util.Arrays;
6+
7+
import org.junit.Test;
8+
9+
import rx.Subscription;
10+
import rx.observers.TestSubscriber;
11+
import rx.subjects.ReplaySubject;
12+
import rx.subjects.Subject;
13+
import rx.subscriptions.Subscriptions;
14+
15+
public class UnsubscribingTests {
16+
17+
@Test
18+
public void testUnsubscribe() {
19+
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
20+
21+
Subject<Integer, Integer> values = ReplaySubject.create();
22+
Subscription subscription = values.subscribe(tester);
23+
values.onNext(0);
24+
values.onNext(1);
25+
subscription.unsubscribe();
26+
values.onNext(2);
27+
28+
tester.assertReceivedOnNext(Arrays.asList(0,1));
29+
tester.assertUnsubscribed();
30+
}
31+
32+
@Test
33+
public void testIndependentSubscriptions() {
34+
TestSubscriber<Integer> tester1 = new TestSubscriber<Integer>();
35+
TestSubscriber<Integer> tester2 = new TestSubscriber<Integer>();
36+
37+
Subject<Integer, Integer> values = ReplaySubject.create();
38+
Subscription subscription1 = values.subscribe(tester1);
39+
Subscription subscription2 = values.subscribe(tester2);
40+
values.onNext(0);
41+
values.onNext(1);
42+
subscription1.unsubscribe();
43+
values.onNext(2);
44+
45+
tester1.assertReceivedOnNext(Arrays.asList(0,1));
46+
tester2.assertReceivedOnNext(Arrays.asList(0,1,2));
47+
tester1.assertUnsubscribed();
48+
assertFalse(tester2.isUnsubscribed());
49+
}
50+
51+
@Test
52+
public void testUnsubscribeAction() {
53+
boolean[] ran = {false};
54+
55+
Subscription s = Subscriptions.create(() -> ran[0] = true);
56+
s.unsubscribe();
57+
58+
assertTrue(ran[0]);
59+
}
60+
61+
}

0 commit comments

Comments
 (0)