public void startRegisterAndCloseDurableClientCache(int durableClientTimeout) {
    final String durableClientId = getName() + "_client";

    durableClientVM.invoke(() -> createCacheClient(
        getClientPool(NetworkUtils.getServerHostName(), PORT1), regionName,
        getDurableClientDistributedSystemProperties(durableClientId, durableClientTimeout),
        true));

    durableClientVM.invoke(() -> DurableClientStatsDUnitTest.registerKey(true));

    // Send clientReady message
    durableClientVM.invoke("Send clientReady", new CacheSerializableRunnable() {
      @Override
      public void run2() throws CacheException {
        getClientCache().readyForEvents();
      }
    });

    durableClientVM.invoke(DurableClientStatsDUnitTest::closeCache);
  }
The DUnitTest checks whether the following Three counts are incremented correctly or not: 1)
DurableReconnectionCount -> Incremented Each time a Proxy present in server for a DurableClient
2) QueueDroppedCount -> Incremented Each time a queue for a durable client is dropped after
durable Timeout 3) EventsEnqueuedWhileClientAwayCount -> Incremented Each time an entry is made
when client is away.

In the given test DurableClient comes up and goes down discreetly with different
DurableClientTimeouts so as to increment the counts
geode-core/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DurableClientStatsDUnitTest.java