For both cases, we can use TestPublisher
next(T value) or next(T value, T rest) – send one or more signals to subscribers
emit(T value) – same as next(T) but invokes complete() afterwards
complete() – terminates a source with the complete signal
error(Throwable tr) – terminates a source with an error
flux() – convenient method to wrap a TestPublisher into Flux
mono() – same us flux() but wraps to a Mono
https://www.baeldung.com/reactive-streams-step-verifier-test-publisher