X Tutup
Skip to content
This repository was archived by the owner on Nov 18, 2024. It is now read-only.

Commit 7ca227c

Browse files
committed
Added runnable examples chapter 1
1 parent cf4e31c commit 7ca227c

File tree

5 files changed

+197
-24
lines changed

5 files changed

+197
-24
lines changed

tests/java/itrx/chapter1/AsyncSubjectTest.java

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,32 +11,55 @@
1111

1212
public class AsyncSubjectTest {
1313

14+
public void exampleLastValue() {
15+
AsyncSubject<Integer> s = AsyncSubject.create();
16+
s.subscribe(v -> System.out.println(v));
17+
s.onNext(0);
18+
s.onNext(1);
19+
s.onNext(2);
20+
s.onCompleted();
21+
22+
// 2
23+
}
24+
25+
public void exampleNoCompletion() {
26+
AsyncSubject<Integer> s = AsyncSubject.create();
27+
s.subscribe(v -> System.out.println(v));
28+
s.onNext(0);
29+
s.onNext(1);
30+
s.onNext(2);
31+
}
32+
33+
//
34+
// Tests
35+
//
36+
1437
@Test
1538
public void testLastValue() {
16-
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
17-
39+
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
40+
1841
AsyncSubject<Integer> s = AsyncSubject.create();
1942
s.subscribe(tester);
2043
s.onNext(0);
2144
s.onNext(1);
2245
s.onNext(2);
2346
s.onCompleted();
24-
47+
2548
tester.assertReceivedOnNext(Arrays.asList(2));
2649
tester.assertTerminalEvent();
2750
tester.assertNoErrors();
2851
}
29-
52+
3053
@Test
3154
public void testNoCompletion() {
32-
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
33-
55+
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
56+
3457
AsyncSubject<Integer> s = AsyncSubject.create();
3558
s.subscribe(tester);
3659
s.onNext(0);
3760
s.onNext(1);
3861
s.onNext(2);
39-
62+
4063
tester.assertReceivedOnNext(Arrays.asList());
4164
assertTrue(tester.getOnCompletedEvents().size() == 0);
4265
tester.assertNoErrors();

tests/java/itrx/chapter1/BehaviorSubjectTest.java

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,45 @@
99

1010
public class BehaviorSubjectTest {
1111

12+
public void exampleLat() {
13+
BehaviorSubject<Integer> s = BehaviorSubject.create();
14+
s.onNext(0);
15+
s.onNext(1);
16+
s.onNext(2);
17+
s.subscribe(v -> System.out.println("Late: " + v));
18+
s.onNext(3);
19+
20+
// Late: 2
21+
// Late: 3
22+
}
23+
24+
public void exampleCompleted() {
25+
BehaviorSubject<Integer> s = BehaviorSubject.create();
26+
s.onNext(0);
27+
s.onNext(1);
28+
s.onNext(2);
29+
s.onCompleted();
30+
s.subscribe(
31+
v -> System.out.println("Late: " + v),
32+
e -> System.out.println("Error"),
33+
() -> System.out.println("Completed")
34+
);
35+
}
36+
37+
public void exampleInitialvalue() {
38+
BehaviorSubject<Integer> s = BehaviorSubject.create(0);
39+
s.subscribe(v -> System.out.println(v));
40+
s.onNext(1);
41+
42+
// 0
43+
// 1
44+
}
45+
46+
47+
//
48+
// Tests
49+
//
50+
1251
@Test
1352
public void testLate() {
1453
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();

tests/java/itrx/chapter1/ReplaySubjectTest.java

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,55 @@
1212

1313
public class ReplaySubjectTest {
1414

15+
public void exampleEarlyLate() {
16+
ReplaySubject<Integer> s = ReplaySubject.create();
17+
s.subscribe(v -> System.out.println("Early:" + v));
18+
s.onNext(0);
19+
s.onNext(1);
20+
s.subscribe(v -> System.out.println("Late: " + v));
21+
s.onNext(2);
22+
23+
// Early:0
24+
// Early:1
25+
// Late: 0
26+
// Late: 1
27+
// Early:2
28+
// Late: 2
29+
}
30+
31+
public void exampleWithSize() {
32+
ReplaySubject<Integer> s = ReplaySubject.createWithSize(2);
33+
s.onNext(0);
34+
s.onNext(1);
35+
s.onNext(2);
36+
s.subscribe(v -> System.out.println("Late: " + v));
37+
s.onNext(3);
38+
39+
// Late: 1
40+
// Late: 2
41+
// Late: 3
42+
}
43+
44+
public void exampleWithTime() throws InterruptedException {
45+
ReplaySubject<Integer> s = ReplaySubject.createWithTime(150, TimeUnit.MILLISECONDS, Schedulers.immediate());
46+
s.onNext(0);
47+
Thread.sleep(100);
48+
s.onNext(1);
49+
Thread.sleep(100);
50+
s.onNext(2);
51+
s.subscribe(v -> System.out.println("Late: " + v));
52+
s.onNext(3);
53+
54+
// Late: 1
55+
// Late: 2
56+
// Late: 3
57+
}
58+
59+
60+
//
61+
// Test
62+
//
63+
1564
@Test
1665
public void testEarlyLate() {
1766
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();

tests/java/itrx/chapter1/RxContractTest.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,17 +10,33 @@
1010

1111
public class RxContractTest {
1212

13+
@Test
14+
public void example() {
15+
Subject<Integer, Integer> s = ReplaySubject.create();
16+
s.subscribe(v -> System.out.println(v));
17+
s.onNext(0);
18+
s.onCompleted();
19+
s.onNext(1);
20+
s.onNext(2);
21+
22+
// 0
23+
}
24+
25+
//
26+
// Test
27+
//
28+
1329
@Test
1430
public void test() {
1531
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
16-
32+
1733
Subject<Integer, Integer> s = ReplaySubject.create();
1834
s.subscribe(tester);
1935
s.onNext(0);
2036
s.onCompleted();
2137
s.onNext(1);
2238
s.onNext(2);
23-
39+
2440
tester.assertReceivedOnNext(Arrays.asList(0));
2541
tester.assertTerminalEvent();
2642
tester.assertNoErrors();

tests/java/itrx/chapter1/UnsubscribingTests.java

Lines changed: 61 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -15,49 +15,95 @@
1515

1616
public class UnsubscribingTests {
1717

18+
public void exampleUnsubscribe() {
19+
Subject<Integer, Integer> values = ReplaySubject.create();
20+
Subscription subscription = values.subscribe(
21+
v -> System.out.println(v), e -> System.err.println(e),
22+
() -> System.out.println("Done"));
23+
values.onNext(0);
24+
values.onNext(1);
25+
subscription.unsubscribe();
26+
values.onNext(2);
27+
28+
// 0
29+
// 1
30+
}
31+
32+
public void exampleIndependentSubscriptions() {
33+
Subject<Integer, Integer> values = ReplaySubject.create();
34+
Subscription subscription1 = values.subscribe(v -> System.out
35+
.println("First: " + v));
36+
values.subscribe(v -> System.out.println("Second: " + v));
37+
values.onNext(0);
38+
values.onNext(1);
39+
subscription1.unsubscribe();
40+
System.out.println("Unsubscribed first");
41+
values.onNext(2);
42+
43+
// First: 0
44+
// Second: 0
45+
// First: 1
46+
// Second: 1
47+
// Unsubscribed first
48+
// Second: 2
49+
}
50+
51+
public void exampleUnsubscribeAction() {
52+
Subscription s = Subscriptions
53+
.create(() -> System.out.println("Clean"));
54+
s.unsubscribe();
55+
56+
// Clean
57+
}
58+
59+
60+
//
61+
// Tests
62+
//
63+
1864
@Test
1965
public void testUnsubscribe() {
2066
TestSubscriber<Integer> tester = new TestSubscriber<Integer>();
21-
22-
Subject<Integer, Integer> values = ReplaySubject.create();
67+
68+
Subject<Integer, Integer> values = ReplaySubject.create();
2369
Subscription subscription = values.subscribe(tester);
2470
values.onNext(0);
2571
values.onNext(1);
2672
subscription.unsubscribe();
2773
values.onNext(2);
28-
29-
tester.assertReceivedOnNext(Arrays.asList(0,1));
74+
75+
tester.assertReceivedOnNext(Arrays.asList(0, 1));
3076
tester.assertUnsubscribed();
3177
}
32-
78+
3379
@Test
3480
public void testIndependentSubscriptions() {
3581
TestSubscriber<Integer> tester1 = new TestSubscriber<Integer>();
3682
TestSubscriber<Integer> tester2 = new TestSubscriber<Integer>();
37-
38-
Subject<Integer, Integer> values = ReplaySubject.create();
83+
84+
Subject<Integer, Integer> values = ReplaySubject.create();
3985
Subscription subscription1 = values.subscribe(tester1);
4086
Subscription subscription2 = values.subscribe(tester2);
4187
values.onNext(0);
4288
values.onNext(1);
4389
subscription1.unsubscribe();
4490
values.onNext(2);
45-
46-
tester1.assertReceivedOnNext(Arrays.asList(0,1));
47-
tester2.assertReceivedOnNext(Arrays.asList(0,1,2));
91+
92+
tester1.assertReceivedOnNext(Arrays.asList(0, 1));
93+
tester2.assertReceivedOnNext(Arrays.asList(0, 1, 2));
4894
tester1.assertUnsubscribed();
4995
assertFalse(tester2.isUnsubscribed());
50-
96+
5197
subscription2.unsubscribe();
5298
}
53-
99+
54100
@Test
55101
public void testUnsubscribeAction() {
56-
boolean[] ran = {false};
57-
102+
boolean[] ran = { false };
103+
58104
Subscription s = Subscriptions.create(() -> ran[0] = true);
59105
s.unsubscribe();
60-
106+
61107
assertTrue(ran[0]);
62108
}
63109

0 commit comments

Comments
 (0)
X Tutup