@Override
    public Mono<FavouriteProduct> addProductToFavourites(int productId, String userId) {
        return this.favouriteProductRepository.save(new FavouriteProduct(UUID.randomUUID(), productId, userId));
    }
@Test
    void addProductToFavourites_ReturnsCreatedFavouriteProduct() {
        // given
        doAnswer(invocation -> Mono.justOrEmpty(invocation.getArguments()[0]))
                .when(this.favouriteProductRepository).save(any());

        // when
        StepVerifier.create(this.service.addProductToFavourites(1, "5f1d5cf8-cbd6-11ee-9579-cf24d050b47c"))
                // then
                .expectNextMatches(favouriteProduct -> favouriteProduct.getProductId() == 1 &&
                        favouriteProduct.getUserId().equals("5f1d5cf8-cbd6-11ee-9579-cf24d050b47c") &&
                        favouriteProduct.getId() != null)
                .verifyComplete();

        verify(this.favouriteProductRepository).save(argThat(favouriteProduct -> favouriteProduct.getProductId() == 1 &&
                favouriteProduct.getUserId().equals("5f1d5cf8-cbd6-11ee-9579-cf24d050b47c") &&
                favouriteProduct.getId() != null));
    }