@Ignore("TODO")
  @Test
  public void testDestroyRegion() throws CacheException {
    final String name = getName();

    final Object callbackArg = "DESTROY CALLBACK";

    vm0.invoke("Create Cache Server", () -> {
      CacheWriter<Object, Object> cw = new TestCacheWriter<Object, Object>() {
        @Override
        public void beforeCreate2(EntryEvent event) throws CacheWriterException {

        }

        @Override
        public void beforeRegionDestroy2(RegionEvent event) throws CacheWriterException {
          assertThat(callbackArg).isEqualTo(event.getCallbackArgument());
        }
      };
      RegionFactory<Object, Object> factory = getBridgeServerRegionAttributes(null, cw);
      createRegion(name, factory);
      startBridgeServer(0);
    });
    final int port = vm0.invoke(ConnectionPoolDUnitTest::getCacheServerPort);
    final String host0 = NetworkUtils.getServerHostName();

    SerializableRunnable create = new CacheSerializableRunnable() {
      @Override
      public void run2() throws CacheException {
        getLonerSystem();
        getCache();
        RegionFactory<Object, Object> factory = getCache().createRegionFactory();
        factory.setScope(Scope.LOCAL);
        factory.setConcurrencyChecksEnabled(false);
        configureConnectionPool(factory, host0, new int[] {port}, true, -1, -1, null);
        createRegion(name, factory);
      }
    };

    Stream.of(vm1, vm2).forEach(vm -> vm.invoke("Create region", create));

    vm1.invoke("Local destroy region", () -> {
      Region<Object, Object> region = getRootRegion().getSubregion(name);
      region.localDestroyRegion();
      assertThat(getRootRegion().getSubregion(name)).isNull();
    });

    vm2.invoke("No destroy propagate", () -> {
      assertThat(getRootRegion().getSubregion(name)).isNotNull();
    });

    vm0.invoke("Check no server cache writer", () -> {
      TestCacheWriter writer = getTestWriter(getRootRegion().getSubregion(name));
      writer.wasInvoked();
    });

    vm1.invoke(create);

    vm1.invoke("Distributed destroy region", () -> {
      Region<Object, Object> region = getRootRegion().getSubregion(name);
      assertThat(region).isNotNull();
      region.destroyRegion(callbackArg);
      assertThat(getRootRegion().getSubregion(name)).isNull();
    });

    vm2.invoke("Verify destroy propagate",
        () -> await().until(() -> getRootRegion().getSubregion(name) == null));
  }
Tests that a {@link Region#localDestroyRegion} is not propagated to the server and that a
{@link Region#destroyRegion} is. Also makes sure that callback arguments are passed correctly.
geode-core/src/distributedTest/java/org/apache/geode/cache/ConnectionPoolDUnitTest.java