def METHOD_NAME(
    mocked_webhook,
    mocked_cache_get,
    mocked_cache_set,
    webhook_plugin,
    checkout_with_item,
    shipping_app,
):
    # given
    mocked_webhook_response = [
        {
            "id": "method-1",
            "name": "Standard Shipping",
            "amount": Decimal("5.5"),
            "currency": "GBP",
        }
    ]
    mocked_webhook.return_value = mocked_webhook_response
    mocked_cache_get.return_value = None
    payload = generate_checkout_payload(checkout_with_item)
    key_data = get_cache_data_for_shipping_list_methods_for_checkout(payload)
    target_url = shipping_app.webhooks.first().target_url
    cache_key = generate_cache_key_for_webhook(
        key_data,
        target_url,
        WebhookEventSyncType.SHIPPING_LIST_METHODS_FOR_CHECKOUT,
        shipping_app.id,
    )
    plugin = webhook_plugin()
    # when
    checkout_with_item.last_change = timezone.now() + timedelta(seconds=30)
    checkout_with_item.save(update_fields=["last_change"])
    new_payload = generate_checkout_payload(checkout_with_item)
    new_key_data = get_cache_data_for_shipping_list_methods_for_checkout(new_payload)
    new_cache_key = generate_cache_key_for_webhook(
        new_key_data,
        target_url,
        WebhookEventSyncType.SHIPPING_LIST_METHODS_FOR_CHECKOUT,
        shipping_app.id,
    )
    plugin.get_shipping_methods_for_checkout(checkout_with_item, None)
    # then
    assert cache_key == new_cache_key
    mocked_cache_get.assert_called_once_with(new_cache_key)
    mocked_cache_set.assert_called_once_with(
        new_cache_key,
        mocked_webhook_response,
        timeout=CACHE_TIME_SHIPPING_LIST_METHODS_FOR_CHECKOUT,
    )