Request

public class Part06Request {
    ReactiveRepository<User> repository = new ReactiveUserRepository();

//========================================================================================

    // TODO Create a StepVerifier that initially requests all values and expect 4 values to be received
    public StepVerifier requestAllExpectFour(Flux<User> flux) {
        return StepVerifier
                .create(flux)
                .expectNextCount(4)
                .expectComplete();
    }

//========================================================================================

    // TODO Create a StepVerifier that initially requests 1 value and expects User.SKYLER then requests another value and expects User.JESSE then stops verifying by cancelling the source
    public StepVerifier requestOneExpectSkylerThenRequestOneExpectJesse(Flux<User> flux) {
        return StepVerifier.create(flux)
                .expectNext(User.SKYLER)
                .thenRequest(1)
                .expectNext(User.JESSE)
                .thenCancel();
    }

//========================================================================================

    // TODO Return a Flux with all users stored in the repository that prints automatically logs for all Reactive Streams signals
    public Flux<User> fluxWithLog() {
        return repository.findAll().log();
    }

//========================================================================================

    // TODO Return a Flux with all users stored in the repository that prints "Starring:" at first, "firstname lastname" for all values and "The end!" on complete
    public Flux<User> fluxWithDoOnPrintln() {
        return repository.findAll()
                .doOnSubscribe(subscription -> System.out.println("Starring:"))
                .doOnNext(user -> System.out.println(user.getFirstname() + " " + user.getLastname()))
                .doOnComplete(() -> System.out.println("The end!"));
    }
}
    @Test
    public void TestRequest(){
        Part06Request t = new Part06Request();

        t.requestAllExpectFour(Flux.just(User.JESSE, User.SAUL, User.WALTER,User.SKYLER)).verify();

        t.requestOneExpectSkylerThenRequestOneExpectJesse(Flux.just(User.SKYLER, User.JESSE)).verify();

        t.fluxWithLog().subscribe();

        t.fluxWithDoOnPrintln().subscribe();
    }
posted @ 2025-11-11 17:20  bigroc  阅读(6)  评论(0)    收藏  举报