public boolean containsStickyKeyHashes(Set<Integer> stickyKeyHashes) {
        if (!allowOutOfOrderDelivery) {
            for (Integer stickyKeyHash : stickyKeyHashes) {
                if (hashesRefCount.containsKey(stickyKeyHash)) {
                    return true;
                }
            }
        }
        return false;
    }
@Test(dataProvider = "allowOutOfOrderDelivery", timeOut = 10000)
    public void testContainsStickyKeyHashes(boolean allowOutOfOrderDelivery) throws Exception {
        MessageRedeliveryController controller = new MessageRedeliveryController(allowOutOfOrderDelivery);
        controller.add(1, 1, 100);
        controller.add(1, 2, 101);
        controller.add(1, 3, 102);
        controller.add(2, 2, 103);
        controller.add(2, 1, 104);

        if (allowOutOfOrderDelivery) {
            assertFalse(controller.containsStickyKeyHashes(Set.of(100)));
            assertFalse(controller.containsStickyKeyHashes(Set.of(101, 102, 103)));
            assertFalse(controller.containsStickyKeyHashes(Set.of(104, 105)));
        } else {
            assertTrue(controller.containsStickyKeyHashes(Set.of(100)));
            assertTrue(controller.containsStickyKeyHashes(Set.of(101, 102, 103)));
            assertTrue(controller.containsStickyKeyHashes(Set.of(104, 105)));
        }

        assertFalse(controller.containsStickyKeyHashes(Set.of()));
        assertFalse(controller.containsStickyKeyHashes(Set.of(99)));
        assertFalse(controller.containsStickyKeyHashes(Set.of(105, 106)));
    }