Merge pull request #12838 from etrandafir93/features/BAEL-5813-mono_onSuccess_vs_onNext
BAEL-5813: Mono<> doOnSuccess vs doOnNex
This commit is contained in:
commit
5a68e4459d
|
@ -0,0 +1,10 @@
|
|||
package onsuccess;
|
||||
|
||||
|
||||
public class Payment {
|
||||
private final int amount;
|
||||
|
||||
public Payment(int amount) {
|
||||
this.amount = amount;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
package onsuccess;
|
||||
|
||||
public class PaymentService {
|
||||
|
||||
public void processPayment(Payment payment) {
|
||||
System.err.println("Payment processed: " + payment);
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
package onsuccess;
|
||||
|
||||
import static org.mockito.ArgumentMatchers.any;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.never;
|
||||
import static org.mockito.Mockito.reset;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Mock;
|
||||
|
||||
import reactor.core.publisher.Mono;
|
||||
|
||||
class MonoOnSuccessVsOnNexUnitTest {
|
||||
|
||||
@Mock
|
||||
PaymentService paymentService = mock(PaymentService.class);
|
||||
|
||||
@BeforeEach
|
||||
void beforeEach() {
|
||||
reset(paymentService);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenAPaymentMono_whenCallingServiceOnNext_thenCallServiceWithPayment() {
|
||||
Payment paymentOf100 = new Payment(100);
|
||||
Mono<Payment> paymentMono = Mono.just(paymentOf100);
|
||||
|
||||
paymentMono.doOnNext(paymentService::processPayment)
|
||||
.block();
|
||||
|
||||
verify(paymentService).processPayment(paymentOf100);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenAnEmptyMono_whenCallingServiceOnNext_thenDoNotCallService() {
|
||||
Mono<Payment> emptyMono = Mono.empty();
|
||||
|
||||
emptyMono.doOnNext(paymentService::processPayment)
|
||||
.block();
|
||||
|
||||
verify(paymentService, never()).processPayment(any());
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenAPaymentMono_whenCallingServiceOnSuccess_thenCallServiceWithPayment() {
|
||||
Payment paymentOf100 = new Payment(100);
|
||||
Mono<Payment> paymentMono = Mono.just(paymentOf100);
|
||||
|
||||
paymentMono.doOnSuccess(paymentService::processPayment)
|
||||
.block();
|
||||
|
||||
verify(paymentService).processPayment(paymentOf100);
|
||||
}
|
||||
|
||||
@Test
|
||||
void givenAnEmptyMono_whenCallingServiceOnSuccess_thenCallServiceWithNull() {
|
||||
Mono<Payment> emptyMono = Mono.empty();
|
||||
|
||||
emptyMono.doOnSuccess(paymentService::processPayment)
|
||||
.block();
|
||||
|
||||
verify(paymentService).processPayment(null);
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue