X Tutup
Skip to content

Commit 5c2ed42

Browse files
committed
3.4 Added ambWith example
1 parent b6247fe commit 5c2ed42

File tree

1 file changed

+27
-2
lines changed

1 file changed

+27
-2
lines changed

tests/java/itrx/chapter3/combining/AmbTest.java

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
public class AmbTest {
1414

15-
public void example() {
15+
public void exampleAmb() {
1616
Observable.amb(
1717
Observable.timer(100, TimeUnit.MILLISECONDS).map(i -> "First"),
1818
Observable.timer(50, TimeUnit.MILLISECONDS).map(i -> "Second"))
@@ -21,13 +21,22 @@ public void example() {
2121
// Second
2222
}
2323

24+
public void exampleAmbWith() {
25+
Observable.timer(100, TimeUnit.MILLISECONDS).map(i -> "First")
26+
.ambWith(Observable.timer(50, TimeUnit.MILLISECONDS).map(i -> "Second"))
27+
.ambWith(Observable.timer(70, TimeUnit.MILLISECONDS).map(i -> "Third"))
28+
.subscribe(System.out::println);
29+
30+
// Second
31+
}
32+
2433

2534
//
2635
// Test
2736
//
2837

2938
@Test
30-
public void test() {
39+
public void testAmb() {
3140
TestSubscriber<String> tester = new TestSubscriber<>();
3241
TestScheduler scheduler = Schedulers.test();
3342

@@ -41,5 +50,21 @@ public void test() {
4150
tester.assertTerminalEvent();
4251
tester.assertNoErrors();
4352
}
53+
54+
@Test
55+
public void testAmbWith() {
56+
TestSubscriber<String> tester = new TestSubscriber<>();
57+
TestScheduler scheduler = Schedulers.test();
58+
59+
Observable.timer(100, TimeUnit.MILLISECONDS, scheduler).map(i -> "First")
60+
.ambWith(Observable.timer(50, TimeUnit.MILLISECONDS, scheduler).map(i -> "Second"))
61+
.ambWith(Observable.timer(70, TimeUnit.MILLISECONDS, scheduler).map(i -> "Third"))
62+
.subscribe(tester);
63+
64+
scheduler.advanceTimeBy(100, TimeUnit.MILLISECONDS);
65+
tester.assertReceivedOnNext(Arrays.asList("Second"));
66+
tester.assertTerminalEvent();
67+
tester.assertNoErrors();
68+
}
4469

4570
}

0 commit comments

Comments
 (0)
X Tutup