@Test
  public void testSpecialDurableProperty() {
    final Properties jp = new Properties();
    jp.setProperty(GeodeGlossary.GEMFIRE_PREFIX + "SPECIAL_DURABLE", "true");

    try {

      server1Port = server1VM
          .invoke(() -> createCacheServer(regionName, true));

      durableClientId = getName() + "_client";
      final String dId = durableClientId + "_gem_" + "CacheServerTestUtil";

      durableClientVM.invoke(() -> createCacheClient(
          getClientPool(NetworkUtils.getServerHostName(), server1Port, true),
          regionName, getClientDistributedSystemProperties(durableClientId,
              DistributionConfig.DEFAULT_DURABLE_CLIENT_TIMEOUT),
          true, jp));

      durableClientVM.invoke(() -> {
        await().atMost(HEAVY_TEST_LOAD_DELAY_SUPPORT_MULTIPLIER, MINUTES)
            .pollInterval(100, MILLISECONDS)
            .until(CacheServerTestUtil::getCache, notNullValue());
      });

      // Send clientReady message
      sendClientReady(durableClientVM);

      // Verify durable client on server
      server1VM.invoke(() -> {
        // Find the proxy
        checkNumberOfClientProxies(1);
        CacheClientProxy proxy = getClientProxy();
        assertThat(proxy).isNotNull();

        // Verify that it is durable and its properties are correct
        assertThat(proxy.isDurable()).isTrue();
        assertThat(durableClientId).isNotEqualTo(proxy.getDurableId());

        /*
         * new durable id will be like this durableClientId _gem_ //separator client pool name
         */

        assertThat(dId).isEqualTo(proxy.getDurableId());
        assertThat(DistributionConfig.DEFAULT_DURABLE_CLIENT_TIMEOUT)
            .isEqualTo(proxy.getDurableTimeout());
      });

      // Stop the durable client
      disconnectDurableClient(false);

      // Verify the durable client is present on the server for closeCache=false case.
      verifyDurableClientNotPresent(
          durableClientId, server1VM);

      // Stop the server
      server1VM.invoke((SerializableRunnableIF) CacheServerTestUtil::closeCache);

      closeDurableClient();
    } finally {

      durableClientVM.invoke(() -> unsetJavaSystemProperties(jp));
    }

  }
Test that starting a durable client is correctly processed by the server. In this test we will
set gemfire.SPECIAL_DURABLE property to true and will see durableID appended by poolname or
not
geode-cq/src/distributedTest/java/org/apache/geode/internal/cache/tier/sockets/DurableClientTestCase.java