|
22 | 22 | import java.util.ArrayList;
|
23 | 23 | import java.util.Arrays;
|
24 | 24 | import java.util.Collection;
|
25 |
| -import java.util.Iterator; |
26 | 25 | import java.util.List;
|
27 | 26 | import java.util.concurrent.CountDownLatch;
|
28 | 27 | import java.util.concurrent.TimeUnit;
|
|
32 | 31 | import org.junit.Test;
|
33 | 32 | import org.mockito.InOrder;
|
34 | 33 |
|
| 34 | +import rx.Notification; |
35 | 35 | import rx.Observable;
|
36 | 36 | import rx.Observable.OnSubscribe;
|
37 | 37 | import rx.Observer;
|
38 | 38 | import rx.Subscriber;
|
39 | 39 | import rx.Subscription;
|
40 |
| -import rx.operators.OperationReduceTest.CustomException; |
41 | 40 | import rx.subjects.PublishSubject;
|
42 | 41 | import rx.subscriptions.Subscriptions;
|
43 | 42 | import rx.util.functions.Action1;
|
@@ -928,6 +927,65 @@ public void onNext(String s) {
|
928 | 927 | assertEquals("5-5", list.get(4));
|
929 | 928 | }
|
930 | 929 |
|
| 930 | + @Test |
| 931 | + public void testEmitNull() { |
| 932 | + Observable<Integer> oi = Observable.from(1, null, 3); |
| 933 | + Observable<String> os = Observable.from("a", "b", null); |
| 934 | + Observable<String> o = Observable.zip(oi, os, new Func2<Integer, String, String>() { |
| 935 | + |
| 936 | + @Override |
| 937 | + public String call(Integer t1, String t2) { |
| 938 | + return t1 + "-" + t2; |
| 939 | + } |
| 940 | + |
| 941 | + }); |
| 942 | + |
| 943 | + final ArrayList<String> list = new ArrayList<String>(); |
| 944 | + o.subscribe(new Action1<String>() { |
| 945 | + |
| 946 | + @Override |
| 947 | + public void call(String s) { |
| 948 | + System.out.println(s); |
| 949 | + list.add(s); |
| 950 | + } |
| 951 | + }); |
| 952 | + |
| 953 | + assertEquals(3, list.size()); |
| 954 | + assertEquals("1-a", list.get(0)); |
| 955 | + assertEquals("null-b", list.get(1)); |
| 956 | + assertEquals("3-null", list.get(2)); |
| 957 | + } |
| 958 | + |
| 959 | + @Test |
| 960 | + public void testEmitMaterializedNotifications() { |
| 961 | + Observable<Notification<Integer>> oi = Observable.from(1, 2, 3).materialize(); |
| 962 | + Observable<Notification<String>> os = Observable.from("a", "b", "c").materialize(); |
| 963 | + Observable<String> o = Observable.zip(oi, os, new Func2<Notification<Integer>, Notification<String>, String>() { |
| 964 | + |
| 965 | + @Override |
| 966 | + public String call(Notification<Integer> t1, Notification<String> t2) { |
| 967 | + return t1.getKind() + "_" + t1.getValue() + "-" + t2.getKind() + "_" + t2.getValue(); |
| 968 | + } |
| 969 | + |
| 970 | + }); |
| 971 | + |
| 972 | + final ArrayList<String> list = new ArrayList<String>(); |
| 973 | + o.subscribe(new Action1<String>() { |
| 974 | + |
| 975 | + @Override |
| 976 | + public void call(String s) { |
| 977 | + System.out.println(s); |
| 978 | + list.add(s); |
| 979 | + } |
| 980 | + }); |
| 981 | + |
| 982 | + assertEquals(4, list.size()); |
| 983 | + assertEquals("OnNext_1-OnNext_a", list.get(0)); |
| 984 | + assertEquals("OnNext_2-OnNext_b", list.get(1)); |
| 985 | + assertEquals("OnNext_3-OnNext_c", list.get(2)); |
| 986 | + assertEquals("OnCompleted_null-OnCompleted_null", list.get(3)); |
| 987 | + } |
| 988 | + |
931 | 989 | Observable<Integer> OBSERVABLE_OF_5_INTEGERS = OBSERVABLE_OF_5_INTEGERS(new AtomicInteger());
|
932 | 990 |
|
933 | 991 | Observable<Integer> OBSERVABLE_OF_5_INTEGERS(final AtomicInteger numEmitted) {
|
|
0 commit comments