Skip to content

Instantly share code, notes, and snippets.

@jiraguha
Last active October 19, 2019 18:15
Show Gist options
  • Save jiraguha/309a5c9bad0ef89315d5876e258b3f70 to your computer and use it in GitHub Desktop.
Save jiraguha/309a5c9bad0ef89315d5876e258b3f70 to your computer and use it in GitHub Desktop.
Issue with reactor. like a snake biting its own tail.
import org.junit.jupiter.api.Test;
import reactor.core.publisher.Mono;
import java.time.Duration;
/**
*
*/
public class TestBidon {
private static <T> Mono<T> peekPrint(T value) {
System.out.print("Hey la: ");
System.out.println(value);
return Mono.just(value).doOnSubscribe(s -> System.out.println("My"));
}
@Test
public void testbidon1() {
Mono.just("OK")
.doOnSubscribe(s -> System.out.println("18"))
.flatMap(TestBidon::peekPrint)
.doOnSubscribe(s -> System.out.println("17"))
.flatMap(
o -> Mono.just(1)
.doOnSubscribe(s -> System.out.println("16"))
)
.doOnSubscribe(s -> System.out.println("15"))
.transform(
f -> f
.doOnSubscribe(s -> System.out.println("14"))
.flatMap(TestBidon::peekPrint)
.doOnSubscribe(s -> System.out.println("13"))
.flatMapMany(
l -> f
.doOnSubscribe(s -> System.out.println("12"))
)
)
.doOnSubscribe(s -> System.out.println("11"))
.subscribe(s -> System.out.println("end1"));
}
@Test
public void testbidon2() {
Mono.just("OK")
.doOnSubscribe(s -> System.out.println("28"))
.flatMap(TestBidon::peekPrint)
.doOnSubscribe(s -> System.out.println("27"))
.flatMap(
o -> Mono.just(1)
.doOnSubscribe(s -> System.out.println("26"))
)
.doOnSubscribe(s -> System.out.println("25"))
.transform(
f -> f
.doOnSubscribe(s -> System.out.println("24"))
.flatMap(TestBidon::peekPrint)
.doOnSubscribe(s -> System.out.println("23"))
.map(l -> l)
.doOnSubscribe(s -> System.out.println("22"))
)
.doOnSubscribe(s -> System.out.println("21"))
.subscribe(s -> System.out.println("end2"));
}
@Test
public void testbidon3() {
Mono.just("OK")
.doOnSubscribe(s -> System.out.println("35"))
.flatMap(TestBidon::peekPrint)
.doOnSubscribe(s -> System.out.println("34"))
.flatMap(
o -> Mono.just(1)
.doOnSubscribe(s -> System.out.println("33"))
)
.doOnSubscribe(s -> System.out.println("32"))
.flatMap(TestBidon::peekPrint)
.doOnSubscribe(s -> System.out.println("31"))
.subscribe(s -> System.out.println("end3"));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment