def METHOD_NAME(
    mock_request,
    mocked_cache_get,
    mocked_cache_set,
    channel_USD,
    customer_user,
    webhook_plugin,
    list_stored_payment_methods_app,
    webhook_list_stored_payment_methods_response,
):
    # given
    mock_request.return_value = None
    mocked_cache_get.return_value = None
    webhook = list_stored_payment_methods_app.webhooks.first()
    webhook.subscription_query = LIST_STORED_PAYMENT_METHODS
    webhook.save()
    plugin = webhook_plugin()
    data = ListStoredPaymentMethodsRequestData(
        channel=channel_USD,
        user=customer_user,
    )
    expected_payload = {
        "user_id": graphene.Node.to_global_id("User", customer_user.pk),
        "channel_slug": channel_USD.slug,
    }
    expected_cache_key = generate_cache_key_for_webhook(
        expected_payload,
        webhook.target_url,
        WebhookEventSyncType.LIST_STORED_PAYMENT_METHODS,
        list_stored_payment_methods_app.id,
    )
    # when
    response = plugin.list_stored_payment_methods(data, [])
    # then
    delivery = EventDelivery.objects.get()
    mock_request.assert_called_once_with(delivery, timeout=WEBHOOK_SYNC_TIMEOUT)
    mocked_cache_get.assert_called_once_with(expected_cache_key)
    assert not mocked_cache_set.called
    assert response == []