@Test
  public void testCCPDestroyOnLastDestroyRegion() throws Exception {
    PORT1 = initServerCache(true);
    PoolImpl pool =
        (PoolImpl) createClientCache(NetworkUtils.getServerHostName(), PORT1);
    destroyRegion1();
    // pause(5000);
    server1.invoke(
        () -> ClientServerMiscDUnitTestBase.verifyCacheClientProxyOnServer(REGION_NAME1));
    Connection conn = pool.acquireConnection();
    assertNotNull(conn);
    assertEquals(1, pool.getConnectedServerCount());
    assertFalse(pool.isDestroyed());
    destroyRegion2();
    assertFalse(pool.isDestroyed());
    destroyPRRegion();
    assertFalse(pool.isDestroyed());
    pool.destroy();
    assertTrue(pool.isDestroyed());
    // pause(5000);
    server1.invoke(ClientServerMiscDUnitTestBase::verifyNoCacheClientProxyOnServer);

    assertThatThrownBy(() -> getCache().createRegion(REGION_NAME2, attrs))
        .isExactlyInstanceOf(IllegalStateException.class);
  }
Test two regions: notify by subscription is true. Both the regions have registered interest in
all the keys. Destroy region1 on the client. It should reach the server , kill the region on
the server , propagate it to the interested clients , but it should keep CacheClient Proxy
alive. Destroy Region2 . It should reach server , close conenction proxy , destroy the region2
on the server , remove the cache client proxy from the cache client notifier & propagate it to
the clients. Then create third region and verify that no CacheClientProxy is created on server
geode-dunit/src/main/java/org/apache/geode/internal/cache/tier/sockets/ClientServerMiscDUnitTestBase.java