@Test
public void testListenerEnqueueWithReducedPropagationQueueingStrategy(TestContext context) throws InterruptedException {

    String deviceId = "x99";
    long interval = 22;
    String queue = "listener-hook-http+push+"+deviceId+"+playground+server+tests+hooktest";
    // trigger listener update via event bus
    setListenerStorageEntryAndTriggerUpdate(buildListenerConfig(new JsonObject().put("type", "reducedPropagation").put("intervalMs", interval), deviceId));
    // wait a moment to let the listener be registered
    Thread.sleep(1500);
    // make a change to the hooked resource
    String uri = "/playground/server/tests/hooktest/abc123";
    String originalPayload = "{\"key\":123}";
    PUTRequest putRequest = new PUTRequest(uri, originalPayload);
    putRequest.addHeader(CONTENT_LENGTH.getName(), "99");
    hookHandler.handle(putRequest);
    String targetUri = "/playground/server/push/v1/devices/"+deviceId+"/playground/server/tests/hooktest/abc123";
    Mockito.verify(reducedPropagationManager, Mockito.timeout(2000).times(1))
            .processIncomingRequest(eq(HttpMethod.PUT), eq(targetUri), any(MultiMap.class), eq(Buffer.buffer(originalPayload)), eq(queue), eq(interval), any(Handler.class));
}