@Override
    public Mono<ProductReview> createProductReview(int productId, int rating, String review, String userId) {
        return this.productReviewRepository.save(
                new ProductReview(UUID.randomUUID(), productId, rating, review, userId));
    }
@Test
    void createProductReview_ReturnsCreatedProductReview() {
        // given
        doAnswer(invocation -> Mono.justOrEmpty(invocation.getArguments()[0])).when(this.productReviewRepository)
                .save(any());

        // when
        StepVerifier.create(this.service.createProductReview(1, 3, "Ну, на троечку",
                        "5f1d5cf8-cbd6-11ee-9579-cf24d050b47c"))
                // then
                .expectNextMatches(productReview ->
                        productReview.getProductId() == 1 && productReview.getRating() == 3 &&
                                productReview.getUserId().equals("5f1d5cf8-cbd6-11ee-9579-cf24d050b47c") &&
                                productReview.getReview().equals("Ну, на троечку") && productReview.getId() != null)
                .verifyComplete();

        verify(this.productReviewRepository)
                .save(argThat(productReview ->
                        productReview.getProductId() == 1 && productReview.getRating() == 3 &&
                                productReview.getUserId().equals("5f1d5cf8-cbd6-11ee-9579-cf24d050b47c") &&
                                productReview.getReview().equals("Ну, на троечку") && productReview.getId() != null));
    }