=str #19423 add satefulMapConcat
This commit is contained in:
parent
3d9ea4415f
commit
2a36859578
11 changed files with 347 additions and 80 deletions
|
|
@ -99,6 +99,33 @@ public class FlowTest extends StreamTest {
|
|||
future.toCompletableFuture().get(200, TimeUnit.MILLISECONDS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void mustBeAbleToUseStatefullMaponcat() throws Exception {
|
||||
final JavaTestKit probe = new JavaTestKit(system);
|
||||
final java.lang.Iterable<Integer> input = Arrays.asList(1, 2, 3, 4, 5);
|
||||
final Source<Integer, NotUsed> ints = Source.from(input);
|
||||
final Flow<Integer, Integer, NotUsed> flow = Flow.of(Integer.class).statefulMapConcat(
|
||||
new Creator<Function<Integer, Iterable<Integer>>>() {
|
||||
public Function<Integer, Iterable<Integer>> create() {
|
||||
int[] state = new int[1];
|
||||
state[0] = 0;
|
||||
return new Function<Integer, Iterable<Integer>>() {
|
||||
public List<Integer> apply(Integer elem) {
|
||||
List<Integer> list = new ArrayList<>(Collections.nCopies(state[0], elem));
|
||||
state[0] = elem;
|
||||
return list;
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
ints.via(flow)
|
||||
.runFold("", (acc, elem) -> acc + elem, materializer)
|
||||
.thenAccept(elem -> probe.getRef().tell(elem, ActorRef.noSender()));
|
||||
|
||||
probe.expectMsgEquals("2334445555");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void mustBeAbleToUseIntersperse() throws Exception {
|
||||
final JavaTestKit probe = new JavaTestKit(system);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue