@Override
      public void run2() throws CacheException {
        logger.info("### Verifying interests registered by DurableClient. ###");
        CacheClientNotifier ccn = CacheClientNotifier.getInstance();
        CacheClientProxy p = null;

        // Get proxy for the client.
        for (int i = 0; i < 60; i++) {
          Iterator<CacheClientProxy> ps = ccn.getClientProxies().iterator();
          if (!ps.hasNext()) {
            Wait.pause(1000);
          } else {
            p = ps.next();
            break;
          }
        }

        if (p == null) {
          fail("Proxy initialization taking long time. Increase the wait time.");
        }

        Iterator<String> rs = p.getInterestRegisteredRegions().iterator();
        String rName = rs.next();
        assertThat(rs).describedAs("Null region Name found.").isNotNull();
        LocalRegion r = (LocalRegion) GemFireCacheImpl.getInstance().getRegion(rName);
        assertThat(r).describedAs("Null region found.").isNotNull();
        FilterProfile pf = r.getFilterProfile();

        Set<String> interestKeys = pf.getKeysOfInterest(p.getProxyID().getDurableId());
        assertThat(interestKeys).describedAs("durable Interests not found for the proxy")
            .isNotNull();
        assertThat(2)
            .describedAs("The number of durable keys registered during HARegion GII doesn't match.")
            .isEqualTo(interestKeys.size());
        interestKeys = pf.getKeysOfInterest(p.getProxyID());
        assertThat(interestKeys).describedAs("non-durable Interests found for the proxy").isNull();
      }
We have 2 servers and One client which registers some keys with durable interest and some without
it. We maintain queues on only One server as redundancy level is one. Following 2 tests have the
two TestCase scenarios

There are two Tests First Test does the follows : // Step 1: Starting the servers // Step 2:
Bring Up the Client // Step 3: Client registers Interests // Step 4: Update Values on the Server
for Keys // Step 5: Verify Updates on the Client // Step 6: Close Cache of the DurableClient //
Step 7: Update the Values // Step 8: Re-start the Client // Step 9: Verify Updates on the Client
// Step 10 : Stop all VMs

For Test 2 the steps are as follows // Step 1: Starting the servers // Step 2: Bring Up the
Client // Step 3: Client registers Interests // Step 4: Update Values on the Server for Keys //
Step 5: Verify Updates on the Client // Step 6: Close Cache of the DurableClient // Step 7:
Update the Values // Step 8: Re-start the Client // Step 9: Send Client Ready Message // Step 10:
Register all Keys (K1, K2 as Non-Durable. K3, K4 as Durable) // Step 11: Unregister Some Keys
(Here K1, K3) // Step 12: Modify values on the server for all the Keys // Step 13: Check the
values for the ones not unregistered and the Unregistered Keys' Values should be null
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DurableRegistrationDistributedTest.java