Skip to content

Commit af4988e

Browse files
authored
4.x: Unit test lambdaification 4 of N (ReactiveX#8140)
1 parent 8dad743 commit af4988e

12 files changed

Lines changed: 390 additions & 1393 deletions

src/test/java/io/reactivex/rxjava4/core/ConverterTest.java

Lines changed: 5 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -174,52 +174,27 @@ interface A<T, R> { }
174174
interface B<T> { }
175175

176176
private static <T> ObservableConverter<A<T, ?>, B<T>> testObservableConverterCreator() {
177-
return new ObservableConverter<A<T, ?>, B<T>>() {
178-
@Override
179-
public B<T> apply(Observable<A<T, ?>> a) {
180-
return new B<T>() /* NFI */ {
181-
};
182-
}
177+
return _ -> new B<T>() /* NFI */ {
183178
};
184179
}
185180

186181
private static <T> SingleConverter<A<T, ?>, B<T>> testSingleConverterCreator() {
187-
return new SingleConverter<A<T, ?>, B<T>>() {
188-
@Override
189-
public B<T> apply(Single<A<T, ?>> a) {
190-
return new B<T>() /* NFI */ {
191-
};
192-
}
182+
return _ -> new B<T>() /* NFI */ {
193183
};
194184
}
195185

196186
private static <T> MaybeConverter<A<T, ?>, B<T>> testMaybeConverterCreator() {
197-
return new MaybeConverter<A<T, ?>, B<T>>() {
198-
@Override
199-
public B<T> apply(Maybe<A<T, ?>> a) {
200-
return new B<T>() /* NFI */ {
201-
};
202-
}
187+
return _ -> new B<T>() /* NFI */ {
203188
};
204189
}
205190

206191
private static <T> FlowableConverter<A<T, ?>, B<T>> testFlowableConverterCreator() {
207-
return new FlowableConverter<A<T, ?>, B<T>>() {
208-
@Override
209-
public B<T> apply(Flowable<A<T, ?>> a) {
210-
return new B<T>() /* NFI */ {
211-
};
212-
}
192+
return _ -> new B<T>() /* NFI */ {
213193
};
214194
}
215195

216196
private static <T> ParallelFlowableConverter<A<T, ?>, B<T>> testParallelFlowableConverterCreator() {
217-
return new ParallelFlowableConverter<A<T, ?>, B<T>>() {
218-
@Override
219-
public B<T> apply(ParallelFlowable<A<T, ?>> a) {
220-
return new B<T>() /* NFI */ {
221-
};
222-
}
197+
return a -> new B<T>() /* NFI */ {
223198
};
224199
}
225200

src/test/java/io/reactivex/rxjava4/flowable/FlowableCollectTest.java

Lines changed: 8 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -144,12 +144,7 @@ public void accept(Object o, Integer t) {
144144
@Test
145145
public void collectIntoFlowable() {
146146
Flowable.just(1, 1, 1, 1, 2)
147-
.collectInto(new HashSet<>(), new BiConsumer<HashSet<Integer>, Integer>() {
148-
@Override
149-
public void accept(HashSet<Integer> s, Integer v) throws Exception {
150-
s.add(v);
151-
}
152-
})
147+
.collectInto(new HashSet<>(), (BiConsumer<HashSet<Integer>, Integer>) HashSet::add)
153148
.toFlowable()
154149
.test()
155150
.assertResult(new HashSet<>(Arrays.asList(1, 2)));
@@ -263,60 +258,25 @@ public void accept(Object o, Integer t) {
263258
@Test
264259
public void collectInto() {
265260
Flowable.just(1, 1, 1, 1, 2)
266-
.collectInto(new HashSet<>(), new BiConsumer<HashSet<Integer>, Integer>() {
267-
@Override
268-
public void accept(HashSet<Integer> s, Integer v) throws Exception {
269-
s.add(v);
270-
}
271-
})
261+
.collectInto(new HashSet<>(), (BiConsumer<HashSet<Integer>, Integer>) HashSet::add)
272262
.test()
273263
.assertResult(new HashSet<>(Arrays.asList(1, 2)));
274264
}
275265

276266
@Test
277267
public void dispose() {
278268
TestHelper.checkDisposed(Flowable.just(1, 2)
279-
.collect(Functions.justSupplier(new ArrayList<>()), new BiConsumer<ArrayList<Integer>, Integer>() {
280-
@Override
281-
public void accept(ArrayList<Integer> a, Integer b) throws Exception {
282-
a.add(b);
283-
}
284-
}));
269+
.collect(Functions.justSupplier(new ArrayList<>()), (BiConsumer<ArrayList<Integer>, Integer>) ArrayList::add));
285270

286271
TestHelper.checkDisposed(Flowable.just(1, 2)
287-
.collect(Functions.justSupplier(new ArrayList<>()), new BiConsumer<ArrayList<Integer>, Integer>() {
288-
@Override
289-
public void accept(ArrayList<Integer> a, Integer b) throws Exception {
290-
a.add(b);
291-
}
292-
}).toFlowable());
272+
.collect(Functions.justSupplier(new ArrayList<>()), (BiConsumer<ArrayList<Integer>, Integer>) ArrayList::add).toFlowable());
293273
}
294274

295275
@Test
296276
public void doubleOnSubscribe() {
297-
TestHelper.checkDoubleOnSubscribeFlowable(new Function<Flowable<Integer>, Flowable<ArrayList<Integer>>>() {
298-
@Override
299-
public Flowable<ArrayList<Integer>> apply(Flowable<Integer> f) throws Exception {
300-
return f.collect(Functions.justSupplier(new ArrayList<>()),
301-
new BiConsumer<ArrayList<Integer>, Integer>() {
302-
@Override
303-
public void accept(ArrayList<Integer> a, Integer b) throws Exception {
304-
a.add(b);
305-
}
306-
}).toFlowable();
307-
}
308-
});
309-
TestHelper.checkDoubleOnSubscribeFlowableToSingle(new Function<Flowable<Integer>, Single<ArrayList<Integer>>>() {
310-
@Override
311-
public Single<ArrayList<Integer>> apply(Flowable<Integer> f) throws Exception {
312-
return f.collect(Functions.justSupplier(new ArrayList<>()),
313-
new BiConsumer<ArrayList<Integer>, Integer>() {
314-
@Override
315-
public void accept(ArrayList<Integer> a, Integer b) throws Exception {
316-
a.add(b);
317-
}
318-
});
319-
}
320-
});
277+
TestHelper.checkDoubleOnSubscribeFlowable((Function<Flowable<Integer>, Flowable<ArrayList<Integer>>>) f -> f.collect(Functions.justSupplier(new ArrayList<>()),
278+
(BiConsumer<ArrayList<Integer>, Integer>) ArrayList::add).toFlowable());
279+
TestHelper.checkDoubleOnSubscribeFlowableToSingle((Function<Flowable<Integer>, Single<ArrayList<Integer>>>) f -> f.collect(Functions.justSupplier(new ArrayList<>()),
280+
(BiConsumer<ArrayList<Integer>, Integer>) ArrayList::add));
321281
}
322282
}

src/test/java/io/reactivex/rxjava4/flowable/FlowableGroupByTests.java

Lines changed: 13 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
import org.junit.Test;
1717
import static java.util.concurrent.Flow.*;
1818

19+
import java.util.concurrent.Flow.Publisher;
20+
1921
import io.reactivex.rxjava4.core.*;
2022
import io.reactivex.rxjava4.flowable.FlowableEventStream.Event;
2123
import io.reactivex.rxjava4.flowables.GroupedFlowable;
@@ -31,19 +33,11 @@ public void takeUnsubscribesOnGroupBy() {
3133
FlowableEventStream.getEventStream("HTTP-ClusterB", 20)
3234
)
3335
// group by type (2 clusters)
34-
.groupBy(new Function<Event, Object>() {
35-
@Override
36-
public Object apply(Event event) {
37-
return event.type;
38-
}
39-
})
36+
.groupBy(event -> (Object)event.type)
4037
.take(1)
41-
.blockingForEach(new Consumer<GroupedFlowable<Object, Event>>() {
42-
@Override
43-
public void accept(GroupedFlowable<Object, Event> v) {
44-
System.out.println(v);
45-
v.take(1).subscribe(); // FIXME groups need consumption to a certain degree to cancel upstream
46-
}
38+
.blockingForEach(v -> {
39+
System.out.println(v);
40+
v.take(1).subscribe(); // FIXME groups need consumption to a certain degree to cancel upstream
4741
});
4842

4943
System.out.println("**** finished");
@@ -56,30 +50,11 @@ public void takeUnsubscribesOnFlatMapOfGroupBy() {
5650
FlowableEventStream.getEventStream("HTTP-ClusterB", 20)
5751
)
5852
// group by type (2 clusters)
59-
.groupBy(new Function<Event, Object>() {
60-
@Override
61-
public Object apply(Event event) {
62-
return event.type;
63-
}
64-
})
65-
.flatMap(new Function<GroupedFlowable<Object, Event>, Publisher<Object>>() {
66-
@Override
67-
public Publisher<Object> apply(GroupedFlowable<Object, Event> g) {
68-
return g.map(new Function<Event, Object>() {
69-
@Override
70-
public Object apply(Event event) {
71-
return event.instanceId + " - " + event.values.get("count200");
72-
}
73-
});
74-
}
75-
})
53+
.groupBy(event -> (Object)event.type)
54+
.flatMap((Function<GroupedFlowable<Object, Event>, Publisher<Object>>)
55+
g -> g.map(event -> event.instanceId + " - " + event.values.get("count200")))
7656
.take(20)
77-
.blockingForEach(new Consumer<Object>() {
78-
@Override
79-
public void accept(Object v) {
80-
System.out.println(v);
81-
}
82-
});
57+
.blockingForEach(v -> System.out.println(v));
8358

8459
System.out.println("**** finished");
8560
}
@@ -89,18 +64,9 @@ public void groupsCompleteAsSoonAsMainCompletes() {
8964
TestSubscriber<Integer> ts = TestSubscriber.create();
9065

9166
Flowable.range(0, 20)
92-
.groupBy(new Function<Integer, Integer>() {
93-
@Override
94-
public Integer apply(Integer i) {
95-
return i % 5;
96-
}
97-
})
98-
.concatMap(new Function<GroupedFlowable<Integer, Integer>, Flowable<Integer>>() {
99-
@Override
100-
public Flowable<Integer> apply(GroupedFlowable<Integer, Integer> v) {
101-
return v;
102-
}
103-
}, 20) // need to prefetch as many groups as groupBy produces to avoid MBE
67+
.groupBy(i -> i % 5)
68+
// need to prefetch as many groups as groupBy produces to avoid MBE
69+
.concatMap((Function<GroupedFlowable<Integer, Integer>, Flowable<Integer>>) v -> v, 20)
10470
.subscribe(ts);
10571

10672
// Behavior change: this now counts as group abandonment because concatMap

src/test/java/io/reactivex/rxjava4/flowable/FlowableMergeTests.java

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import static org.junit.Assert.*;
1717

1818
import java.util.List;
19+
import java.util.concurrent.Flow.Publisher;
1920

2021
import org.junit.Test;
2122
import static java.util.concurrent.Flow.*;
@@ -76,15 +77,10 @@ public void mergeCovariance3() {
7677
@Test
7778
public void mergeCovariance4() {
7879

79-
Flowable<Movie> f1 = Flowable.defer(new Supplier<Publisher<Movie>>() {
80-
@Override
81-
public Publisher<Movie> get() {
82-
return Flowable.just(
83-
new HorrorMovie(),
84-
new Movie()
85-
);
86-
}
87-
});
80+
Flowable<Movie> f1 = Flowable.defer((Supplier<Publisher<Movie>>) () -> Flowable.just(
81+
new HorrorMovie(),
82+
new Movie()
83+
));
8884

8985
Flowable<Media> f2 = Flowable.just(new Media(), new HorrorMovie());
9086

0 commit comments

Comments
 (0)